목차
1장 롤플레잉 게임을 만들자 ... 1
   롤플레잉 게임(RPG)이란 무엇인가? ... 2
      컴퓨터 게임으로서의 RPG ... 2
   RPG의 분류 ... 3
      스토리성 ... 3
      이동 ... 4
      전투 ... 5
      시스템의 개요 ... 6
   RPG의 작성 환경 ... 7
      프로그래밍에 필요한 환경 ... 7
      C/C++ 컴파일러 ... 8
        최신의 서비스 팩 ... 8
      컴퓨터 ... 9
      기타 사양 ... 9
      자료 ... 10
      맵 에디터 등 RPG 작성을 위한 툴 ... 10
2장 게임 시스템의 설계 ... 11
   RPG 시스템 ... 12
      표시 방법 ... 12
      스토리 ... 13
      이동(비전투 시) ... 14
      전투 ... 15
      이동 단위(전투 시) ... 15
      윈도의 크기 ... 16
      시스템 정리 ... 16
   RPG에 필요한 기능과 설계 ... 17
      RPG 부분 ... 17
      맵의 표시 ... 17
      이동 ... 20
      전투 ... 21
      CPU 측의 행동 루틴 ... 21
      파라미터 ... 22
   이벤트 부분 ... 23
      게임의 전체 흐름 ... 24
3장 Windows 프로그래밍 ... 27
   게임에 필요한 기능 ... 28
      화면 표시 ... 28
      기타 기능 ... 29
   윈도를 연다 ... 30
      가교적인 부분의 작성 ... 30
      Windows 프로그램의 흐름 ... 30
      기본 클래스 작성 ... 31
        애플리케이션 ... 31
      윈도의 작성과 메시지 처리 ... 36
        윈도 ... 36
        메시지 처리 ... 45
   CG를 표시한다 ... 45
      비트맵의 개요 ... 46
      DIB의 구조 ... 46
   CG를 표시하는 애플리케이션 ... 53
      윈도 스타일의 설정 ... 57
      DIB의 작성과 CG 읽기 ... 59
      DIB의 표시 ... 59
   CG/스프라이트를 겹친다 ... 60
      레이어 처리용 클래스 작성 ... 61
        복사용 함수 ... 63
        레이어 처리용 함수 ... 63
      DIBSection ... 65
      DIBSection의 그림 그리기 ... 68
   스프라이트 표시 ... 69
4장 맵과 캐릭터의 표시 ... 73
   맵의 좌표계 ... 74
      맵 좌표에서 화면 좌표로의 변환 ... 74
      화면 좌표에서 맵 좌표로의 변환 ... 76
        색 분류 맵을 이용한다 ... 76
        좌표 변환 계산식 ... 77
        해결안 ① : 실수 연산을 사용한다 ... 78
        해결안 ② : 시프트 연산을 사용한다 ... 78
        해결안 ③ : 오프셋을 추가한다 ... 78
        해결안 ④ : 경우 분류 ... 79
   스프라이트의 표시 ... 79
      스프라이트의 표시 순서 ... 79
   표시 샘플 프로그램 ... 81
      컨피그 ... 81
      좌표 변환 ... 82
      스프라이트 클래스의 확장 ... 83
      입력 조작 ... 85
      윈도의 조작 ... 87
      전투 클래스 ... 92
        마우스 이벤트 ... 100
      샘플의 실행 ... 101
        동작을 검증한다 ... 101
        고의로 오류를 만드는 방법도 있다 ... 101
5장 캐릭터의 이동 ... 103
   이동의 개념 ... 104
      이동 가능한 장소를 판단한다 ... 104
      이동 거리의 탐색 ... 105
        이동 판단 테스트 ... 107
      지정한 위치로의 이동 ... 110
   이동 애니메이션 ... 111
      애니메이션 패턴 ... 111
      이동 애니메이션 등록 ... 113
   이동 샘플 프로그램 ... 115
      전투 클래스의 확장 ... 115
      입력 처리 내장 ... 120
      샘플 실행 ... 122
