본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

게임 엔진 블랙 북: 울펜슈타인 3D 상세페이지

게임 엔진 블랙 북: 울펜슈타인 3D작품 소개

<게임 엔진 블랙 북: 울펜슈타인 3D> 최초의 FPS 게임 <울펜슈타인 3D> 엔진 개발의 모든 것

386 시절 PC 하드웨어는 파편화에 시달렸고 여러 한계가 존재했지만, 이드 소프트웨어는 이를 극복하고 <울펜슈타인 3D>로 FPS의 문을 활짝 열어젖혔다. 이 책은 <울펜슈타인 3D>가 만들어진 모든 과정을 밝히며 게임 엔진 소스를 낱낱이 파헤친다. 당시의 하드웨어와 개발 환경부터, 엔진 개발 중 직면한 다양한 문제와 해결 방안까지 체계적으로 정리했다. 전설이 된 개발자들이 온갖 제약 아래에서도 게임성을 높이기 위해 설계와 구현을 어떻게 했는지 생생히 확인할 수 있다.

386의 한계를 극복하고 전설이 된 최초의 FPS <울펜슈타인 3D>
이드 소프트웨어 천재 개발자들의 엔진 개발 비법을 파헤치다

오래된 게임 개발자들 사이에선 CPU가 달린 기기를 보기만 하면 <울펜슈타인 3D>를 포팅할 수 있을지부터 떠올린다는 이야기가 있다. 당시로서 혁신적인 3D 게임플레이와 부드러운 애니메이션을 선보이며 FPS의 기념비적인 효시로 평가받는 이 게임의 탄생 뒤에는, 열악한 386 PC 하드웨어의 제약을 극복하기 위해 소프트웨어를 한계까지 밀어붙인 이드 소프트웨어의 천재 개발자들이 있었다.

이 책은 <울펜슈타인 3D>가 누구에 의해 어떻게 만들어졌는지 모든 과정을 낱낱이 공개하며, 수많은 그림과 함께 게임 엔진 소스를 파헤치고 분석한다. 당시 하드웨어와 개발 환경부터, 엔진 개발 중 직면한 다양한 문제와 해결 방안까지 체계적으로 정리했다. 더블 버퍼링 없는 VGA, 정수 연산만 가능한 CPU, 파편화된 사운드 카드 등 당시 386 PC 하드웨어에서 초당 70프레임을 뽑는 게임을 만들기란 지극히 어려웠다. 이드 소프트웨어 개발자들이 이러한 한계를 어떻게 극복하여 장점으로 승화했는지, 엔진 설계 결정과 개발 과정, 그리고 ‘트릭’에 가까운 프로그래밍 기법까지, 이 책은 모든 디테일을 정교하게 추적하고 기록했다.

주어진 제약 내에서 최대한의 성능을 이끌어내는 것은 모든 개발자의 과제다. 하드웨어가 아무리 발달해도 이 목마름은 멈추지 않는다. 심지어 사무기기에 불과했던 386에서 부드럽게 돌아가는 3D FPS를 꿈꿨던 사람들이 있다. 대화 상자 하나 띄우는 데에도 프레임워크의 온갖 보일러플레이트 코드에 매몰되는 오늘날, 우리는 게임 개발의 핵심이 무엇인지 잊고 있는 것은 아닐까? 불가능해 보이는 제약 속에서도 타협하지 않고 게임성을 높이기 위해 갖은 방법을 동원해 꿈을 현실로 만든 하드코어 개발자들의 개발 비법에서 통찰을 얻기 바란다.

추천사
초보 개발자가 읽기 좋은 훌륭한 책입니다. 현대 게임의 프로그래밍 방법은 가르쳐주지 않지만, 게임 엔진 전반에 대한 가치 있는 통찰력과 기초를 제공합니다. <울펜슈타인 3D>가 만들어졌을 때 PC는 사무용 비즈니스 기계일 뿐이었어요. 이드 소프트웨어는 <울펜슈타인 3D>를 만들기 위해 많은 기술을 개발하고 요령을 사용했고, 저자는 이 모든 비밀들을 조명합니다.
- Mr. J. MCCAFFERTY (아마존 독자)

그저 놀랍습니다! 어떻게 386 시대에 존재했던 수많은 장벽을 깨뜨리고 문제를 해결했는지 자세히 묘사한 책입니다. 이드 소프트웨어의 팀원들과 함께 게임을 개발하고 있는 듯한 기분이었죠. 이 책을 읽으면 1990년대의 FPS, 불가능에 가까웠던 게임 엔진에 대한 지식과 더 넓은 시야를 가질 수 있습니다.
- Chrism (아마존 독자)

<울펜슈타인 3D>는 물론이고 DOS의 모든 즐거움과 함께했던 어린 시절이 떠오릅니다. 그야말로 환상적이었던 추억의 게임을 뜯어보며 추억에 잠겼죠. 게임을 더 자세히 이해하고 깊이 느끼고 싶은 사람이라면 이 책을 읽으세요. <둠>에 대한 비법서도 코앞에 다가왔다고 기대하겠습니다.
- John (아마존 독자)


저자 프로필

파비앙 상글라르

  • 학력 컴퓨터 과학 석사
  • 경력 개발자
    구글 본사 소프트웨어 엔지니어

2020.10.23. 업데이트 작가 프로필 수정 요청

15년 차 베테랑 개발자. 프랑스에서 컴퓨터 과학 석사학위를 취득했다. 영어를 배우러 캐나다에 갔다가 로저스(Rogers)와 퀵플레이(QuickPlay)를 거쳐 2014년부터 구글 본사에서 소프트웨어 엔지니어로 일한다.


