목차
INTRODUCTION. 서문 ... 19
   Chapter 1. 마이크로 자바게임에 관해 알고 싶었지만 묻기 어려웠던 것들 ... 20
      게임의 새로운 시대 ... 20
        간단한 게임의 역사 ... 20
        멀티플레이어 매니아 ... 21
        마이크로 디바이스 마이크로 생활방식 ... 22
        마이크로 자바 입문 ... 23
      이 책의 임무 ... 24
        게임계획 ... 24
        게임 디자인에 관하여 ... 27
        게임 디자인 절차 ... 27
        선행작업 ... 28
        프로토타이핑(Prototyping) ... 37
        프로그래밍 ... 37
        테스팅 ... 38
      돈을 보여다오(Show Me th Money) : 마이크로 게임 사업 모델 ... 39
      사업개요 ... 40
        광고와 스폰서 ... 40
        컨텐트 판매(Contents Deal) ... 40
        회당 지불 또는 구독 ... 41
      요약 ... 42
PART 1. 작은 환경 ... 43
   Chapter 2. 모바일의 세계 ... 44
      게임의 새로운 시대 ... 44
        마이크로 디바이스 ... 44
        무선 혁명이 시작된다 ... 45
      고성능 자바 기기 : 셋톱 박스, 휴콘솔 ... 48
        퍼스널 자바 ... 48
        자바 TV ... 49
        자바 폰(JavaPhone) ... 49
        PingTel xpressa 폰 ... 49
        샤프 NC-10 IP 폰 ... 50
      휴대용 단말기(PDA) ... 50
        J2ME PDA 프로파일 ... 50
        PalmOS ... 51
        마이크로스프트 윈도우 CE ... 52
        심비안(Symbian) EPOC ... 53
        샤프 Zaurus SL-5000 ... 54
        다른 리눅스 기기 ... 54
        마이크로 JVN(Java Virtual Machines) ... 55
      모바일 폰과 페이저(Pagers) ... 58
        카시오 CdmaOne C452CA ... 58
        에릭슨 R380 ... 58
        후지쯔 F503i ... 59
        히다찌 CdmaOne C451H ... 59
        엘지 텔레콤 p510(i-Book) ... 59
        다른 엘지 텔레콤 전화기 ... 59
        마쯔시다/파나소닉 P503i ... 60
        마쯔시다/파나소닉 P503iS ... 60
        마쯔시다/파나소닉 FOMA P2101V ... 60
        미쯔비씨 P503i, D503iS ... 60
        미쯔비씨 J-D05 ... 61
        모토롤라 i85s ... 61
        모토롤라 i50sx ... 62
        모토롤라 Accompli 009 PIC ... 62
        모토롤라, Accompli 008/6288 ... 63
        다른 모토롤라 휴대전화들 ... 63
        NEC N503i ... 63
        NEC FOMA N2001 ... 64
        Nokia 9210, 9290 Communicator ... 64
        RIM/iPaq Blackberry ... 65
        삼성 SCH-X130, SCH-X230, SCH-X350, SCH-X350 ... 65
        샤프 J-SH07 ... 65
        지멘스 SL45i(혹은 6688i) ... 66
        소니 SO503i ... 66
        도시바 J-T06 ... 66
      저성능(Low-End) 자바 디바이스 : 스마트 카드와 임베디드 칩 ... 67
        자바카드(Java Card) ... 67
        임베디드자바(EmveddedJava) ... 67
      요약 ... 68
   Chapter 3. 큰 게임, 작은 스크린 ... 69
      경쟁 ... 69
        살펴 볼 점들 ... 70
        가까운 미래 ... 70
      왑(WAP) 게임들 ... 71
        무선게임 ... 71
        Jamdat ... 75
        PicoFun ... 76
        Handy Games ... 77
        FunCaster.com ... 79
        언플러그드 게임(Unplugged Games) ... 79
        엔게임(nGame) ... 80
      i-모드 게임 ... 82
        단문전송방식(SMS) 게임 ... 83
        It's Alive 사의 보트파이터(BotFighters by It's Alive) ... 84
        빗자비 푸티(Vizzavi Footie)와 트리비아 ... 85
      J2Me MIDP 게임 ... 85
        칼 호넬의 MIDP-Man ... 86
        홀리카우보이의 블록버터와 홀리 몰리 ... 86
        드로우(Draw) 포커 ... 87
        코코아소프트 ... 87
        롬블랙의 모바일 인터넷 메이즈 게임 ... 89
        스카이 아트의 큐브게임 ... 90
        Jshape의 M-Type 및 MIDP 스트리트 파이터 ... 90
        Spruce 팀 ... 91
        레드 팀의 도프 전쟁(Dope Wars) ... 91
      J2ME Palm 게임 ... 92
        토룬다(Torunda)! ... 92
        칼 회르넬의 아이스박스와 PalmWarp ... 93
        호빗의 Let Me Alone ... 94
      아이어플리 게임 ... 94
        Squiral 게임 ... 94
        드왕고의 사무라이 로마네스크 ... 95
        드왕고의 챌린지! 비정한 방식(The Hard-Boiled Way) ... 96
        세가(Sega) ... 97
        남코(Namco) ... 98
        캡콤 ... 98
        반다이 네트워크 ... 98
        사이버드의 미니 게임 텐고쿠 ... 99
        허드슨 소프트 ... 100
      무엇을 기다리는가? ... 101
