| 로그인 | 회원가입 | 고객센터 | 안내요청
 
HOME > 새로나온책
 
 
: : 피씨북입니다. : :
제목 : 모바일 온라인 게임 프로그래밍
페이지 : 500P
정가 : 18,000원
판형 : 4×6 배판 변형판
발행일 : 2002년 1월 2일
저자 : 한용희 (품절) ( woom33@korea.com)
요약 : 모바일로 즐기는 온라임 게임을 내 손으로 만들어보는 신나는 체험을 가능하게 하는 책으로 모바일 게임의 처음에서부터 끝까지 자세히 설명하고 있다.

011, 017에서 서비스하고 있고, 국내 1위의 시장 점유율을 가지고 있는 GVM을 중심으로 모든 함수를 예제를 곁들여서 하나씩 설명한다. 차세대 대표주자 모바일 온라인 게임을 만나보자.
[ 이 책에서 제시하는 내용 ]
 

요즘 사람들은 대부분 누구나 핸드폰 하나씩은 들고 다닌다. 우리가 어디를 가든지 따라다니는 것은 바로 주머니 속에 있는 핸드폰이다. 이 핸드폰의 용도가 단순히 통화하는 기능뿐만 아니라, 즐기기 위한 도구로 자리를 잡아가고 있다. 이제는 핸드폰이 휴대용 게임기 수준으로 발전을 하고 있는 것이다. 이러한 추세에 맞추어 핸드폰으로 온라인 게임 만드는 방법을 본서에서는 제시하고 있다.

▶ 011, 017에서 서비스하고 있고, 국내 1위의 시장 점유율을 가지고 있는 GVM을 중심으로 모바일 온라인 게임 제작 방법을 설명한다.

▶ 모바일 기기를 위한 VM(Virtual Machine)의 개념과 종류, 실행 환경을 설명하고 현재 우리나라에서 사용되고 있는 VM 플랫홈을 설명한다.

▶ 이 책을 마스터하고 나면 나 혼자서도 핸드폰 온라인 게임을 자유자재로 만들 수 있으며 게임 외에도 모바일 애플리케이션 프로그래머로 변신할 수 있다.

▶ 게임 개발이 완성되기 전에는 자신의 PC에서 애뮬레이트하면서 실험할 수 있도록 완전한 애뮬레이트 환경을 제공한다.

▶ 게임 개발에 필요한 애니메이션과 사운드 제작 기법을 작은 예제들을 통해 해설하며 멀티미디어 개발에 필요한 툴의 사용법을 설명한다.

▶ 간단한 게임부터 복잡한 온라인 게임까지 제작하는 방법을 상세히 설명하며 게임 개발시의 기획서 포맷도 그대로 제시한다.

▶ 온라인 게임 실행에 필요한 클라이언트와 서버 제작 방법을 소스 코드와 함께 소개하며 핸드폰을 단말기로 통신하는 기법을 해설한다.

▶ C 언어 기반의 GVM은 C 언어를 축소한 것이므로 C 언어에 대한 기초만 알고 있으면 누구나 쉽게 게임을 제작할 수 있다.

▶ GVM이 제공하는 모든 함수를 예제를 곁들여 하나씩 자세히 설명하며 함수별로 실행 결과를 확인할 수 있게 한다.

▶ GVM SDK와 본서의 모든 소스를 자세한 주석과 함께 CD로 제공하며 게임의 전체 소스 중 중요 부분은 별도의 장에서 상세히 설명한다.

[ 목차 ]
 

1. 핸드폰으로 어떤 게임을 할 수 있을까? / 23
핸드폰 게임은 어떤 것이 있는가? / 23
HellFire 게임을 해보자. / 27

2. 어떻게 하다가 핸드폰으로 게임까지 하게 되었나? / 31
VM의 출현 배경 / 31
핸드폰 VM의 종류 / 34

3. GVM이란? / 37
GVM의 소개 / 37
과금 방식 / 37
GVM 서비스 현황 / 38
단말기 현황 / 38
컨텐츠 현황 / 38
다운로드 현황 / 39
단말기 시장 점유율 / 40
GVM을 통한 수익 모델 / 41
GVM 컨텐츠 개발 및 서비스 과정 / 42
STEP1 컨텐츠 기획 / 42
STEP2 이미지 / 오디오 작성 / 43
STEP3 MobileC 프로그램 작성 / 43
STEP4 컴파일 및 테스트 / 43
STEP5 Provisioning 준비 / 43
STEP6 Provisioning 시험 / 44
GVM 버전 / 44
GVM1X / 44
GVM2X / 44
GVM3X / 45
마치면서 / 45