6장 전투 ... 123
   맵 데이터 읽기 ... 124
      설정 파일을 준비한다 ... 124
      텍스트 파일 읽기 ... 126
        텍스트 파일 읽기 ... 126
        자구(字句) 해석 ... 129
      전투 클래스에 설정 파일의 읽기 기능을 내장한다 ... 136
   전투의 룰 ... 148
      판단 루틴의 결정 ... 149
      계산에 필요한 파라미터 ... 149
      데미지 계산 ... 149
      난수의 개념 ... 150
        난수로 크리티컬 히트를 가한다 ... 151
      사정 거리 구하는 방법 ... 151
   공격 시의 애니메이션 ... 152
      애니메이션 패턴 ... 152
      공격 처리의 절차 ... 153
   마법 공격의 처리 ... 161
      시각 효과를 추가한다 ... 161
      보조 마법 ... 162
   CPU 측의 사고 루틴 ... 163
      공격 상대의 선택 ... 163
      공격의 절차 ... 164
   CPU 측 캐릭터의 공격 ... 166
      이동 장소 후보의 검색 ... 165
      이동 장소의 결정 ... 165
      플레이어 캐릭터에의 공격 ... 166
        코드의 해설 ... 169
      CPU 측을 움직인다 ... 169
        메시지 대기 처리 ... 169
   샘플의 실행 ... 172
      스테이터스의 표시 ... 172
        팝업 스테이터스의 작성 ... 173
      커맨드의 입력 ... 176
7장 이벤트 ... 181
   이벤트의 실행 방법 ... 182
      시나리오를 준비한다 ... 182
      커맨드 결정 ... 183
      커맨드 ... 185
      메인 메뉴용 커맨드 ... 190
   커맨드의 실행 처리를 만든다 ... 191
      인터프리터형인가 컴파일러형인가? ... 191
      「구문 해석」과 「자구 해석」 ... 192
      스크립트 해석과 커맨드 실행 ... 193
        스크립트 실행 ... 193
        이벤트 시의 입력 처리 ... 197
      처리 내용을 작성한다 ... 198
        커맨드의 처리 ... 198
        텍스트 표시 ... 206
        메뉴 표시 ... 207
        그림 그리기 ... 208
   이펙트 ... 210
      타이머 처리 ... 210
      와이프 인 ... 211
      페이드 ... 213
      이미지의 합성 ... 214
      샘플 실행 ... 216
8장 파라미터의 편집 ... 219
   파라미터 ... 220
      파라미터에 의한 게임 밸런스의 조정 ... 220
   파라미터 에디터 ... 221
      모형 작성 ... 221
      다이얼로그 작성 ... 221
      코딩 ... 222
        파일의 읽기/기입 ... 223
        파라미터의 편집 처리 ... 226
   샘플 실행 ... 232
      더미를 이용한다 ... 233
9장 게임을 완성시킨다 ... 235
   부족한 기능 추가 ... 236
   파라미터를 외부 파일로부터 가져온다[import] ... 236
      소스 코드 변경 ... 237
        저장 파라미터 ... 237
   전투 부분과 이벤트 부분의 결합 ... 240
      전투 시작 ... 240
      전투 종료 ... 241
        종료 판정 ... 242
   음악 연주 ... 243
      MCI를 이용한다 ... 243
      벤더와 라이브러리 추가 ... 254
   저장/로드 ... 254
   효과음 내기 ... 260
   레벨업 ... 262
      레벨업의 타이밍 ... 262
      레벨업의 처리 ... 263
   맵을 이용한 다이렉트 점프 ... 266
      다이렉트 점프의 커맨드 ... 267
   샘플 시나리오 ... 270
      시나리오 해설 ... 277
10장 리얼타임 시스템 ... 279
   리얼타임 시스템의 개념 ... 280
      플레이어 캐릭터의 이동 ... 280
        자유도가 높은 이동 시스템 ... 282
      적(敵) 캐릭터의 이동 ... 283
      전투 ... 283
부록 CD-ROM 사용 방법 ... 284
찾아보기 ... 286
닫기