PART 2. Before, Between 그리고 Byond J2ME ... 103
   Chapter 4. 무선망 표준, 어떻게 데이터가 가고 오는가 ... 104
      무선 네트워크 ... 105
        제1세대(1G) ... 105
        제2세대(2G) ... 105
        2.5세대(2.5G) ... 106
        3세대(3G) ... 106
      The Wireless Application Protocol(WAP) ... 107
        WAP 프로토콜 스택(Protocol Stack) ... 107
        WAP Architecture ... 108
        The Wireless Markup Language(WML) ... 109
        앵커(Anchor) ... 112
        WML 스크립트(Script) ... 122
        WML Script 액세스 ... 123
      서버사이드(Server-Side) WAP ... 125
        서버 설정 ... 125
        WAP과 자바 ... 126
        개발 환경 ... 130
      HDML(Handheld Device Markup Language) ... 132
        HDML 문법 ... 133
        디스플레이(Display) ... 133
        액티비티(Activities) ... 133
        액션(Actions) ... 133
        하이퍼링크(Hyperlinks) ... 134
        이미지(Images) ... 134
      WAP 2.0과 xHTML ... 135
      요약 ... 135
   Chapter 5. 인스턴트 무선 메시지 ... 136
      메시지 서비스와 게임 ... 137
      단문 서비스(SMS) ... 137
        SMS 특징 ... 138
        단문 메시지 서비스 센터(SMSC, Short Message Service Centers) ... 139
        무료 SMS 서비스 ... 140
      SMS 메시지 실제로 보내기 ... 142
        SMS 툴 ... 142
      SMS와 J2ME ... 143
      서버 코드 예제 ... 143
      멀티미디어 메시지 서비스(MMS) ... 145
        멀티미디어 메시지 서비스 센터(MMSC, Mutimidedia Message Service Centers) ... 145
        SMIL ... 146
        간단한 SMIL 예제 ... 146
        확장 메시징 서비스(EMS, Enhanced Messaging Service) ... 147
      요약 ... 148
   Chapter 6. 아시아의 무선시장, I-모드와 cHTML ... 149
      아이모드 사용하기 ... 149
      Compact HTML(cHTML) ... 150
        캐릭터 집합(Character Sets) ... 151
        이모지(Emoji) ... 151
        cHTML 구조 ... 152
        표준 CHTML 태그 ... 153
        입력 폼(Input Forms) ... 154
        앵커(Anchor) 태그 ... 156
        이미지 ... 157
        마퀴(Marquee) ... 158
      개발 툴 ... 158
      테스트와 에뮬레이터 ... 159
      요약 ... 160
   Chapter 7. 무선의 전망 ... 161
      블루투스(Bluetooth) ... 162
        블루투스 프로토콜 ... 163
        Bluetooth와 JAVA ... 163
        다른 단거리 어플리케이션들 ... 163
        Broadband's Promise ... 164
      무선 위치추적(Mobile Positioning) ... 164
        이 모든 것이 어떻게 동작하는가 ... 164
        포럼과 협회 ... 165
        개인정보 ... 166
        위치추적 기술 ... 166
      무선 상거래(m-Commerce) ... 168
        컨텐츠에 대한 요금 징수 ... 169
        마이크로 자바와 돈 ... 170
      음성과 통화 ... 170
        VoiceXML ... 170
        VoiceXML Software ... 171
        무선 전화 어플리케이션 인터페이스(WTAI, Wireless Telephony Application Interface) ... 171
      통합 메시징(UM, Unified Messaging) ... 172
      미래에 대한 전망 ... 172
