logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

레트로 게임 개발 바이블

레트로 게임 개발 바이블

(MSX, MS-DOS 등 거의 모든 레트로 시스템에서 작동하는 게임을 C 언어로 개발하는 법)

박주항 (지은이)
제이펍
44,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
39,600원 -10% 0원
2,200원
37,400원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 30,800원 -10% 1540원 26,180원 >

책 이미지

레트로 게임 개발 바이블
eBook 미리보기

책 정보

· 제목 : 레트로 게임 개발 바이블 (MSX, MS-DOS 등 거의 모든 레트로 시스템에서 작동하는 게임을 C 언어로 개발하는 법)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9791192469782
· 쪽수 : 560쪽
· 출판일 : 2023-01-05

책 소개

실기에서 돌아가는 진정한 레트로 게임 개발, 어른이 된 지금이라면 만들 수 있다. 추억 속의 MSX 게임을 오늘날의 개발 툴로 제작하는 방법을 파헤친다. C 언어와 비주얼 스튜디오 등 현세대 도구로 32 KB에 불과한 롬팩에 들어갈 게임을 코딩하고 빌드해본다.

목차

베타리더 후기 xiii
프롤로그 xv
이 책에 대하여 xvii

PART I 준비운동

CHAPTER 1 MSX 플랫폼과 친해지기 3
1.1 에뮬레이터 5
1.2 MSX1 게임 7
1.3 MSX1 스펙 9
1.4 메모리 레이아웃 11
마치며 13

CHAPTER 2 개발 환경 구축 14
2.1 IDE 17
2.2 WSL2 18
2.3 우분투 20.04 LTS 18
2.4 빌드 시스템 및 WSL 환경 구축 19
__2.4.1 콘솔을 이용하는 방법 20 / 2.4.2 GUI 프로그램을 이용하는 방법 21
__2.4.3 retro_msx 배포판의 내용 22
2.5 소스 코드 설치 23
2.6 소스 코드 빌드 24
마치며 25

PART 2 MSX1 게임 개발

CHAPTER 3 기초 다지기 29
3.1 ubox MSX 라이브러리 30
3.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 실습 42
3.3 콘솔 모드 HelloWorld 43
3.4 타이머 45
3.5 외부 라이브러리 활용하기 48
3.6 배경음악 50
3.7 효과음 52
마치며 54

CHAPTER 4 샘플 게임 프로젝트 56
4.1 스네이크 56
__4.1.1 게임 로직 57 / 4.1.2 정리 63
4.2 소코반 64
__4.2.1 게임 로직 65 / 4.2.2 정리 71
4.3 테트리스 71
__4.3.1 자료구조 72 / 4.3.2 게임 로직 73 / 4.3.3 정리 79
4.4 브레이크아웃 80
__4.4.1 스프라이트 81 / 4.4.2 현대적 렌더링 시스템 81
__4.4.3 MSX1의 스프라이트 시스템 84 / 4.4.4 게임 로직 88
마치며 92

CHAPTER 5 GREEN 프로젝트 94
5.1 프로젝트 구성 95
5.2 메인 함수 및 시스템 초기화 97
5.3 게임 로직 100
__5.3.1 초기화 100 / 5.3.2 게임 루프 106 / 5.3.3 상호작용 107
마치며 112

CHAPTER 6 리소스 유틸리티 115
6.1 맵 데이터 116
__6.1.1 Tiled 맵 에디터 116 / 6.2.1 map.py 121 / 6.1.3 정리 126
6.2 타일 데이터 126
6.3 스프라이트 데이터 127
6.4 사운드 130
__6.4.1 배경음악 131 / 6.4.2 효과음 133
마치며 134

CHAPTER 7 피라미드 퀘스트 136
7.1 게임 로직 137
7.2 맵 데이터 만들기 144
7.3 유틸리티 커스터마이징 147
마치며 150

CHAPTER 8 그래픽 작업 152
8.1 타일셋 152
__8.1.1 기본 아이디어 153 / 8.1.2 근접 색상 구하기 156 / 8.1.3 24비트 PNG로 변환 157
8.2 스프라이트 제작 157
8.3 실전 162
마치며 166

PART 3 심화 주제

CHAPTER 9 디버깅 169
9.1 로깅 170
9.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
마치며 190

CHAPTER 10 크로스 플랫폼 프로그래밍과 포팅 191
10.1 크로스 플랫폼 프로그래밍 192
10.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 정리 204
10.3 안드로이드 프로젝트 205
__10.3.1 기본 프로젝트 생성 206 / 10.3.2 안드로이드 SDL 212
__10.3.3 가상 패드 217 / 10.3.4 포팅 218 / 10.3.5 정리 219
10.4 YUZA OS 220
10.5 에뮬레이터 222
마치며 226

PART 4 진짜 MSX의 세계

