이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
베타리더 후기 xiii프롤로그 xv이 책에 대하여 xviiPART I 준비운동CHAPTER 1 MSX 플랫폼과 친해지기 31.1 에뮬레이터 51.2 MSX1 게임 71.3 MSX1 스펙 91.4 메모리 레이아웃 11마치며 13CHAPTER 2 개발 환경 구축 142.1 IDE 172.2 WSL2 182.3 우분투 20.04 LTS 182.4 빌드 시스템 및 WSL 환경 구축 19__2.4.1 콘솔을 이용하는 방법 20 / 2.4.2 GUI 프로그램을 이용하는 방법 21__2.4.3 retro_msx 배포판의 내용 222.5 소스 코드 설치 232.6 소스 코드 빌드 24마치며 25PART 2 MSX1 게임 개발CHAPTER 3 기초 다지기 293.1 ubox MSX 라이브러리 303.2 HelloWorld 33__3.2.1 소스 분석 35 / 3.2.2 ubox API 38__3.2.3 crt0.z80 40 / 3.2.4 Makefile 42 / 3.2.5 실습 423.3 콘솔 모드 HelloWorld 433.4 타이머 453.5 외부 라이브러리 활용하기 483.6 배경음악 503.7 효과음 52마치며 54CHAPTER 4 샘플 게임 프로젝트 564.1 스네이크 56__4.1.1 게임 로직 57 / 4.1.2 정리 634.2 소코반 64__4.2.1 게임 로직 65 / 4.2.2 정리 714.3 테트리스 71__4.3.1 자료구조 72 / 4.3.2 게임 로직 73 / 4.3.3 정리 794.4 브레이크아웃 80__4.4.1 스프라이트 81 / 4.4.2 현대적 렌더링 시스템 81__4.4.3 MSX1의 스프라이트 시스템 84 / 4.4.4 게임 로직 88마치며 92CHAPTER 5 GREEN 프로젝트 945.1 프로젝트 구성 955.2 메인 함수 및 시스템 초기화 975.3 게임 로직 100__5.3.1 초기화 100 / 5.3.2 게임 루프 106 / 5.3.3 상호작용 107마치며 112CHAPTER 6 리소스 유틸리티 1156.1 맵 데이터 116__6.1.1 Tiled 맵 에디터 116 / 6.2.1 map.py 121 / 6.1.3 정리 1266.2 타일 데이터 1266.3 스프라이트 데이터 1276.4 사운드 130__6.4.1 배경음악 131 / 6.4.2 효과음 133마치며 134CHAPTER 7 피라미드 퀘스트 1367.1 게임 로직 1377.2 맵 데이터 만들기 1447.3 유틸리티 커스터마이징 147마치며 150CHAPTER 8 그래픽 작업 1528.1 타일셋 152__8.1.1 기본 아이디어 153 / 8.1.2 근접 색상 구하기 156 / 8.1.3 24비트 PNG로 변환 1578.2 스프라이트 제작 1578.3 실전 162마치며 166PART 3 심화 주제CHAPTER 9 디버깅 1699.1 로깅 1709.2 openMSX 디버거 173__9.2.1 디버거 사용법 175 / 9.2.2 심벌 파일 176 / 9.2.3 심벌 변환 및 추가 179__9.2.4 브레이크포인트 테스트 181 / 9.2.5 변수 조회 184 / 9.2.6 변수 조회 실습 187마치며 190CHAPTER 10 크로스 플랫폼 프로그래밍과 포팅 19110.1 크로스 플랫폼 프로그래밍 19210.2 Win32 프로젝트 193__10.2.1 기본 아이디어 194 / 10.2.2 ubox API 수정 195__10.2.3 GREEN 프로젝트 196 / 10.2.4 ubox API 구현 197 / 10.2.5 정리 20410.3 안드로이드 프로젝트 205__10.3.1 기본 프로젝트 생성 206 / 10.3.2 안드로이드 SDL 212__10.3.3 가상 패드 217 / 10.3.4 포팅 218 / 10.3.5 정리 21910.4 YUZA OS 22010.5 에뮬레이터 222마치며 226PART 4 진짜 MSX의 세계CHAPTER 11 MSX-C 22911.1 개발 환경 구축 23011.2 컴파일 이해하기 23411.3 편집기 23511.4 컴파일 속도 높이기 235__11.4.1 MSX-C 툴 성능 개선 236 / 11.4.2 하드웨어 교체 236__11.4.3 플로피에서 하드 디스크로 전환 23611.5 샘플 프로젝트 237__11.5.1 슈터 237 / 11.5.2 틱택토 238 / 11.5.3 Tiny Shell 240마치며 241CHAPTER 12 MSX 개발을 위한 레퍼런스 24312.1 SDCC 245__12.1.1 환경 구축 245 / 12.1.2 스타트업 코드 246__12.1.3 Skeleton C project for MSX 246 / 12.1.4 libMSX 247__12.1.5 MSX SDCC Boilerplate 248 / 12.1.6 I.N.E.R.T.I.A. 249__12.1.7 MSX Fighter 250 / 12.1.8 azombie 25112.2 HI-TECH C 컴파일러 251__12.2.1 HelloWorld 252 / 12.2.2 C experiments for msx 253 / 12.2.3 CR3 25412.3 Fusion-C 255__12.3.1 환경 설정 256 / 12.3.2 bncball 257__12.3.3 Brick Breaker Santa Demo 258 / 12.3.4 Captain kik 260__12.3.5 Atlanta 260 / 12.3.6 Star Rangers 262 / 12.3.7 레퍼런스 26312.4 비주얼 스튜디오 263__12.4.1 메이크파일 프로젝트 264 / 12.4.2 MSX-Templates-for-VisualStudio 266__12.4.3 Arya 267 / 12.4.4 테트리스 26712.5 Z88DK 268__12.5.1 환경 구축 269 / 12.5.2 plot 269 / 12.5.3 틱택토 270__12.5.4 balloons 270 / 12.5.5 Death Star 271__12.6 RetroDeluxe 게임 엔진 27212.7 MSX2DAAD 274마치며 276CHAPTER 13 기타 언어 MSX 프로그래밍 27813.1 MSX 베이직 278__13.1.1 가상 플로피 디스크 준비 278 / 13.1.2 스피드 게임 280__13.1.3 베이직 명령어 281 / 13.1.4 PAPPLE 281__13.1.5 MSXPen 282 / 13.1.6 레퍼런스 28413.2 Z80 어셈블리 285__13.2.1 HelloWorld 286 / 13.2.2 트랜스볼 289 / 13.2.3 MSXPen 290__13.2.4 8bitworkshop IDE 293 / 13.2.5 펭귄 플랫포머 게임 294__13.2.6 퐁 295 / 13.2.7 메탈기어 29613.3 자바 297MSX 편 마무리 302PART 5 MS-DOS용 게임 만들기CHAPTER 14 MS-DOS 살펴보기 30714.1 XT 31014.2 286 31014.3 메모리 관리 314__14.3.1 EMS 318 / 14.3.2 XMS 31914.4 386 321__14.4.1 EMM386 322 / 14.4.2 도스 익스텐더 32314.5 486 326마치며 326CHAPTER 15 개발 도구 살펴보기 32815.1 도스박스 32915.2 컴파일러 33315.3 환경 구축 333CHAPTER 16 도스 게임 프로젝트 33516.1 메모리 모델 33516.2 도스박스 빌드 시스템 338__16.2.1 테트리스 338 / 16.2.2 슈터 프로젝트와 MegaBreak 340__16.2.3 Little Game Engine 342 / 16.2.4 Commander Keen in Keen Dreams 34316.3 콘솔 도스 빌드 시스템 345__16.3.1 Jump 'n Bump 345 / 16.3.2 Eradicate 346마치며 347CHAPTER 17 VGALIB 34917.1 Win32 빌드 35017.2 도스박스 + 볼랜드 C++ IDE 35017.3 도스박스 + 비주얼 스튜디오 코드 35117.4 듀얼 모니터를 활용한 디버깅 352마치며 354CHAPTER 18 알레그로4 35518.1 개발 시스템 구축: Win32/DOS 컴플리트 시스템 35618.2 HelloWorld 358__18.2.1 Win32 빌드 359 / 18.2.2 DOS 빌드 360__18.2.3 Makefile 362 / 18.2.4 정리 36318.3 알레그로4 프로그래밍 기초 363__18.3.1 기본 프레임워크 363 / 18.3.2 디버깅 36518.4 알레그로4 API 활용 366__18.4.1 비트맵 로딩 367 / 18.4.2 더블 버퍼링 368 / 18.4.3 타이머 370__18.4.4 바운딩 박스를 통한 충돌 감지 371 / 18.4.5 스네이크 바이트 373__18.4.6 데이터 파일 사용하기 374 / 18.4.7 정리 37718.5 게임 프로젝트: 기초편 377__18.5.1 브레이크아웃 377 / 18.5.2 테트리스 381__18.5.3 테트리스 2 382 / 18.5.4 스네이크 바이트 38318.6 게임 프로젝트: 고급편 386__18.6.1 슈터 386 / 18.6.2 RA2 387 / 18.6.3 테트리스 388__18.6.4 스케이터 388 / 18.6.5 마리오 카트 389 / 18.6.6 동키 390__18.6.7 어드벤처 데모 프로젝트 390 / 18.6.8 호환성 확인 39118.7 매피 에디터 392__18.7.1 맵 데이터 작성 393 / 18.7.2 맵 데이터 로드 395__18.7.3 맵 데이터와 상호작용 397 / 18.7.4 최종 테스트 401 / 18.7.5 정리 40218.8 서드파티 403__18.8.1 zlib 404 / 18.8.2 ppcol 404 / 18.8.3 dumb 406__18.8.4 jptui 407 / 18.8.5 pmask 407 / 18.8.6 libxml2 40918.9 폭스레인저 리메이크 409__18.9.1 서드파티 412 / 18.9.2 한글 출력 414 / 18.9.3 게임 로직 417__18.9.4 게임 리소스 421 / 18.9.5 정리 423마치며 424CHAPTER 19 디버깅 실전 42619.1 32비트 프로그램 42719.2 Plumber No More 429__19.2.1 리모트 디버깅 430 / 19.2.2 디버깅 실전 431마치며 435CHAPTER 20 SDL + HX 도스 익스텐더 43720.1 제약 조건 438__20.1.1 파일 이름 길이 439 / 20.1.2 컴파일러 선택 439__20.1.3 그래픽 카드 440 / 20.1.4 SDL 버전 문제 44020.2 환경 구축 44120.3 샘플 프로그램 442__20.3.1 Hello 프로젝트 443 / 20.3.2 팩맨#1 444 / 20.3.3 팩맨#2 44520.4 GREEN 프로젝트 446마치며 448MS-DOS 편 마무리 450PART 6 그 밖의 레트로 플랫폼 게임 프로그래밍CHAPTER 21 코모도어 64 45521.1 환경 구축 45521.2 Ball 45821.3 C64maze 459CHAPTER 22 패밀리 컴퓨터 46122.1 환경 구축 46122.2 HelloWorld 46222.3 2D 플랫포머 게임 463CHAPTER 23 아미가 46523.1 에뮬레이터 46723.2 빌드 환경 구축 47223.3 비주얼 스튜디오 코드 아미가 익스텐션 474CHAPTER 24 PC 엔진 47724.1 환경 설정 47724.2 HelloWorld 47824.3 bonks 479CHAPTER 25 메가 드라이브 48025.1 환경 설정 48025.2 IDE 설치 48125.3 HelloWorld 48425.4 샘플 2D 플랫포머 485CHAPTER 26 게임보이 48626.1 환경 구축 48626.2 HelloWorld 48726.3 고급 예제 48826.4 동적 디버깅 489CHAPTER 27 슈퍼패미컴 49227.1 환경 설정 49327.2 HelloWorld 49327.3 BreakOut 495CHAPTER 28 3DO 49628.1 환경 구축 49728.2 샘플 프로젝트 빌드 49828.3 Space Invaders Invaders 499CHAPTER 29 세가 새턴 50029.1 조 엔진 50129.2 Saturn Orbit 504CHAPTER 30 게임보이 어드밴스 50630.1 환경 구축 50730.2 문자 출력 50730.3 Tank Gameboy Advance 50830.4 Skiing Advance 50930.5 BATTLE-CITY-GBA 51030.6 Programmer’s Notepad 511APPENDIX 부록APPENDIX A 비주얼 스튜디오 2019 519A.1 vcpkg 520A.2 단축키 521APPENDIX B SDL 524B.1 플립 프로젝트 525B.2 레퍼런스 527에필로그 513APPENDIX C 우분투 이미지 만들기 529C.1 SDCC 4.0 설치 530C.2 파이썬 3.9 설치 530C.3 hex2bin 531C.4 아코스 트래커 2 531찾아보기 533
|
|
실기에서 돌아가는 진정한 레트로 게임 개발, 어른이 된 지금이라면 만들 수 있다 추억 속의 MSX 게임을 오늘날의 개발 툴로 제작하는 방법을 파헤친다. C 언어와 비주얼 스튜디오 등 현세대 도구로 32 KB에 불과한 롬팩에 들어갈 게임을 코딩하고 빌드해본다. 이 코드베이스를 윈도우, 안드로이드, MS-DOS 등으로 포팅하며 크로스 플랫폼 프로그래밍과 동적 디버깅 기법을 익힌다. MSX 다음으로는 MS-DOS 게임 제작에 필요한 지식과 ‘듀얼 시스템’ 개발법을 자세히 살펴본다. 마지막으로 C64, NES, 아미가, PCE, MD, GB, SFC, 3DO, 세가 새턴, GBA 등 레트로 플랫폼에서의 개발 및 빌드 방법을 개괄한다. 현존하는 모든 레트로 게임 개발 지식을 가장 포괄적으로 집대성한 책이라고 자부한다. 1부는 MSX 플랫폼을 개괄하고, 빌드 시스템 및 WSL 환경을 구축한다. 2부의 핵심은 C 언어로 작성된 ubox MSX 라이브러리를 활용한 게임 제작이다. 비주얼 스튜디오 코드로 간단한 샘플 코드를 작성하는 것에서 시작해, 〈왕가의 계곡〉과 유사한 완성도 높은 게임 소스 코드를 분석하며, 맵, 스프라이트, 사운드 등 리소스 사용법과 간단한 제작법까지 살펴본다. 여기까지의 코드를 대상으로, 3부에서 처음으로 디버깅과 크로스 플랫폼 프로그래밍을 설명한다. 4부는 실제 MSX 내에서 MSX-C, MSX 베이직, 어셈블리 등으로 개발하는 방법을 살펴보고, SDCC, HI-TECH C 컴파일러, Fusion-C 등 관련 도구, 그리고 샘플 프로젝트들을 분석한다. 5부는 MSX 개발에서 배운 지식을 바탕으로 MS-DOS에서 작동하는 게임을 만드는 방법을 알아본다. MS-DOS 개발의 가장 큰 걸림돌인 메모리 관리 모델을 자세히 설명하고, 개발 및 디버깅의 편의를 위해 두 운영체제를 활용하는 ‘듀얼 시스템’ 방법론을 도입한다. 도스박스, DJGPP, VGALIB, 알레그로4 등으로 샘플 소스들을 빌드해보며 모던 개발 환경에서 MS-DOS 게임을 제작하는 방법을 익힌다. 디버깅 또한 한 챕터를 할애해 좀 더 자세히 다루고, SDL과 HX 도스 익스텐더를 사용한 더욱 확장된 크로스 플랫폼 프로그래밍의 가능성에 대해서도 살펴본다. 6부는 앞에서 익힌 지식을 바탕으로, 코모도어 64, (슈퍼)패미컴, 아미가, PC 엔진, 메가 드라이브, 게임보이 (어드밴스), 3DO, 세가 새턴 등 10가지 레트로 플랫폼에서 게임을 개발하고 빌드하는 방법을 간단히 살펴본다.
|