PART 3. The Java 2 Micro Edition ... 173
   Chapter 8. J2ME 개관 ... 174
      자바 플랫폼의 삼위일체 ... 174
      결국은 작은 세계다 ... 176
        소형 기기에서 자바 사용하기 ... 176
        J2ME의 탄생 ... 176
      프로파일과 컨피규레이션(Profiles and Configurations) ... 177
        주요 J2ME 컨피규레이션 ... 177
        J2ME 프로파일 ... 178
        KVM(Kilobyte Virtual Machine) ... 179
        자바 애플리케이션 매니저 ... 180
        JAR 파일로 묶기 ... 180
      제한된 형태의 연결성 : CLDC ... 180
        보안 ... 181
        사전 검증 ... 181
      모바일 프로파일 ... 181
        MIDP 개요(MIDP in Nutshell) ... 182
        초기 프로파일 ... 182
      요약 ... 183
   Chapter 9. 미들릿 만들기 ... 184
      명령어 라인 미들릿 개발 ... 185
      개발환경 ... 186
        무선 툴킷(Wireless Toolkit) ... 187
        무선 툴킷을 이용하여 미들릿 개발하기 ... 188
      미들릿의 생존 주기 ... 190
      화면 출력 ... 192
        스크린으로 작업하기 ... 193
        폼(Forms) ... 194
      메뉴와 커맨드(Menu and Commands) ... 197
      도움말과 알림(Alert)창 만들기 ... 200
        Alert 클래스 ... 201
        스플래시 스크린(Splash Screen) ... 204
      전역 속성 ... 206
        애플리케이션 속성 얻어오기 ... 206
        시스템 속성 얻어오기 ... 207
        전역 캐시 클래스 만들기 ... 207
      요약 ... 208
   Chapter 10. 제한된 자원 최대한 활용하기 ... 209
      제한 ... 209
        프로세서 문제 ... 210
        메모리 문제 ... 210
        비디오 문제 ... 210
        미래의 프로세서 ... 211
      메모리 한계 ... 211
        작업 메모리 ... 211
        저장 메모리 ... 213
      디스플레이 ... 213
      한계 극복하기 ... 213
        최소 속도 결정하기 ... 213
        프레임 레이트(Frame Rate) ... 214
        다중 디스플레이 지원 ... 214
        흑백의 세계 ... 215
      요약 ... 215
   Chapter 11. 최적화 : 최대한 활용하기 ... 216
      제한된 세계 ... 216
      코드 최적화하기 ... 217
        코드 크기 최적 ... 217
        코드를 더 빠르게 만들기 ... 217
        메모리 사용량 줄이기 ... 217
        장차 가용성 ... 218
        네트워크 퍼포먼스 ... 218
      코드 사이즈 줄이기 ... 218
        오퓨스케이터(Obfuscator)와 이름 단축 ... 219
        객체 지향의 딜레마 ... 220
        이미지 크기 줄이기 ... 222
      코드 속도 높이기 ... 222
        가비지 컬렉터 다루기 ... 223
        생성자 없애기 ... 224
        정적 메소드 ... 225
        빨리 그리기 ... 225
      메모리 적게 사용하기 ... 226
        String VS StringBuffer ... 227
        배열과 벡터(Vector) 그리고 해시테이블(Hashtable) ... 228
      전력 소비 ... 228
      요약 ... 229
   Chapter 12. 멀티스레드 게임 프로그래밍 ... 230
      스레드 ... 230
      Thread 객체 확장하기 ... 232
      Runnable 인터페이스 구현하기 ... 234
      스레드 속성 ... 235
      스레드 상태 ... 236
      동기화와 데드락 ... 236
      wait()와 notify() ... 237
      타이머 ... 238
      스레드 개선하기 ... 240
      요약 ... 242
