목차
CHAPTER 01 안드로이드 게임 개발을 시작하며
   필요한 능력 ... 2
      안드로이드 개발의 기초 지식 ... 2
      리눅스와 셸 스크립팅 기초 지식 ... 5
   필요한 소프트웨어 도구들 ... 5
   개발용 리눅스 컴퓨터 준비 ... 6
      안드로이드 소스 얻기 ... 7
      네이티브 안드로이드 라이브러리 추출 ... 10
      ARM 프로세서용 GNU 도구사슬 설치 ... 12
      커스텀 컴파일 스크립트 작성 ... 15
   안드로이드 개발 환경 설정 ... 26
   요약 ... 33
CHAPTER 02 안드로이드 네이티브 코드 다루기
   기본적인 안드로이드 네이티브 프로그램 ... 35
      AVD 생성 ... 35
      안드로이드 프로젝트 만들기 ... 38
      안드로이드 응용프로그램의 구조 ... 40
   공유 라이브러리의 컴파일과 시험 ... 56
      기호 누락 문제 해결 ... 61
      기기에서 동적 라이브러리를 검사 ... 62
strace를 이용한 디버깅 ... 63
      정적 링크 ... 65
   안드로이드 응용프로그램에서 시험해 보기 ... 67
   요약 ... 69
CHAPTER 03 순수 Java로 안드로이드 게임 만들기
   안드로이드 게임 개발 대 Java ME 게임 개발 ... 71
   첫 Java 게임, Space Blaster 만들기 ... 73
      게임의 전반적인 구조 ... 74
      프로젝트 생성 ... 76
      게임의 활동 클래스 작성 ... 77
      게임 레이아웃 작성 ... 79
      게임의 구현 ... 86
      키 및 터치 사건 처리 ... 97
   에뮬레이터에서 시험해 보기 ... 101
   요약 ... 102
CHAPTER 04 Java 게임 계속: 다각형 다루기
   이번 장의 구성 ... 105
   안드로이드에서 다각형 그리기를 힘들게 하는 걸림돌들 ... 106
   직사각형 그리기에 관련된 걸림돌 ... 108
   Asteroids를 위한 다각형 클래스 만들기 ... 111
   Asteroids에 사용할 PolygonSprite 클래스 ... 117
   게임의 전반적인 구조 ... 123
   프로젝트 만들기 ... 124
      게임 레이아웃 만들기 ... 125
      프로젝트에 쓰이는 자원들 ... 125
      게임의 수명 주기 ... 127
      키 입력과 화면 터치 사건 처리 ... 140
   Asteroids를 에뮬레이터에서 시험 ... 145
   요약 ... 146
CHAPTER 05 JNI를 이용한 혼성 OpenGL 3D 그래픽
   모바일 기기의 성능 ... 151
   Java로 OpenGL 다루기 ... 153
      Java 전용 버전의 주 활동 ... 157
      표면 뷰 ... 159
      GLThread ... 163
      입방체 렌더러 ... 167
      Cube 클래스 ... 171
   네이티브 방식의 OpenGL 렌더링 ... 174
      주 활동 ... 177
      네이티브 연동 클래스 ... 179
      기존 클래스들 고치기 ... 181
      네이티브 입방체 렌더러 ... 183
      네이티브 버전의 입방체 정의 ... 192
      예제의 컴파일과 실행 ... 194
   OpenGL 게임을 안드로이드로 이식할 때 주의해야 할 사항들 ... 200
   베일이 벗겨지다 ... 202
CHAPTER 06 3D 슈팅 게임 에피소드 Ⅰ: 안드로이드용 Wolfenstein 3D
   사전 준비 ... 206
      이번 장 소스 코드 내려 받기 ... 206
   Wolf 3D 소개 ... 207
   게임의 전반적인 구조 ... 211
   Wolf 3D의 Java 클래스들 ... 213
      게임의 주 활동 ... 215
      Wolf 3D의 주 메뉴 ... 219
      키 입력과 터치 사건 처리 ... 222
      게임의 주 루프로 진입 ... 224
      네이티브 콜백 호출 ... 226
      배경 음악과 효과음 처리 ... 229
      게임 컨트롤러 터치 사건 처리부 ... 230
      게임 컨트롤러 구현 ... 232
      음향 클래스들 ... 242
      네이티브 연동 클래스 ... 254
   네이티브 계층 ... 258
      주 게임 루프의 시작 ... 259
      콜백: C에서 Java 메서드를 호출 ... 263
   네이티브 라이브러리 만들기 ... 272
      Makefile 작성 ... 272
      JNI 헤더와 DSO 생성 ... 274
   Wolf 3D를 에뮬레이터로 시험 ... 275
   요약 ... 278
CHAPTER 07 3D 슈팅 게임 에피소드 Ⅱ: 안드로이드용 Doom
   Java/C 조합의 위력 ... 280
   Doom을 모바일 기기로 이식하기 ... 282
   Doom 게임의 전반적인 구조 ... 285
   Java 계층의 주 활동 ... 287
      생성 처리부 ... 288
      게임 UI 레이아웃 ... 289
      메뉴 생성 및 선택 처리부 ... 292
      키 입력 및 터치 사건 처리부 ... 294
      네이티브 콜백 처리부 ... 296
      게임 컨트롤러 ... 302
   음향 처리 클래스들 ... 304
   네이티브 연동 클래스 ... 305
      콜백 청취자 인터페이스 ... 306
      네이티브 메서드들 ... 306
      C에서 Java로의 콜백들 ... 308
   네이티브 계층 ... 311
      네이티브 메서드 구현 ... 312
      원본 코드 고치기 ... 327
   Doom 네이티브 라이브러리(DSO) 컴파일하기 ... 337
   안드로이드용 Doom을 에뮬레이터로 시험 ... 339
   프로젝트 완수! ... 342
부록 A 설치 및 컴파일 요령
   응용프로그램 서명 ... 343
      키 저장소 만들기 ... 344
      응용프로그램 서명 ... 345
   안드로이드 NDK를 이용해서 제6장, 7장 예제 라이브러리 컴파일하기 ... 348
      NDK 1.5로 Wolf 3D 컴파일하기 ... 351
      공유 라이브러리 컴파일 ... 354
      NDK 1.5에서 OpenGL ES 사용하기 ... 355
      NDK 1.6으로 Doom 네이티브 라이브러리 컴파일하기 ... 357
   책을 마치며 ... 360
부록 B NDK r3 활용
   NDK r3으로 제5장 OpenGL 입방체 예제 컴파일하기 ... 364
      폴더 구조 준비 ... 364
      Eclipse 프로젝트 준비 ... 365
      네이티브 라이브러리의 컴파일 및 링크 ... 367
      Java 소스 수정 및 실행 ... 370
      NDK r3으로 제6장 Wolfenstein 3D 컴파일하기 ... 371
찾아보기 ... 375
닫기