목차
머리말 ... ⅹ
역자 머리말 ... xvi
베타 리더 후기 ... xvii
CHAPTER 1 아이폰 입문
   1.1 애플 개발자 계정과 SDK 다운로드 ... 2
      1.1.1 애플리케이션 번들 ... 3
      1.1.2 Xcode와 인터페이스 빌더 ... 5
      1.1.3 뷰와 콘트롤러 ... 15
   1.2 기기에 올리기 ... 23
      1.2.1 인증과 프로파일 ... 24
      1.2.2 Xcode 설정 ... 25
   1.3 Objective-C 입문 ... 28
      1.3.1 클래스 ... 29
      1.3.2 인스턴스화 ... 34
      1.3.3 메시지 ... 34
      1.3.4 멤버 변수 ... 36
      1.3.5 메모리 관리 ... 36
      1.3.6 생성자와 소멸자 ... 37
      1.3.7 인터페이스 빌더 통합 ... 38
      1.3.8 C++와 Objective-C 혼합 ... 38
   1.4 결론 ... 39
CHAPTER 2 게임 엔진 해부
   2.1 애플리케이션 프레임워크 ... 42
      2.1.1 메인 루프 ... 43
   2.2 게임 스테이트 관리자 ... 44
      2.2.1 스테이트 머신 ... 45
   2.3 그래픽 엔진 ... 49
      2.3.1 텍스처링 ... 49
      2.3.2 애니메이션 ... 54
      2.3.3 물리 엔진 ... 60
      2.3.4 오디오 엔진 ... 66
      2.3.5 플레이어 입력 ... 69
      2.3.6 게임 로직 ... 73
   2.4 결론 ... 82
CHAPTER 3 프레임워크
   3.1 게임 스테이트 관리 ... 84
      3.1.1 구현 ... 86
      3.1.2 상태 바 제거 ... 89
   3.2 App Delegate ... 89
      3.2.1 FPS ... 91
   3.3 이벤트 핸들링 ... 93
   3.4 리소스 매니저 ... 95
      3.4.1 텍스처 포맷 ... 95
      3.4.2 사운드 포맷 ... 96
      3.4.3 리소스 배포 ... 96
      3.4.4 관리 ... 96
   3.5 렌더 엔진 ... 98
      3.5.1 GLESGameState ... 99
      3.5.2 텍스처 ... 100
      3.5.3 폰트 텍스처 ... 102
      3.5.4 예제 스테이트 ... 104
   3.6 사운드 엔진 ... 106
      3.6.1 예제 스테이트 ... 107
   3.7 데이터 저장 ... 109
      3.7.1 간단한 데이터 저장 ... 110
      3.7.2 복잡한 데이터 저장 ... 110
      3.7.3 예제 스테이트 ... 111
   3.8 뼈대 애플리케이션 ... 115
   3.9 결론 ... 117
CHAPTER 4 2D 게임 엔진
   4.1 게임 디자인 ... 119
      4.1.1 기능 목록 ... 120
      4.1.2 사용자 입력 구조 ... 122
      4.1.3 학습 곡선 ... 124
   4.2 타일 엔진 ... 126
      4.2.1 유니크 타일 ... 126
      4.2.2 타일 그리기 ... 128
      4.2.3 TileWorld 클래스 ... 130
   4.3 애니메이션 ... 136
      4.3.1 애니메이션과 스프라이트 클래스 ... 137
   4.4 물리 ... 151
      4.4.1 개체 ... 151
      4.4.2 개체-게임 세계 ... 153
      4.4.3 특수한 타일 ... 157
      4.4.4 개체-개체 ... 157
   4.5 레벨 1 구현 ... 159
      4.5.1 gsEmuLevel ... 159
      4.5.2 TileWorld ... 160
      4.5.3 메인 캐릭터 ... 161
      4.5.4 에뮤 새끼 ... 165
      4.5.5 에뮤 어미 ... 173
      4.5.6 게임 로직 ... 175
      4.5.7 사운드 ... 177
   4.6 레벨 2 구현 ... 177
      4.6.1 gsLionLevel ... 178
      4.6.2 TileWorld ... 179
      4.6.3 McGuffin ... 181
      4.6.4 메인 케릭터 ... 181
      4.6.5 사자 개체 ... 182
      4.6.6 게임 로직 ... 191
      4.6.7 사운드 ... 192
   4.7 레벨 3 구현 ... 192
      4.7.1 gsMazeLevel ... 193
      4.7.2 TileWorld ... 194
      4.7.3 버튼 ... 197
      4.7.4 문 ... 198
      4.7.5 고양이와 쥐 ... 199
      4.7.6 사용자 입력 ... 199
      4.7.7 게임 로직 ... 200
      4.7.8 사운드 ... 208
   4.8 레벨 4 구현 ... 208
      4.8.1 gsRiverLevel ... 209
      4.8.2 TileWorld ... 210
      4.8.3 악어 ... 212
      4.8.4 통나무 ... 213
      4.8.5 Tom ... 214
      4.8.6 사용자 입력 ... 217
      4.8.7 게임 로직 ... 218
      4.8.8 사운드 ... 222
   4.9 게임 스테이트 직렬화 ... 223
      4.9.1 저장소 초기화 ... 223
      4.9.2 게임 끝내기 ... 223
      4.9.3 UI 수정 ... 228
   4.10 결론 ... 228
CHAPTER 5 3D 게임
   5.1 GLESGameState3D 클래스 ... 231
      5.1.1 POWERVR ... 233
      5.1.2 Sprite3D ... 235
      5.1.3 가속도계 ... 236
   5.2 3D 게임 디자인 ... 238
      5.2.1 그래픽 ... 238
      5.2.2 입력 ... 240
      5.2.3 카메라 ... 241
      5.2.4 로직 ... 241
   5.3 구현 ... 241
      5.3.1 카메라 ... 243
      5.3.2 Skybox ... 247
      5.3.3 입력 ... 250
      5.3.4 고리 ... 259
      5.3.5 파티클 시스템 ... 265
      5.3.6 로직 ... 275
      5.3.7 최고 기록 ... 277
   5.4 게임 끝내기 ... 280
   5.5 결론 ... 283
CHAPTER 6 게임 디자인의 고려사항
   6.1 리소스 관리 ... 286
   6.2 사용자 입력 디자인 ... 286
   6.3 네트워킹 ... 287
   6.4 써드파티 코드 ... 288
      6.4.1 라이브러리 ... 288
      6.4.2 미들웨어 ... 289
      6.4.3 오픈 소스 게임 ... 289
   6.5 앱 스토어 ... 290
   6.6 결론 ... 291
APPENDIX 참고문헌
   A.1 코드 참조 ... 293
   A.2 물리 라이브러리 ... 293
   A.3 미들웨어 ... 294
   A.4 오픈 소스 게임 ... 294
찾아보기 ... 295
닫기