CHAPTER 11 MSX-C 229
11.1 개발 환경 구축 230
11.2 컴파일 이해하기 234
11.3 편집기 235
11.4 컴파일 속도 높이기 235
__11.4.1 MSX-C 툴 성능 개선 236 / 11.4.2 하드웨어 교체 236
__11.4.3 플로피에서 하드 디스크로 전환 236
11.5 샘플 프로젝트 237
__11.5.1 슈터 237 / 11.5.2 틱택토 238 / 11.5.3 Tiny Shell 240
마치며 241

CHAPTER 12 MSX 개발을 위한 레퍼런스 243
12.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 251
12.2 HI-TECH C 컴파일러 251
__12.2.1 HelloWorld 252 / 12.2.2 C experiments for msx 253 / 12.2.3 CR3 254
12.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 레퍼런스 263
12.4 비주얼 스튜디오 263
__12.4.1 메이크파일 프로젝트 264 / 12.4.2 MSX-Templates-for-VisualStudio 266
__12.4.3 Arya 267 / 12.4.4 테트리스 267
12.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 게임 엔진 272
12.7 MSX2DAAD 274
마치며 276

CHAPTER 13 기타 언어 MSX 프로그래밍 278
13.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 레퍼런스 284
13.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 메탈기어 296
13.3 자바 297

MSX 편 마무리 302

PART 5 MS-DOS용 게임 만들기

CHAPTER 14 MS-DOS 살펴보기 307
14.1 XT 310
14.2 286 310
14.3 메모리 관리 314
__14.3.1 EMS 318 / 14.3.2 XMS 319
14.4 386 321
__14.4.1 EMM386 322 / 14.4.2 도스 익스텐더 323
14.5 486 326
마치며 326

CHAPTER 15 개발 도구 살펴보기 328
15.1 도스박스 329
15.2 컴파일러 333
15.3 환경 구축 333

CHAPTER 16 도스 게임 프로젝트 335
16.1 메모리 모델 335
16.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 343
16.3 콘솔 도스 빌드 시스템 345
__16.3.1 Jump 'n Bump 345 / 16.3.2 Eradicate 346
마치며 347

CHAPTER 17 VGALIB 349
17.1 Win32 빌드 350
17.2 도스박스 + 볼랜드 C++ IDE 350
17.3 도스박스 + 비주얼 스튜디오 코드 351
17.4 듀얼 모니터를 활용한 디버깅 352
마치며 354

CHAPTER 18 알레그로4 355
18.1 개발 시스템 구축: Win32/DOS 컴플리트 시스템 356
18.2 HelloWorld 358
__18.2.1 Win32 빌드 359 / 18.2.2 DOS 빌드 360
__18.2.3 Makefile 362 / 18.2.4 정리 363
18.3 알레그로4 프로그래밍 기초 363
__18.3.1 기본 프레임워크 363 / 18.3.2 디버깅 365
18.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 정리 377
18.5 게임 프로젝트: 기초편 377
__18.5.1 브레이크아웃 377 / 18.5.2 테트리스 381
__18.5.3 테트리스 2 382 / 18.5.4 스네이크 바이트 383
18.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 호환성 확인 391
18.7 매피 에디터 392
__18.7.1 맵 데이터 작성 393 / 18.7.2 맵 데이터 로드 395
__18.7.3 맵 데이터와 상호작용 397 / 18.7.4 최종 테스트 401 / 18.7.5 정리 402
18.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 409
18.9 폭스레인저 리메이크 409
__18.9.1 서드파티 412 / 18.9.2 한글 출력 414 / 18.9.3 게임 로직 417
__18.9.4 게임 리소스 421 / 18.9.5 정리 423
마치며 424

CHAPTER 19 디버깅 실전 426
19.1 32비트 프로그램 427
19.2 Plumber No More 429
__19.2.1 리모트 디버깅 430 / 19.2.2 디버깅 실전 431
마치며 435

CHAPTER 20 SDL + HX 도스 익스텐더 437
20.1 제약 조건 438
__20.1.1 파일 이름 길이 439 / 20.1.2 컴파일러 선택 439
__20.1.3 그래픽 카드 440 / 20.1.4 SDL 버전 문제 440
20.2 환경 구축 441
20.3 샘플 프로그램 442
__20.3.1 Hello 프로젝트 443 / 20.3.2 팩맨#1 444 / 20.3.3 팩맨#2 445
20.4 GREEN 프로젝트 446
마치며 448

MS-DOS 편 마무리 450

PART 6 그 밖의 레트로 플랫폼 게임 프로그래밍

CHAPTER 21 코모도어 64 455
21.1 환경 구축 455
21.2 Ball 458
21.3 C64maze 459

CHAPTER 22 패밀리 컴퓨터 461
22.1 환경 구축 461
22.2 HelloWorld 462
22.3 2D 플랫포머 게임 463

CHAPTER 23 아미가 465
23.1 에뮬레이터 467
23.2 빌드 환경 구축 472
23.3 비주얼 스튜디오 코드 아미가 익스텐션 474