저자 소개

지은이_ 파비앙 상글라르 Fabien Sanglard
15년 차 베테랑 개발자. 프랑스에서 컴퓨터 과학 석사학위를 취득했다. 영어를 배우러 캐나다에 갔다가 로저스(Rogers)와 퀵플레이(QuickPlay)를 거쳐 2014년부터 구글 본사에서 소프트웨어 엔지니어로 일한다.

옮긴이_ 박재호 jrogue@gmail.com
포항공과대학교 컴퓨터공학과 학부와 대학원을 졸업했다. 임베디드 시스템 개발, 기업용 백업 소프트웨어 개발, 방송국 콘텐츠 수신 제한 시스템 개발과 운영 지원, 클라우드에서 동작하는 서비스 개발에 이르기까지 다양한 실무 경험을 토대로 고성능 고가용성 시스템을 설계한다. 코스닥 상장사 엑셈 CTO로 인공지능과 스마트팩토리 관련 개발을 총괄했으며, 전 아이콘(ICON) 치프 아키텍트로 퍼블릭 블록체인 개발과 운영에 대한 경험이 풍부하다. 집필과 번역한 책이 40여 권에 이른다. 최근에는 유튜브 채널(https://www.youtube.com/c/박재호dev)을 열고 개발자를 위한 다양한 지식을 전달하고 있다.

목차

머리말 (존 카맥)
머리말 (톰 홀)
머리말 (존 로메로)
이 책에 대하여

Chapter 0 프롤로그

Chapter 1 들어가며

Chapter 2 하드웨어
2.1 CPU: 중앙처리장치
__2.1.1 개요
__2.1.2 인텔 80386
__2.1.3 부동 소수점
2.2 램
__2.2.1 도스 제한
__2.2.2 악명 높은 리얼 모드: 1MiB 램 제한
__2.2.3 악명 높은 리얼 모드: 16비트 세그먼트 주소 지정
__2.2.4 확장 메모리
2.3 비디오
__2.3.1 비디오 어댑터 역사
__2.3.2 VGA 아키텍처
__2.3.3 VGA 2차원이라는 광기
__2.3.4 VGA 모드
__2.3.5 VGA 프로그래밍: 메모리 매핑
__2.3.6 VGA 프로그래밍: 모드 12h
__2.3.7 VGA 프로그래밍: 모드 13h
__2.3.8 더블 버퍼링의 중요성
2.4 오디오
__2.4.1 애드립
__2.4.2 사운드 블라스터
__2.4.3 사운드 블라스터 프로
__2.4.4 디즈니 사운드 소스
2.5 버스
2.6 입력
2.7 요약

Chapter 3 팀
3.1 조직
3.2 프로그래밍
3.3 그래픽 애셋
3.4 애셋 워크플로
3.5 지도
3.6 오디오
__3.6.1 사운드
__3.6.2 음악
3.7 배포

Chapter 4 소프트웨어
4.1 소스 코드 얻기
4.2 첫 만남
4.3 큰 그림
__4.3.1 펼쳐진 루프
4.4 아키텍처
__4.4.1 메모리 관리자(MM)
__4.4.2 페이지 관리자(PM)
__4.4.3 비디오 관리자(VL & VH)
__4.4.4 캐시 관리자(CA)
__4.4.5 사용자 관리자(US)
__4.4.6 사운드 관리자(SD)
__4.4.7 입력 관리자(IN)
4.5 시작
__4.5.1 사인온
__4.5.2 VGA 문제 해결
__4.5.3 엄청난 대학살
4.6 메뉴 단계: 2D 렌더러
4.7 액션 단계: 3D 렌더러
__4.7.1 프레임의 수명
__4.7.2 3D 프레임의 수명
__4.7.3 3D 설정
__4.7.4 화면 지우기
__4.7.5 CPU 문제 해결
__4.7.6 어안 효과 교정
__4.7.7 벽 그리기
__4.7.8 스프라이트 그리기
__4.7.9 무기 그리기
__4.7.10 인공지능
4.8 오디오와 심장박동
__4.8.1 IRQ와 ISR
__4.8.2 PIT와 PIC
__4.8.3 심장박동
__4.8.4 오디오 시스템
__4.8.5 음악
4.9 사운드 효과
__4.9.1 사운드 효과: 애드립
__4.9.2 디즈니 사운드 소스 시스템: PCM
__4.9.3 사운드 블라스터 시스템: PCM
__4.9.4 사운드 블라스터 프로 시스템: 스테레오 PCM
__4.9.5 PC 스피커: 사각파
__4.9.6 PC 스피커: PCM
__4.9.7 PC 스피커: PWM
4.10 사용자 입력
__4.10.1 키보드
__4.10.2 마우스
__4.10.3 조이스틱
4.11 속도 높이는 기법
__4.11.1 cos/sin 테이블 참조
__4.11.2 피즐페이드
__4.11.3 팔레트
4.12 의사 난수 생성기
4.13 성능

Chapter 5 속편
5.1 운명의 창

Chapter 6 이식
6.1 슈퍼 닌텐도
6.2 재규어
6.3 아이폰
__6.3.1 아이폰 개발 노트 (존 카맥)
6.4 울펜슈타인 3D-VR

Chapter 7 에필로그
7.1 그들은 지금 어디에 있을까?

부록 A <울펜슈타인 3D> 이전
부록 B XMS와 EMS
부록 C 640KB 장벽
부록 D CONFIG.SYS와 AUTOEXEC.BAT
부록 E 팬들의 이메일
부록 F 존 카맥의 출시 노트
부록 G 20주년 기념 해설


리뷰

구매자 별점

3.8

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

4명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전