4. GVM SDK(Software Development Kit) / 47
GVM SDK 소개 / 47
MobileC Compiler / 47
Media Tool / 47
GVM Emultr / 48
버저 마스터 / 49
버저 마스터 이용시 주의할 점 / 53
이미지 마스터 / 54
이미지 마스터 사용시 주의할 점 / 60
MobileC 컴파일러 / 61
MCC.exe / 61
MASM.exe / 61
에러 처리 / 63
GVM 에뮬레이터 / 64
CLCD Setting / 67
Sound Setting / 68
Script 열기 / 68
Script 다운받기 / 69
Script 실행 / 70
Stand-alone형 컨텐츠 / 71
PTP형 컨텐츠 / 71
서버 접속형 컨텐츠 / 73
복합 실행형 컨텐츠 / 73
에뮬레이터에서의 키 사용법 / 74
채팅 지원 / 74
단말기와 에뮬레이터의 차이점 / 78

5. MobileC / 79
개요 / 79
특징 / 79
Event-Driven / 79
데이터 타입 / 80
모든 변수는 기본적으로 정적 할당을 한다. / 81
별도의 Linkage Library를 지원하지 않는다. / 81
함수 재귀 호출 불가능 / 81
MobileC의 기본 문법 / 82
자료형(data type) / 82
Type Checking / 86
Pointer / 86
구조체(structure type) / 88
심볼 / 90
단말기의 메모리 구성 / 91
연산자 / 92
문장 / 93
주석 / 93
변수 범위 규칙(Scope Rules) / 94
선행처리기 / 94
표준 라이브러리 사용 / 94
다국어 지원 / 94
기타 / 94
MobileC와 표준 C의 비교 / 95
MobileC의 특수한 확장 / 96
삽입 기능(as is mode) / 96
Header Info Table / 96
이벤트 핸들러 / 97
시스템 변수 / 100
메모리 관리 / 101
SGS 파일 포맷 / 103
이벤트 핸들러 / 104
EVENT_START / 104
EVENT_END / 104
EVENT_TIMEOUT / 105
EVENT_KEYPRESS / 105
EVENT_RESULT / 106
EVENT_RECEIVE / 108
EVENT_RSEVENT / 108
EVENT_RSRECEIVE / 109
스크립트 구조 / 109
Hello World! / 110
첫 번째 Hello World! / 110
두 번째 Hello World! / 113
세 번째 Hello World! / 114
마치면서 / 116

6. MobileC Library Guide / 117
시스템 라이브러리 함수 / 119
그래픽 라이브러리 함수 / 119
문자열 라이브러리 함수 / 122
핸드셋 라이브러리 함수 / 123
수학 라이브러리 함수 / 124
네트웍 라이브러리 함수 / 125
기타 라이브러리 / 127
벤더 라이브러리 함수 / 127
Advanced Audio Library Functions / 128
User Data Access Library Functions / 128
OEM API Library Functions / 129

7. 핸드폰용 스타크래프트인 PhoneCraft는 무엇인가? / 131

8. PhoneCraft는 어떻게 하는 게임인가? / 139

9. PhoneCraft를 한 번 해보자. / 159
서버의 가동 / 159
방장의 단말기를 가동시켜 보자 / 160

10. 게임 만들기의 기초! 애니메이션 / 169
그림을 그리자 / 169
이미지 마스터에서 편집하자 / 173
이미지를 프로그램에 실어 프로그램을 완성하자. / 175
소리를 추가해 보자. / 180
이제 모든 애니메이션은 문제 없다! / 182

11. 네트웍의 기초! 핸드폰끼리 통신(PTP) / 183
PTP(Phone To Phone) 예제 / 183
채팅도 해볼까? / 189

12. 온라인 게임을 만들기 위한 기초! 서버와의 통신 / 195
GVM의 통신 규약 / 198
클라이언트(단말기)는 어떻게 만들었나? / 200
서버는 어떻게 만들었나? / 201