CHAPTER 24 PC 엔진 477
24.1 환경 설정 477
24.2 HelloWorld 478
24.3 bonks 479

CHAPTER 25 메가 드라이브 480
25.1 환경 설정 480
25.2 IDE 설치 481
25.3 HelloWorld 484
25.4 샘플 2D 플랫포머 485

CHAPTER 26 게임보이 486
26.1 환경 구축 486
26.2 HelloWorld 487
26.3 고급 예제 488
26.4 동적 디버깅 489

CHAPTER 27 슈퍼패미컴 492
27.1 환경 설정 493
27.2 HelloWorld 493
27.3 BreakOut 495

CHAPTER 28 3DO 496
28.1 환경 구축 497
28.2 샘플 프로젝트 빌드 498
28.3 Space Invaders Invaders 499

CHAPTER 29 세가 새턴 500
29.1 조 엔진 501
29.2 Saturn Orbit 504

CHAPTER 30 게임보이 어드밴스 506
30.1 환경 구축 507
30.2 문자 출력 507
30.3 Tank Gameboy Advance 508
30.4 Skiing Advance 509
30.5 BATTLE-CITY-GBA 510
30.6 Programmer’s Notepad 511

APPENDIX 부록

APPENDIX A 비주얼 스튜디오 2019 519
A.1 vcpkg 520
A.2 단축키 521

APPENDIX B SDL 524
B.1 플립 프로젝트 525
B.2 레퍼런스 527

에필로그 513

APPENDIX C 우분투 이미지 만들기 529
C.1 SDCC 4.0 설치 530
C.2 파이썬 3.9 설치 530
C.3 hex2bin 531
C.4 아코스 트래커 2 531

찾아보기 533

저자소개

박주항 (지은이)    정보 더보기
서강대학교에서 컴퓨터공학과 물리학을 전공했으며, JCE(현 조이시티) 온라인 게임 서버 프로그래머, 라인의 백엔드 플랫폼 프로그래머, 그리고 모바일 게임 개발 회사 대표를 거쳐 현재 프리랜서로 활동 중이다. 안 되는 걸 되게 하는 것에 관심이 많으며, 고전 어드벤처 게임을 좋아해 번역되지 않은 다수의 명작 어드벤처 게임의 한국어화 패치를 제작했다. 주요 저서로는 한빛미디어에서 출간한 《CGSF를 활용한 게임 서버 제작》(2014), 《CGSF 파헤쳐 보기》(2014), 《C++ 개발자를 위한 WIN32 오픈소스 라이브러리 100》(2015), 《SDL과 C++를 이용한 크로스 플랫폼 프로그래밍》(2015), 에이콘에서 출간한 《C++로 나만의 운영체제 만들기》(2018), 《YUZA OS Vol.1 : 소프트웨어편》(2021) 등이 있다. 번역서로는 한빛미디어에서 출간한 《데이터베이스 첫걸음》(2016)과 에이콘에서 출간한 《Game Programming in C++》(2019), 《0부터 시작하는 OS 자작 입문》(2022)이 있다.
펼치기

책속에서



롬팩의 최대 크기는 32 KB 이하가 되어야 하며 램의 크기는 8 KB~64 KB, 비디오램은 16 KB라는 것을 기억해두자. 2021년 기준 최신 데스크톱의 메모리는 64 GB, NVIDIA 지포스 RTX 3090의 비디오램의 크기가 24 GB인 것을 생각하면 MSX1 머신의 사양은 너무 초라해 보인다. / 또 인텔 i9 코어 시리즈의 코어 하나의 클록 속도는 대략 4 GHz이며 Z80 프로세서의 클록은 3.58 MHz이므로 비교하기 민망할 정도의 성능이다. 멀티 코어를 고려했을 때, i9 시리즈는 코어가 10개, 논리 코어가 20개인 것을 감안하면 두 CPU 간 성능 격차는 더욱더 벌어진다.


ubox MSX 라이브러리는 MSX1 게임을 쉽게 제작하자는 취지 아래 제작된 C 라이브러리다. 사용자가 최대한 쉽게 사용할 수 있도록 인터페이스를 구축했다. 물론 MSX 베이직 언어와 Z80 언어로도 MSX 게임을 작성하는 것이 가능하지만 언어의 범용성이 낮고 시간 투자 대비 효율성이 떨어지므로 실용적인 언어로 게임을 작성하는 방법을 강구해야 한다. C 언어는 범용적으로 사용되는 언어일 뿐만 아니라 당분간은 사멸할 운명에 처한 언어가 아니므로 C 언어로 MSX 게임을 개발할 수 있다면 최적일 것이라 판단했다. ubox MSX 라이브러리는 Z80 CPU를 제어하는 코드를 Z80 어셈블리 언어로 구현한 다음, 그 코드를 래핑하여 C 언어에서 호출할 수 있도록 구현했다.


추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791192469874