PART 4. 게임을 시작시키자 ... 243
   Chapter 13. 고수준(High-Level) 그래픽 유저 인터페이스 ... 244
      Screen 클래스 ... 245
      폼(Form)과 얼럿(Alert) ... 245
      리스트(List) ... 245
      리스트 타입(List Type) ... 246
        초이스(Choice) ... 247
      텍스트 박스(Text Boxes) ... 250
      아이템(Items) ... 251
        아이템 상태 리스닝(Item State Listening) ... 252
        초이스(Choice) ... 252
        데이트(Date) ... 252
        진행 바(Progress Meter) ... 254
        텍스트 필드(TextField) ... 258
      티커(Ticker) ... 259
      추가 라이브러리 ... 260
      요약 ... 261
   Chapter 14. 저수준(Low-Level) 그래픽 유저 인터페이스 ... 262
      캔버스(Canvas) 클래스 ... 262
        Canvas 이벤트 ... 263
        사용자 정의 명령 ... 264
        게임 키와 포인터 핸들러 만들기 ... 265
        터치 스크린 다루기 ... 266
      화면에 그리기 ... 267
        색 작업하기 ... 269
        스트로크 타입 ... 269
        선 그리기 ... 269
        사각형 그리기 ... 270
        둥근 사각형 그리기 ... 271
        호 그리기 ... 271
        폰트 ... 272
        문자열 그리기 ... 273
      이미지 그리기 ... 274
        Image 클래스 ... 274
        클리핑 ... 275
        변환 ... 275
        더블 버퍼링 ... 276
      요약 ... 277
   Chapter 15. 스프라이트의 세계로 들어가기 ... 278
      스프라이트 ... 278
        스프라이트 속성 ... 279
        프레임 움직이기 ... 279
        Sprite 클래스 ... 280
      이미지 파일 ... 284
        포함된 이미지 읽어오기 ... 284
        네트워크로부터 이미지 불러들이기 ... 284
        이미지 크기 줄이기 ... 285
        스프라이트 그리기 ... 286
      충돌 검사 ... 286
        기본적인 충돌 검출 ... 287
      자식 스프라이트 만들기 ... 288
        플레이어 스프라이트 만들기 ... 288
        적 ... 289
      투명 이미지 ... 289
        픽셀 단위로 그리기 ... 290
        스프라이트 덩어리 그리기 ... 292
        투명 이미지의 구현 ... 292
      요약 ... 293
   Chapter 16. 스프라이트 다루기 ... 294
      네트워크 게임 구성요소 ... 294
        이미지 다운로드하기 ... 295
        다른 미디어 타입 다운로드하기 ... 296
      진보된 충돌 검사 ... 297
        해결책 1 : 다중 레벨 ... 297
        해결책 2 : 다중 영역 ... 299
      스프라이트 매니저 ... 300
        최적화하여 그리기 ... 302
        스프라이트 충돌 개선 ... 303
      요약 ... 304
   Chapter 17. 스프라이트 이동 ... 305
      J2ME에서의 부동소수점 ... 305
        시스템 속이기 ... 306
      게임 초기화 ... 312
      이동 ... 314
        이동 루틴 ... 315
      모두 합치기 ... 317
        충동 검출 다루기 ... 317
        게임 종료 : 이기느냐 지느냐 ... 318
        마지막 게임 쓰레드 ... 319
      요약 ... 321
   Chapter 18. J2ME 오디오 기초 ... 322
      사운드는 가능하거나 거의 가능하지 않다 ... 322
      요약 ... 324
   Chapter 19. MIDP 저장장치 ... 325
      RecordStore 개관 ... 325
      RecordStore 실제로 사용하기 ... 327
        게임의 새로운 메소드 ... 330
        코드 쓰기 ... 331
        마들릿의 변화 ... 335
      RecordStore 더 즐기기 ... 336
      요약 ... 343
   Chapter 20. 외부로의 연결 : 무선네트워킹 ... 344
      J2ME 네트워킹 개관 ... 344
      MIDP 네트워킹 ... 347
        HTTP에 관한 약간의 정보 ... 347
        HTTP 예제 ... 349
        HTTP 제한 상황에서 작업하기 ... 352
      게임 서버 세팅하기 ... 353
      데이터 포맷 ... 353
        자신만의 패킹(Packing) ... 353
        XML ... 355
        DataOutputStream과 DataInputStream을 이용하여 인코딩하기 ... 356
      멀티플레이어 레이싱 게임 만들기 ... 357
        시스템 디자인하기 ... 358
        특별한 고려 ... 359
        메시지 ... 361
        약점 ... 361
        클라이언트측 ... 362
        서버측 ... 377
        게임 즐기기 ... 385
      요약 ... 389