13. 실전! PhoneCraft 만들기(Client 제작) / 215
게임 시작 메뉴의 상태들 / 216
유닛 배치의 상태들 / 217
단말기와 서버가 통신하는 형식에 대한 약속 / 219
단말기와 서버가 악수하는 방법 / 220
단말기 Login / 220
방개설 / 221
참여하기 / 221
게임시작 / 223
게임 플레이 / 224
방장이 방생성 취소 / 224
손님이 게임 시작하기 전에 참여한 방에서 나가는 경우 / 225
단말기에서 유닛을 새로 구매하고 배치한 후 서버에 알려주기 / 225
채팅 종료시 알려주기 / 225
손님이 방에 들어 가지 못함을 알려주는 경우 / 226
방장이 방을 생성할 때 여분의 방이 없을 때 / 226
게임의 승패 결과를 알려주는 핸드쉐이킹 / 227
아직까지 살아 있냐를 알아보는 핸드 쉐이킹 / 228
PhoneCraft의 유닛 데이터 코드들 / 229
PhoneCraft의 유닛을 배치하기 위한 변수들 / 230
PhoneCraft의 천적 관계 데이터 / 231
유닛 가격 데이터 / 232
타이머의 작동 / 233
PhoneCraft의 함수들 / 233
void InitUnitBuy() / 233
void SeedStar(int ii) / 233
void InitMoveUnit() / 233
void DrawTitle() / 234
void InitGameStart() / 234
void InitUnitPosition() / 234

void Init() / 234
void DrawTribe() / 234
void DrawUnit(int x,int y, int code) / 234
void DrawMenu1() / 234
void DrawIntro() / 234
void DrawUse() / 234
void DrawFailCreateRoom() / 234
void DrawWaitingroom() / 235
void SendLogin() / 235
void MakeRoomLogin() / 235
void ReceiveMove() / 235
void DrawMakeroom() / 235
void DrawGuestRoom() / 235
void MoveUnit(int ax,int ay,int dx,int dy) / 235
void MoveAfter() / 235
void AttackAfter() / 235
void AttackUnit(int ax,int ay,int dx,int dy) / 236
void DrawAllUnit() / 236
void DrawUnitPosition() / 236
void DrawBoard() / 236
void JoinRoomLogin() / 236
void RefreshWaitRoom() / 236
void SendAlive() / 236
void SendStart() / 236
void SendEndChat() / 236
void SendWin() / 236
void SendLose() / 237
void SendGiveUpWin() / 237
void CancelRoom() / 237
void ExitRoom() / 237
void SendMove() / 237
void EnterRoom() / 237
void SendUnitPosition() / 237
void GetWaitRoom() / 237
void ArrangeUnit() / 238
void DrawJoinRoom() / 238

14. 실전! PhoneCraft 만들기(Server 제작) / 239
단말기로부터 메세지를 받는 OnReceive 함수 / 239
메세지를 분류하고 처리하는 ProcessData() 함수 / 241
쓰레기 소각(Garbage Collection) / 244
유저들의 데이터 관리 / 247
채팅 데이터 중계 / 247
마치면서 / 248

