목차 일부
책의 대상 독자 ... xxii
이 책의 구성 ... xxiv
소스 코드 내려 받기 ... xxiv
01장 안드로이드, 뉴 키즈 온 더 블록 ... 1
안드로이드에 대한 간단한 소개 ... 2
파편화 ... 3
구글의 역할 ... 4
안드로이드 오픈소스 프로젝트 ... 4
안드로이드 마켓 ... 4
챌린지, 개발자 지원 프로...
더보기
목차 전체
책의 대상 독자 ... xxii
이 책의 구성 ... xxiv
소스 코드 내려 받기 ... xxiv
01장 안드로이드, 뉴 키즈 온 더 블록 ... 1
안드로이드에 대한 간단한 소개 ... 2
파편화 ... 3
구글의 역할 ... 4
안드로이드 오픈소스 프로젝트 ... 4
안드로이드 마켓 ... 4
챌린지, 개발자 지원 프로그램, 구글 I/O ... 6
안드로이드의 기능과 아키텍처 ... 7
커널 ... 8
런타임과 달빅 ... 8
시스템 라이브러리 ... 10
애플리케이션 프레임워크 ... 11
소프트웨어 개발 킷 ... 12
개발자 커뮤니티 ... 13
기기, 기기, 기기! ... 14
하드웨어 ... 14
1세대, 2세대, 차세대 ... 16
차세대 기기 ... 20
게임 컨트롤러 ... 21
모바일 게임의 차이점 ... 22
주머니 속으로 들어간 게임 기기 ... 22
상시 접속 상태의 유지 ... 23
캐주얼 게임과 하드코어 게임 ... 24
큰 시장과 적은 수의 개발자 ... 25
정리 ... 26
02장 안드로이드 SDK 첫 걸음 ... 29
개발 환경의 설정 ... 29
JDK의 설정 ... 30
안드로이드 SDK의 설정 ... 30
이클립스의 설치 ... 32
ADT 이클립스 플러그인의 설치 ... 33
이클립스 간단히 살펴보기 ... 36
안드로이드 방식의 Hello World ... 37
프로젝트의 생성 ... 38
프로젝트 내용 살펴보기 ... 39
애플리케이션 코드의 작성 ... 41
안드로이드 애플리케이션의 실행과 디버깅 ... 44
기기 연결 ... 44
안드로이드 가상 기기의 생성 ... 44
애플리케이션의 실행 ... 46
애플리케이션 디버깅 ... 49
로그캣과 DDMS ... 52
ADB의 활용 ... 55
정리 ... 57
03장 게임 개발 ... 59
장르 각인각색 ... 60
캐주얼 게임 ... 60
퍼즐 게임 ... 62
액션 및 아케이드 게임 ... 63
타워 디펜스 게임 ... 66
혁신 게임 ... 67
게임 설계 펜은 코드보다 강하다 ... 68
핵심 게임 방식 ... 69
게임 스토리와 아트 스타일 ... 71
화면과 화면 전환 ... 73
코드 핵심적인 세부 내용 ... 79
애플리케이션과 창 관리 ... 80
입력 ... 81
파일 I/O ... 86
오디오 ... 87
그래픽 ... 92
게임 프레임워크 ... 108
정리 ... 117
04장 게임 개발자를 위한 안드로이드 ... 119
안드로이드 애플리케이션의 정의 매니페스트 파일 ... 120
엘리먼트 ... 121
엘리먼트 ... 122
엘리먼트 ... 124
엘리먼트 ... 127
엘리먼트 ... 128
엘리먼트 ... 130
10단계로 끝내는 안드로이드 게임 프로젝트 설정 ... 131
게임의 아이콘 정의 ... 133
안드로이드 API의 기본 ... 135
테스트 프로젝트의 생성 ... 135
액티비티 생명주기 ... 140
입력 기기의 처리 ... 149
파일 처리 ... 170
오디오 프로그래밍 ... 178
효과음의 재생 ... 178
스트리밍 음악 ... 183
기본 그래픽 프로그래밍 ... 188
모범 개발 방식 ... 218
정리 ... 220
05장 안드로이드 게임 개발 프레임워크 ... 223
공략 계획 ... 223
AndroidFileIO 클래스 ... 224
AndroidAudio, AndroidSound, AndroidMusic ... 225
AndroidInput과 AccelerometerHandler ... 232
AccelerometerHandler: 가속도계의 감지 ... 232
Pool 클래스: 재사용은 좋은 것이다! ... 234
KeyboardHandler: 위, 아래, 왼쪽, 오른쪽 ... 237
터치 핸들러 ... 242
AndroidInput: 위대한 조율자 ... 251
AndroidGraphics과 AndroidPixmap: 두 개의 무지개 ... 254
각기 다른 화면 크기와 해상도의 처리 ... 254
AndroidPixmap: 사용자를 위한 픽셀 조정 ... 260
AndroidGraphics: 드로잉 작업의 수행 ... 262
AndroidFastRenderView: 루프, 확장, 루프, 확장 ... 267
AndroidGame: 모든 내용의 종합 ... 270
정리 ... 276
06장 Mr. Nom 안드로이드를 침공하다 ... 279
자원의 생성 ... 279
프로젝트 설정 ... 282
MrNomGame: 메인 액티비티 ... 282
Assets: 편리한 자원 저장소 ... 283
Settings: 사용자 선택값과 하이스코어의 추적 ... 285
LoadingScreen: 디스크로부터 자원 로드 ... 287
메인 메뉴 화면 ... 289
HelpScreen 클래스(들) ... 293
하이스코어 화면 ... 296
숫자 렌더링: 짧은 여행 ... 296
화면 구현 ... 298
추상화 ... 301
Mr. Nom의 게임 공간에 대한 추상화: 모델, 뷰, 컨트롤러 ... 302
GameScreen 클래스 ... 316
정리 ... 325
07장 오픈GL ES의 간단한 소개 ... 327
오픈GL ES는 무엇이고 왜 알아야 하나? ... 327
프로그래밍 모델: 비유 ... 329
투영 ... 331
정규화된 기기 공간과 뷰포트 ... 333
매트릭스 ... 334
렌더링 파이프라인 ... 335
시작에 앞서 알아야 할 내용들 ... 336
작업을 쉽게 도와주는 GLSurfaceView ... 337
GCGame: Game 인터페이스의 구현 ... 341
엄마, 내가 빨간색 삼각형을 그렸어! ... 351
뷰포트의 정의 ... 351
투영 매트릭스의 정의 ... 351
삼각형의 지정 ... 356
내용 정리 ... 361
정점 색상의 지정 ... 365
텍스처 매핑: 손 쉬운 이미지 배치 작업 ... 370
텍스처 좌표 ... 370
비트맵 업로드 ... 372
텍스처 필터링 ... 374
텍스처의 정리 ... 375
유용한 코드 조각 ... 376
텍스처 활성화 ... 376
내용 정리 ... 377
텍스처 클래스 ... 380
인덱스를 갖는 정점 재사용은 항상 유용하다. ... 382
내용 정리 ... 385
Vertices 클래스 ... 387
알파 블렌딩 ... 390
다양한 원시 도형 : 점, 선, 스트립, 팬 ... 395
2차원 변형: 모델-뷰 매트릭스를 활용한 재미있는 프로그래밍 ... 397
세계 공간과 모델 공간 ... 397
다시 살펴보는 매트릭스 ... 399
변형을 활용한 첫 번째 예제 ... 400
더 많은 변형 ... 406
성능 최적화 ... 411
프레임 레이트의 측정 ... 411
안드로이드 1.5에서 실행되는 히어로의 문제 사례 ... 413
오픈GL ES 렌더링을 느리게 만드는 요인 ... 414
불필요한 상태 변화의 제거 ... 416
텍스처 크기를 줄이면 가져올 픽셀도 줄어든다 ... 418
오픈GL ES/JNI 메서드 호출의 제한 ... 419
바인딩 정점 ... 420
마무리하며 ... 424
정리 ... 425
08장 2D 게임 프로그래밍 기법 ... 427
시작에 앞서 ... 427
태초에 벡터가 있었다 ... 428
벡터의 활용 ... 429
간단한 삼각함수 이론 ... 432
Vector 클래스의 구현 ... 434
간단한 사용 예제 ... 439
간단한 2차원 물리 ... 444
뉴턴과 오일러, 영원한 좋은 친구들 ... 445
힘과 질량 ... 446
이론적인 적용 ... 447
실제 적용 ... 448
충돌 감지와 2차원에서의 객체 표현 ... 453
경계 도형 ... 454
경계 도형의 구성 ... 456
게임 객체의 어트리뷰트 ... 459
광범위 충돌 감지와 미세 충돌 감지 ... 460
적용 예제 ... 469
2차원 카메라 ... 486
Camera2D 클래스 ... 489
예제 ... 491
텍스처 아틀라스: 공유는 관심이다 ... 493
예제 ... 496
텍스처 영역, 스프라이드, 배치: 오픈GL ES 숨기기 ... 500
TextureRegion 클래스 ... 501
SpriteBatcher 클래스 ... 502
스프라이트 애니메이션 ... 514
Animation 클래스 ... 515
예제 ... 517
정리 ... 523
09장 수퍼 점퍼 2D 오픈GL ES 게임 ... 525
핵심 게임 방식 ... 525
게임의 배경 이야기와 아트 스타일 ... 526
화면과 화면 전환 ... 527
게임 세계의 정의 ... 528
자원의 생성 ... 531
UI 요소 ... 531
비트맵 폰트를 활용한 텍스트 처리 ... 533
게임 요소 ... 536
텍스처 아틀라스 ... 538
음악과 효과음 ... 539
수퍼 점퍼 게임의 구현 ... 541
Assets 클래스 ... 541
Settings 클래스 ... 545
메인 액티비티 ... 547
Font 클래스 ... 548
GLScreen ... 550
메인 메뉴 화면 ... 551
도움말 화면 ... 555
하이스코어 화면 ... 558
시뮬레이션 클래스 ... 561
WorldRenderer 클래스 ... 591
최적화하기 또는 최적화하지 않기 ... 596
정리 ... 598
10장 오픈GL ES를 활용한 3D ... 601
시작에 앞서 ... 602
3D의 정점 ... 602
Vertices3: 3D 위치의 저장 ... 602
예제 ... 605
시점 투영 가까이 있는 대상을 더 크게 ... 609
z버퍼 혼란 속에 질서를 부여하다 ... 612
이전 예제의 수정 ... 614
블렌딩 뒤에 아무도 없다 ... 615
z버퍼의 정확도와 z 파이팅 ... 618
3D 메시의 정의 ... 620
큐브 Hello World 3D ... 621
예제 ... 624
다시 살펴보는 매트릭스와 변형 ... 628
매트릭스 스택 ... 629
매트릭스 스택을 갖춘 계층적 시스템 ... 631
간단한 나무상자 태양계 시스템 ... 632
정리하기 ... 636
간단한 카메라 시스템 ... 640
정리 ... 644
11장 3D 프로그래밍 트릭 ... 647
시작에 앞서 ... 647
3D에서의 벡터 ... 648
오픈GL ES에서의 광원 ... 654
광원의 적용 방식 ... 654
광원 ... 656
재료 ... 657
오픈GL ES가 빛을 계산하는 방법 정점 법선 ... 658
실제 적용 ... 659
오픈GL ES의 광원 사용과 관련한 몇 가지 참고 사항 ... 676
밉매핑 ... 677
간단한 카메라 ... 683
1인칭 카메라 또는 오일러 카메라 ... 683
오일러 카메라 예제 ... 687
관찰 카메라 ... 394
모델의 로딩 ... 697
Wavefront OBJ 형식 ... 697
OBJ 로더의 구현 ... 699
OBJ 로더의 활용 ... 705
모델 로딩과 관련한 참고사항 ... 705
간단한 3D 물리 이론 ... 706
3D에서의 충돌 감지와 객체 표현 ... 707
3D에서의 경계 도형 ... 707
경계 구의 충돌 검사 ... 708
GameObject3D와 DynamicGameObject3D ... 710
정리 ... 712
12장 드로이드 인베이더 그랜드 파이널 ... 715
핵심 게임 방식 ... 715
배경 이야기와 아트 스타일 ... 717
게임 화면과 화면 전환 ... 718
게임 세계의 정의 ... 719
자원의 생성 ... 721
UI 자원 ... 721
게임 자원 ... 722
음악과 효과음 ... 724
접근 방법 ... 725
Assets 클래스 ... 725
Settings 클래스 ... 729
메인 액티비티 ... 731
메인 메뉴 화면 ... 732
설정 화면 ... 736
시뮬레이션 클래스 ... 739
Shield 클래스 ... 740
Shot 클래스 ... 740
우주선 클래스 ... 741
인베이더 클래스 ... 744
세계 클래스 ... 747
GameScreen 클래스 ... 755
WorldRender 클래스 ... 764
최적화 ... 771
정리 ... 773
13장 게임 배포 ... 775
테스트에 대한 조언 ... 775
개발자 등록 ... 777
게임 APK 서명 ... 778
마켓에 게임 배포 ... 781
자원 업로드 ... 782
Listing Details ... 783
배포 옵션 ... 784
배포! ... 784
마케팅 ... 785
개발자 콘솔 ... 785
정리 ... 787
14장 이제 어디로? ... 789
게임의 소셜 연동 ... 789
위치 기반 게임 ... 790
멀티플레이어 기능 ... 790
오픈GL ES 2.0 및 그 외 기능 ... 790
프레임워크와 엔진 ... 791
웹 자료 ... 793
맺음말 ... 793
찾아보기 ... 794
더보기 닫기