목차 일부
INTRODUCTION. 서문 ... 19
Chapter 1. 마이크로 자바게임에 관해 알고 싶었지만 묻기 어려웠던 것들 ... 20
게임의 새로운 시대 ... 20
간단한 게임의 역사 ... 20
멀티플레이어 매니아 ... 21
마이크로 디바이스 마이크로 생활방식 ... 22
마이크...
더보기
목차 전체
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
더보기 닫기