15. MobileC Library Reference / 249
시스템 라이브러리 함수 / 249
GetHwConfig / 250
GetSysMin / 251
GetSysUserID / 252
GetLocInfo / 253
그래픽 라이브러리 함수 / 254
ClearWhite / 255
ClearBlack / 256
Clear / 257
PutPixel / 258
GetPixel / 259
SetGamma / 260
SetColor / 261
ResetClip / 262
SetClip / 263
DrawLine / 264
DrawHLine / 265
DrawVLine / 266
InvertRect / 267
DrawRect / 268
FillRect / 269
DrawRectRound / 270
FillRectRound / 271
DrawEllipse / 272
FillEllipse / 273
SetStrType / 274
SetStrFont / 275
SetStrColor / 276
SetStrAlign / 277
DrawStr / 278
DrawStr2 / 279
DrawStrSolid / 280
DrawStrSolid2 / 281
DrawText / 282
DrawTextSolid / 283
SetPalette / 284
CopyImage / 285
CopyImageDir / 286
CopyImagePal / 287
CopyImageDirPal / 288
InitDepthQ / 289
AddDepthQ / 290
DrawDepthQ / 291
ScrollLCD / 292
SaveLCD / 293
RestoreLCD / 294
Flush / 295
문자열 라이브러리 함수 / 296
GetMediaSize / 297
SetMediaSize / 298
StrInit / 299
StrLen / 300
StrCpy / 301
StrSub / 302
StrCat / 303
StrCmp / 304
GetChar / 305
PutChar / 306
AsciiToInt / 307
IntToAscii / 308
GetByte / 309
PutByte / 310
GetBytes / 311
PutBytes / 312
MakeStrStr / 313
MakeStr1 / 314
MakeStr2 / 315
MakeStr3 / 316
MakeStr4 / 317
MakeStr5 / 318
StrInput / 319
StrInput2 / 320
핸드셋 컨트롤 라이브러리 / 321
PlaySound / 322
StopSound / 323
PlayVocoder / 324
StopVocoder / 325
StartVib / 326
StopVib / 327
SetKeyTone / 328
SetBackLight / 329
GetUserNV / 330
PutUserNV / 331
SetTimer / 332
SetTimer1 / 333
SetTimer2 / 334
ResetTimer / 335
ResetTimer1 / 336
ResetTimer2 / 337
수학 라이브러리 함수 / 338
RandSeed / 339
Rand / 340
RandRatio / 341
Abs / 342
Sgn / 343
Sin100 / 344
Cos100 / 345
Tan100 / 346
ArcSin100 / 347
ArcCos100 / 348
ArcTan100 / 349
Avr / 350
Avr3 / 351
Max / 352
Max3 / 353
Min / 354
Min3 / 355
FindMax / 356
FindMin / 357
FindNear / 358
ArrayToVar / 359
ArrayToArray / 360
ArrayToArray2 / 361
네트웍 라이브러리 함수 / 362
NetReconnect / 363
NetSend / 364
LoadMedia / 365
LoadMediaResult / 366
RsCom / 367
RsSend / 368
SendSMS / 369
Download / 370
Download2 / 371
BackToBrowser / 372
Exit / 373
NetState / 374
NetConnect / 375
VoiceCall / 376
PtpCall / 377
PtpCallMmi / 378
PtpWait / 379
PtpRelease / 380
기타 라이브러리 함수 / 381
HitCheck / 382
GetDate / 383
GetTime / 384
LockChatMode / 385
SetChatMode / 386
벤더 라이브러리 함수 / 387
RegMusicBell / 388
RegScreen / 389
SetSoMo / 390
Advanced Audio Library Functions / 391
RegAdvAudio / 392
PlayAdvAudio / 393
PauseAdvAudio / 394
RestartAdvAudio / 395
StopAdvAudio / 396
ManAdvAudio / 397
User Data Access Library Functions / 398
ReadHandsetData / 399
WriteHandsetData / 400
ReadHandsetData와 WriteHandsetData에 대하여?? / 402
OEM API Library Functions / 404
OemApi / 405

16. PhoneCraft 전체 소스 코드 / 407

부록. MobileC 에러 메시지 / 467
GVM 단말기 탑재 현황(2002.01.03) / 471
MobileC 문자표 / 472
ASCII Code / 472
Version 이력 / 473
1 version 1.0 => version 1.5 / 473
2 version 1.5 => version 1.51 / 473
3 SWAP Module version에 따른 Library Function 실행시 차이점 / 473
4 version 1.51 => version 1.52 / 474
Version 1.5에 새롭게 추가된 Library Functions / 475
Network Libray Functions / 475
Advanced Audio Library Functions / 475
Graphic Libray Functions / 476
String Libray Functions / 476
Network Libray Functions / 477
Vendor Library Functions / 477
Advanced Audio Library Functions / 477
User Data Acess Libray Functions / 477
OEM API Library Functions / 477
Version 1.51에서 삭제된 Library Functions / 478
Advanced Audio Library Functions / 478
MobileC Key 코드 값 / 479
개발 시 유의사항 / 480
컨텐츠 최대 크기 제한 / 480
과도한 CPU 점유율 방지 / 480
효과적인 LCD Refresh / 480
스트링 변수에 대입문을 초기화할 때 빼고는 절대 쓰면 안 된다. / 480
마스터 팔레트 / 482
Gray Palette / 482
Color Palette / 483
단말기 모델별 특징과 이를 고려한 개발 가이드 / 487

회사소개