PART 5. J2ME Extensions ... 391
   Chapter 21. 퍼스널 자바, 연결된 장치 명세 그리고 기타 마이크로 자바 블랜드 ... 392
      연결 장치 명세(Connected Device Configuration, CDC) ... 393
        J2ME 파운데이션 프로파일 ... 394
        퍼스널 프로파일(Personal Profile) ... 394
      퍼스널 자바 ... 394
        퍼스널 자바 API ... 395
        더블 버퍼링 ... 395
        개발자 도구 ... 397
        퍼스널 자바용 MIDP 플러그인 ... 400
        퍼스널 자바 디자인시 고려사항 ... 400
      PDA 프로파일 ... 400
      자바 게임 프로파일 ... 401
      J2ME 멀티미디어 프로파일 ... 402
      요약 ... 402
   Chapter 22. iAppli : 조금 방향이 다른 마이크로 자바 ... 403
      전체의 구조 ... 403
        제공 ... 405
        우선순위 ... 408
      iAppli : MIDP와 비슷하나 같지는 않은 ... 408
        유저 인터페이스 ... 409
        네트워킹과 입출력 ... 419
      iAppli 개발하기 ... 422
      요약 ... 425
   Chapter 23. 지멘스 게임 API ... 426
      셋업하기 ... 427
        컴파일 ... 427
        애뮬레이터에서 실행시키기 ... 427
        실제 폰에서 실행하기 ... 428
        무선 망을 이용하여 애플릿을 다운로드하기 ... 429
      게임 SDK 개관 ... 429
      이미지와 스프라이트 ... 429
        확장 이미지 제작하기 ... 429
        블리팅(Blitting) ... 431
      그래픽 객체 ... 431
      스프라이트 ... 432
        스프라이트 만들고 마스킹하기 ... 433
        샘플 코드 ... 434
      타일형 배경 ... 435
        타일 ... 436
        타일 배경 ... 437
      플래싱 ... 438
      멋진 진동 ... 439
      음악, 달콤한 음악 ... 440
        멜로디 ... 440
      GSM 기능 ... 443
        전화 걸기 ... 443
        전화번호부 접근하기 ... 444
        SMS 메시지 ... 444
      입·출력 ... 444
        데이터 주고받기 ... 444
        파일 저장하고 불러오기 ... 445
      요약 ... 446
PART 6. 마이크로 레이서 ... 447
   Chapter 24. 마이크로 레이서 - 모두 합치기 ... 448
      나쁜 소식 ... 448
      좋은 소식 ... 449
      조각들을 하나로 합치기 ... 450
        무기 추가하기 ... 451
        적 강하게 만들기 : 인공 지능 ... 457
        향상된 컨트롤 ... 459
        파워 업(Power-Ups) 추가 ... 461
        저장영역에 게임 데이터 저장하기 ... 464
        온라인 차고와 연동하기 ... 468
        남은 작업 ... 470
      모든 곳에서 동작하는 하나의 게임 ... 471
        인터페이스의 힘 ... 471
      요약 ... 473
PART 7. APPENDIX ... 475
   Appendix A. 저수준 GUI 클래스 ... 476
   Appendix B. MIDP 1.1. ... 485
   Appendix C. 지멘스 게임 API ... 490
   Appendix D. iAppli API ... 494
닫기