게임 엔진 아키텍처 [게임 프로그래머가 꼭 알아야 할 게임 엔진 이론과 실무]
- 원서명Game Engine Architecture (ISBN 9781568814131)
- 지은이제이슨 그레고리
- 옮긴이박상희
- ISBN : 9788960774155
- 50,000원
- 2013년 03월 29일 펴냄
- 페이퍼백 | 944쪽 | 188*250mm
- 시리즈 : 게임 개발 프로그래밍
판매처
개정판책 소개
2014년 대한민국학술원 우수학술도서 자연과학분야 선정도서
오늘날 가장 복잡한 소프트웨어에 속하는 게임 엔진에 대한 전체적인 그림을 그릴 수 있는 책이다. 피상적인 지식이나 추상적인 이론보다 실제로 게임 개발에 참여하게 되면 맞닥뜨릴 현실적인 내용과 경험을 제공한다. 게임 프로그래머가 되고자 하는 학생이나 갓 입사한 새내기 프로그래머가 꼭 읽어야 할 게임 엔진에 관한 조감도이자 바이블이며, 게임 개발 경력이 있는 개발자도 게임 엔진에 대한 이해의 폭을 넓힐 수 있게 도와 준다.
[ 소개 ]
이 책은 게임 엔진 소프트웨어 개발에 관한 이론과 실무 활용을 동시에 다루면서 다양한 주제를 상세히 설명한다. 책에 나오는 개념과 기법은 일렉트로닉 아츠와 너티 독 등의 개임 개발 스튜디오의 현장에서 실제로 사용되는 것들이다. 사용 예제들은 대부분 구체적인 기술에 근거하지만, 그에 대한 논의는 특정 엔진이나 API에 국한되지 않는다. 또한 수많은 참고 자료와 인용을 통해 게임 개발의 특정 분야를 더 공부하고 싶은 독자들의 길잡이가 되도록 했다.
대학 수준의 게임 프로그래밍 교재로 쓰였지만, 아마추어 소프트웨어 엔지니어나 게임에 흥미가 있는 사람, 독학하는 게임 프로그래머, 현업 게임업계 종사자도 도움을 얻을 수 있다. 게임 개발을 시작한 지 얼마 안 되는 엔지니어는 이 책을 통해 게임 개발 기술들과 엔진 아키텍처에 대한 탄탄한 이해를 얻을 수 있고, 게임 개발의 특정 분야에서 잔뼈가 굵은 개발자들도 이 책을 읽음으로써 큰 그림을 이해할 수 있다.
[ 이 책에서 다루는 내용 ]
■ 게임에 사용되는 대규모 C++ 소프트웨어 아키텍처
■ 게임 프로그래밍에 쓰이는 수학
■ 게임 개발에 쓰이는 디버깅, 소스 컨트롤, 프로파일링 도구
■ 기반 시스템 및 렌더링, 충돌, 물리, 캐릭터 애니메이션, 게임 월드 객체 모델 등 여러 엔진 하부 시스템
■ 멀티플랫폼 게임 엔진
■ 멀티프로세서 환경에서의 게임 프로그래밍
■ 툴 파이프라인과 게임 자원 데이터베이스
[ 추천의 글 ]
비디오 게임은 원래 하드웨어로만 만들던 것이 시초지만, 마이크로프로세서 기술이 발전하면서 그 양상이 완전히 뒤바뀌었다. 오늘날 비디오 게임은 PC나 전용 게임 콘솔로 구동하며, 그 위에서 돌아가는 소프트웨어를 통해 엄청나게 다양한 경험을 제공한다. 초창기 원시적 형태의 게임이 나온 지 벌써 50년이나 흘렀지만 많은 사람은 아직 게임 산업이 미성숙 단계에 있다고 생각한다. 아직 만개한 산업은 아닐지라도 그 속을 들여다보면 게임 산업은 급속도로 발전 중이라는 것을 금방 알 수 있다. 오늘날의 비디오 게임은 다양한 계층의 사람들이 즐기는 수십억 달러 규모의 산업이 되었다.
비디오 게임은 그 형태도 다양하고 규모도 천차만별인데, 솔리테어(solitare)부터 MMO RPG까지 수많은 범주 혹은 ‘장르’가 있으며 마이크로칩이 달린 기계면 어디에서건 게임을 즐길 수 있다고 해도 과언이 아니다. 오늘날에는 PC부터 스마트폰, 전용 게임 콘솔(휴대용과 TV에 연결해 사용하는 기기 모두)까지 다양한 방식으로 게임을 즐길 수 있다. 가정용 전용 게임 콘솔은 최신 게임 기술을 대표하는 역할을 맡아 왔고, 이런 콘솔 기기들이 개발되는 반복된 주기를 콘솔의 ‘세대’라고 부르게 됐다. 가장 최근 콘솔 세대를 대표하는 기기로는 마이크로소프트의 엑스박스 360과 소니의 플레이스테이션 3를 들지만, 유구한 역사를 자랑하는 PC 또한 결코 간과해서는 안 되는 존재이며 선풍적인 인기를 끈 닌텐도 Wii도 새로운 경향이 등장했음을 나타내는 존재다.
그렇지 않아도 복잡한 상용 비디오 게임계에 최근 폭발적으로 증가한 다운로드 게임 및 캐주얼 게임이 더해져 더욱 다양해졌다. 하지만 대규모 게임들은 여전히 주요한 품목이다. 정교한 플랫폼들의 막강한 계산 능력을 활용할 수 있게 되면서 요즘에는 소프트웨어의 정교함도 크게 향상됐다. 이런 첨단 소프트웨어를 개발하는 데는 사람이 필요하고, 따라서 자연스럽게 개발 팀의 크기도 커지게 됐다(당연히 개발비도 증가했다). 산업이 완숙해 가면서 자연스레 제품을 더 잘 만들고 효율적으로 만들 방법을 찾게 되는데, 엄청나게 증가한 복잡도에 대처하기 위해 게임 개발 팀들은 재사용 소프트웨어나 미들웨어 등의 힘을 빌리는 쪽을 택했다.
헤아릴 수 없이 다양한 스타일의 게임이 여러 플랫폼들에서 존재하기 때문에 모든 상황에서 이상적으로 쓸 수 있는 개발 소프트웨어는 없다. 하지만 일부 패턴이 발전해 왔고, 잠재적인 해법들도 무수히 많다. 오늘날에는 원하는 프로젝트의 요구 사항에 맞춰 올바른 해법을 고르는 것이 중요하다. 좀 더 깊이 들어가면 개발 팀은 프로젝트의 서로 다른 모든 측면을 검토하고 어떻게 함께 어우러지는지 따져봐야 한다. 새 게임 디자인에 완벽하게 꼭 맞는 단 한 가지 소프트웨어 패키지를 찾기란 굉장히 어렵다.
지금이야 게임 산업의 베테랑이 됐지만 예전 우리들의 모습은 미지의 영토를 개척하는 탐험가 같았다. 우리 세대에는 컴퓨터 과학 학위를 갖고 있던 사람이 드물었는데(이 추천의 글을 쓰는 맷 화이팅은 항공 엔지니어링을 전공했고, 제이슨 그레고리는 시스템 디자인 공학을 전공했다), 요즘에는 비디오 게임 강좌를 개설하거나 학위를 마련하는 대학이 늘고 있다. 오늘날의 학생들과 개발자들은 게임 개발에 대해 견실한 정보를 얻을 곳이 필요하다. 순수 하이엔드 그래픽스에 관해서는 연구 결과부터 실용적인 지식까지 정보를 얻을 만한 곳이 많다. 하지만 이런 원천 정보들은 게임 개발에 직접 적용하기 힘들거나 실제 쓰일 만한 구현이 없는 경우가 허다하다. 그 외의 게임 개발에 대해서는 소위 입문자용 책들이 있기는 하지만, 이것들은 세부 사항에 대해서는 얼버무리기 일쑤고 마치 모든 것을 처음부터 자기들이 처음 만든 양 설쳐대지만 정작 별 쓸모없거나 아예 틀린 내용도 많다. 그 외에는 하이엔드 전문 분야에 관한 책들이 있는데, 물리, 충돌, AI 등 특정 세부 분야를 파고든다. 하지만 지나치게 지루한 경우가 많고 또 모든 독자들이 이해할 만큼 쉽지 않거나 전체적인 완성을 이루기에는 너무 지엽적인 경우도 많다. 상당수는 한정적인 기술에 너무 직접적으로 기대고 있어 하드웨어와 소프트웨어가 변함에 따라 금방 퇴물이 되곤 한다.
인터넷도 빼 놓을 수 없는 정보원으로, 지식 수집에 있어 훌륭한 보조 도구가 될 수 있다. 하지만 링크가 깨져 찾을 수 없는 경우도 많고 부정확한 데이터들이나 품질이 뒤죽박죽인(때로는 형편없는) 경우도 많아 찾고 싶은 게 뭔지 정확히 알고 있지 않으면 도움이 되기 힘들다.
이런 상황을 배경으로 제이슨 그레고리(Jason Gregory)가 등장한다. 제이슨은 너티 독(Naughty Dog, 전 세계에서 손꼽히는 게임 스튜디오 중 하나다)에서 근무 중인 베테랑 게임 개발자다. USC에서 게임 프로그래밍 강의를 할 때 비디오 게임 아키텍처의 근간을 다룬 교과서가 없어 어려움을 겪은 제이슨은 직접 총대를 메고 책을 쓸 결심을 했다. 제이슨 본인을 제외한 나머지 모두에게 정말 다행스런 일이라 하지 않을 수 없다.
마침내 여기에 제이슨의 노력이 담긴 책이 나왔는데, 실제 출시된 게임 프로젝트들에서 쓰였고 실무에 바로 적용할 수 있는 지식들을 한데 모아 전체적인 게임 개발의 큰 그림을 그릴 수 있게 했다. 풍부한 경험을 바탕으로 아이디어와 기법뿐 아니라 실제 코드 샘플과 구현 예시를 들어 어떻게 조각들이 합쳐져 진짜 게임을 만드는지 보여준다. 또한 참고 자료와 인용을 통해 특정 과정에 대해 더 심도 있는 공부를 원하는 독자들이 쉽게 정보를 얻을 수 있게 했다. 개념과 기법들은 실제로 게임을 만드는 데 사용되는 것들이며, 예제들은 해당 기법에 기반을 두기는 했지만 특정한 엔진이나 API를 넘어서 활용될 수 있는 것들이다.
우리가 처음 일을 시작했을 때 원했던 것이 바로 이런 책이었으며, 지금 시작하는 초보자뿐 아니라 큰 그림을 그리고 싶은 경험자들에게 똑같이 도움이 될 수 있으리라 생각한다.
- 제프 랜더(Jeff Lander), 매튜 화이팅(Matthew Whiting)
오늘날 가장 복잡한 소프트웨어에 속하는 게임 엔진에 대한 전체적인 그림을 그릴 수 있는 책이다. 피상적인 지식이나 추상적인 이론보다 실제로 게임 개발에 참여하게 되면 맞닥뜨릴 현실적인 내용과 경험을 제공한다. 게임 프로그래머가 되고자 하는 학생이나 갓 입사한 새내기 프로그래머가 꼭 읽어야 할 게임 엔진에 관한 조감도이자 바이블이며, 게임 개발 경력이 있는 개발자도 게임 엔진에 대한 이해의 폭을 넓힐 수 있게 도와 준다.
[ 소개 ]
이 책은 게임 엔진 소프트웨어 개발에 관한 이론과 실무 활용을 동시에 다루면서 다양한 주제를 상세히 설명한다. 책에 나오는 개념과 기법은 일렉트로닉 아츠와 너티 독 등의 개임 개발 스튜디오의 현장에서 실제로 사용되는 것들이다. 사용 예제들은 대부분 구체적인 기술에 근거하지만, 그에 대한 논의는 특정 엔진이나 API에 국한되지 않는다. 또한 수많은 참고 자료와 인용을 통해 게임 개발의 특정 분야를 더 공부하고 싶은 독자들의 길잡이가 되도록 했다.
대학 수준의 게임 프로그래밍 교재로 쓰였지만, 아마추어 소프트웨어 엔지니어나 게임에 흥미가 있는 사람, 독학하는 게임 프로그래머, 현업 게임업계 종사자도 도움을 얻을 수 있다. 게임 개발을 시작한 지 얼마 안 되는 엔지니어는 이 책을 통해 게임 개발 기술들과 엔진 아키텍처에 대한 탄탄한 이해를 얻을 수 있고, 게임 개발의 특정 분야에서 잔뼈가 굵은 개발자들도 이 책을 읽음으로써 큰 그림을 이해할 수 있다.
[ 이 책에서 다루는 내용 ]
■ 게임에 사용되는 대규모 C++ 소프트웨어 아키텍처
■ 게임 프로그래밍에 쓰이는 수학
■ 게임 개발에 쓰이는 디버깅, 소스 컨트롤, 프로파일링 도구
■ 기반 시스템 및 렌더링, 충돌, 물리, 캐릭터 애니메이션, 게임 월드 객체 모델 등 여러 엔진 하부 시스템
■ 멀티플랫폼 게임 엔진
■ 멀티프로세서 환경에서의 게임 프로그래밍
■ 툴 파이프라인과 게임 자원 데이터베이스
[ 추천의 글 ]
비디오 게임은 원래 하드웨어로만 만들던 것이 시초지만, 마이크로프로세서 기술이 발전하면서 그 양상이 완전히 뒤바뀌었다. 오늘날 비디오 게임은 PC나 전용 게임 콘솔로 구동하며, 그 위에서 돌아가는 소프트웨어를 통해 엄청나게 다양한 경험을 제공한다. 초창기 원시적 형태의 게임이 나온 지 벌써 50년이나 흘렀지만 많은 사람은 아직 게임 산업이 미성숙 단계에 있다고 생각한다. 아직 만개한 산업은 아닐지라도 그 속을 들여다보면 게임 산업은 급속도로 발전 중이라는 것을 금방 알 수 있다. 오늘날의 비디오 게임은 다양한 계층의 사람들이 즐기는 수십억 달러 규모의 산업이 되었다.
비디오 게임은 그 형태도 다양하고 규모도 천차만별인데, 솔리테어(solitare)부터 MMO RPG까지 수많은 범주 혹은 ‘장르’가 있으며 마이크로칩이 달린 기계면 어디에서건 게임을 즐길 수 있다고 해도 과언이 아니다. 오늘날에는 PC부터 스마트폰, 전용 게임 콘솔(휴대용과 TV에 연결해 사용하는 기기 모두)까지 다양한 방식으로 게임을 즐길 수 있다. 가정용 전용 게임 콘솔은 최신 게임 기술을 대표하는 역할을 맡아 왔고, 이런 콘솔 기기들이 개발되는 반복된 주기를 콘솔의 ‘세대’라고 부르게 됐다. 가장 최근 콘솔 세대를 대표하는 기기로는 마이크로소프트의 엑스박스 360과 소니의 플레이스테이션 3를 들지만, 유구한 역사를 자랑하는 PC 또한 결코 간과해서는 안 되는 존재이며 선풍적인 인기를 끈 닌텐도 Wii도 새로운 경향이 등장했음을 나타내는 존재다.
그렇지 않아도 복잡한 상용 비디오 게임계에 최근 폭발적으로 증가한 다운로드 게임 및 캐주얼 게임이 더해져 더욱 다양해졌다. 하지만 대규모 게임들은 여전히 주요한 품목이다. 정교한 플랫폼들의 막강한 계산 능력을 활용할 수 있게 되면서 요즘에는 소프트웨어의 정교함도 크게 향상됐다. 이런 첨단 소프트웨어를 개발하는 데는 사람이 필요하고, 따라서 자연스럽게 개발 팀의 크기도 커지게 됐다(당연히 개발비도 증가했다). 산업이 완숙해 가면서 자연스레 제품을 더 잘 만들고 효율적으로 만들 방법을 찾게 되는데, 엄청나게 증가한 복잡도에 대처하기 위해 게임 개발 팀들은 재사용 소프트웨어나 미들웨어 등의 힘을 빌리는 쪽을 택했다.
헤아릴 수 없이 다양한 스타일의 게임이 여러 플랫폼들에서 존재하기 때문에 모든 상황에서 이상적으로 쓸 수 있는 개발 소프트웨어는 없다. 하지만 일부 패턴이 발전해 왔고, 잠재적인 해법들도 무수히 많다. 오늘날에는 원하는 프로젝트의 요구 사항에 맞춰 올바른 해법을 고르는 것이 중요하다. 좀 더 깊이 들어가면 개발 팀은 프로젝트의 서로 다른 모든 측면을 검토하고 어떻게 함께 어우러지는지 따져봐야 한다. 새 게임 디자인에 완벽하게 꼭 맞는 단 한 가지 소프트웨어 패키지를 찾기란 굉장히 어렵다.
지금이야 게임 산업의 베테랑이 됐지만 예전 우리들의 모습은 미지의 영토를 개척하는 탐험가 같았다. 우리 세대에는 컴퓨터 과학 학위를 갖고 있던 사람이 드물었는데(이 추천의 글을 쓰는 맷 화이팅은 항공 엔지니어링을 전공했고, 제이슨 그레고리는 시스템 디자인 공학을 전공했다), 요즘에는 비디오 게임 강좌를 개설하거나 학위를 마련하는 대학이 늘고 있다. 오늘날의 학생들과 개발자들은 게임 개발에 대해 견실한 정보를 얻을 곳이 필요하다. 순수 하이엔드 그래픽스에 관해서는 연구 결과부터 실용적인 지식까지 정보를 얻을 만한 곳이 많다. 하지만 이런 원천 정보들은 게임 개발에 직접 적용하기 힘들거나 실제 쓰일 만한 구현이 없는 경우가 허다하다. 그 외의 게임 개발에 대해서는 소위 입문자용 책들이 있기는 하지만, 이것들은 세부 사항에 대해서는 얼버무리기 일쑤고 마치 모든 것을 처음부터 자기들이 처음 만든 양 설쳐대지만 정작 별 쓸모없거나 아예 틀린 내용도 많다. 그 외에는 하이엔드 전문 분야에 관한 책들이 있는데, 물리, 충돌, AI 등 특정 세부 분야를 파고든다. 하지만 지나치게 지루한 경우가 많고 또 모든 독자들이 이해할 만큼 쉽지 않거나 전체적인 완성을 이루기에는 너무 지엽적인 경우도 많다. 상당수는 한정적인 기술에 너무 직접적으로 기대고 있어 하드웨어와 소프트웨어가 변함에 따라 금방 퇴물이 되곤 한다.
인터넷도 빼 놓을 수 없는 정보원으로, 지식 수집에 있어 훌륭한 보조 도구가 될 수 있다. 하지만 링크가 깨져 찾을 수 없는 경우도 많고 부정확한 데이터들이나 품질이 뒤죽박죽인(때로는 형편없는) 경우도 많아 찾고 싶은 게 뭔지 정확히 알고 있지 않으면 도움이 되기 힘들다.
이런 상황을 배경으로 제이슨 그레고리(Jason Gregory)가 등장한다. 제이슨은 너티 독(Naughty Dog, 전 세계에서 손꼽히는 게임 스튜디오 중 하나다)에서 근무 중인 베테랑 게임 개발자다. USC에서 게임 프로그래밍 강의를 할 때 비디오 게임 아키텍처의 근간을 다룬 교과서가 없어 어려움을 겪은 제이슨은 직접 총대를 메고 책을 쓸 결심을 했다. 제이슨 본인을 제외한 나머지 모두에게 정말 다행스런 일이라 하지 않을 수 없다.
마침내 여기에 제이슨의 노력이 담긴 책이 나왔는데, 실제 출시된 게임 프로젝트들에서 쓰였고 실무에 바로 적용할 수 있는 지식들을 한데 모아 전체적인 게임 개발의 큰 그림을 그릴 수 있게 했다. 풍부한 경험을 바탕으로 아이디어와 기법뿐 아니라 실제 코드 샘플과 구현 예시를 들어 어떻게 조각들이 합쳐져 진짜 게임을 만드는지 보여준다. 또한 참고 자료와 인용을 통해 특정 과정에 대해 더 심도 있는 공부를 원하는 독자들이 쉽게 정보를 얻을 수 있게 했다. 개념과 기법들은 실제로 게임을 만드는 데 사용되는 것들이며, 예제들은 해당 기법에 기반을 두기는 했지만 특정한 엔진이나 API를 넘어서 활용될 수 있는 것들이다.
우리가 처음 일을 시작했을 때 원했던 것이 바로 이런 책이었으며, 지금 시작하는 초보자뿐 아니라 큰 그림을 그리고 싶은 경험자들에게 똑같이 도움이 될 수 있으리라 생각한다.
- 제프 랜더(Jeff Lander), 매튜 화이팅(Matthew Whiting)
목차
목차
- 1부 기초
- 1장 소개
- 1.1 게임 팀 구성
- 1.2 게임이란?
- 1.3 게임 엔진이란?
- 1.4 장르별 게임 엔진
- 1.5 현존하는 게임 엔진
- 1.6 런타임 게임 아키텍처
- 1.7 툴(도구)과 자원 파이프라인
- 2장 도구
- 2.1 버전 컨트롤
- 2.2 마이크로소프트 비주얼 스튜디오
- 2.3 프로파일링 툴
- 2.4 메모리 누수와 오염 감지
- 2.5 기타 툴
- 3장 게임을 위한 소프트웨어 엔지니어링 기초
- 3.1 C++ 개념과 올바른 사용법
- 3.2 C/C++에서 데이터와 코드, 메모리
- 3.3 에러 감지와 처리
- 4장 게임에 사용되는 3D 수학
- 4.1 3D 문제를 2D로 풀기
- 4.2 점과 벡터
- 4.3 행렬
- 4.4 사원수
- 4.5 각 회전 변환 표현 간 비교
- 4.6 기타 유용한 수학적 개념
- 4.7 하드웨어 가속 SIMD 연산
- 4.8 난수 생성
- 2부 로우레벨 엔진 시스템
- 5장 엔진 지원 시스템
- 5.1 하부 시스템 시작과 종료
- 5.2 메모리 관리
- 5.3 컨테이너
- 5.4 문자열
- 5.5 게임 설정
- 6장 리소스 시스템과 파일 시스템
- 6.1 파일 시스템
- 6.2 리소스 매니저
- 7장 게임 루프와 리얼타임 시스템
- 7.1 렌더링 루프
- 7.2 게임 루프
- 7.3 게임 루프 구조의 형태
- 7.4 가상 타임라인
- 7.5 시간 측정하는 방법과 처리하는 방법
- 7.6 멀티프로세서 게임 루프
- 7.7 네트워크 멀티플레이어 게임 루프
- 8장 휴먼 인터페이스 장치
- 8.1 휴먼 인터페이스 장치의 종류
- 8.2 HID와의 인터페이스
- 8.3 입력의 종류
- 8.4 출력의 종류
- 8.5 게임 엔진의 HID 시스템
- 8.6 휴먼 인터페이스 장치들의 실제
- 9장 디버깅과 개발 도구
- 9.1 로그 기록과 추적
- 9.2 디버그 정보 그리기 기능
- 9.3 인게임 메뉴
- 9.4 인게임 콘솔
- 9.5 디버그 카메라와 게임 일시 정지
- 9.6 치트
- 9.7 스크린샷과 무비 캡처
- 9.8 인게임 프로파일링
- 9.9 인게임 메모리 상태와 누수 감지
- 3부 그래픽과 모션
- 10장 렌더링 엔진
- 10.1 깊이 버퍼를 이용한 삼각형 래스터화의 기초
- 10.2 렌더링 파이프라인
- 10.3 고급 조명 기법과 전역 조명
- 10.4 시각 효과와 오버레이
- 10.5 더 읽을거리
- 11장 애니메이션 시스템
- 11.1 캐릭터 애니메이션의 종류
- 11.2 뼈대
- 11.3 포즈
- 11.4 클립
- 11.5 스키닝과 행렬 팔레트 생성
- 11.6 애니메이션 블렌딩
- 11.7 후처리
- 11.8 압축 기법
- 11.9 애니메이션 시스템 아키텍처
- 11.10 애니메이션 파이프라인
- 11.11 액션 상태 기계
- 11.12 애니메이션 컨트롤러
- 12장 충돌과 강체 역학
- 12.1 정말 게임에 물리가 필요해?
- 12.2 충돌/물리 미들웨어
- 12.3 충돌 검출 시스템
- 12.4 강체 역학
- 12.5 물리 엔진과 게임 통합
- 12.6 앞으로의 기술: 고급 물리 기능
- 4부 게임플레이
- 13장 게임플레이 시스템 기초
- 13.1 게임 월드의 구성
- 13.2 동적 구성 요소 구현: 게임 객체
- 13.3 데이터 주도 게임 엔진
- 13.4 게임 월드 에디터
- 14장 런타임 게임플레이 기반 시스템
- 14.1 게임플레이 기반 시스템의 컴포넌트
- 14.2 런타임 객체 모델 구조
- 14.3 월드 덩어리 데이터 형식
- 14.4 게임 월드의 로딩과 스트리밍
- 14.5 객체 참조와 월드 질의
- 14.6 실시간 게임 객체 업데이트
- 14.7 이벤트와 메시지 전달
- 14.8 스크립트
- 14.9 하이레벨 게임 흐름
- 5부 결론
- 15장 추가 사항
- 15.1 다루지 않았던 엔진 시스템
- 15.2 게임플레이 시스템
도서 오류 신고
정오표
[ p52 그림 1.11 캡션 ]
런타임 게인 엔진 → 런타임 게임 엔진
[ p53 2행 ]
선형 의존 → 순환 의존
[ p61 11행 ]
보일 가능성이 있는 집합 PSV → 보일 가능성이 있는 집합 PVS
[ p63 1.6.9절 1~2번째 문장 ]
실시간 시스템인 특성 때문에 ~ 분석 툴도 함께 사용해야 한다.
→ 실시간 시스템인 특성 때문에 게임은 최적화를 위해 프로파일링을 해야 하는 경우가 종종 있다. 또 대부분의 경우 메모리가 부족하기 때문에 메모리 분석 툴도 함께 사용해야 한다.
[ p139 8행 ]
요약해 말하자면 선언은 어떤 개념에 대한 "설명"이고, "선언"은 그 개념 자체라고 할 수 있다.
→ 요약해 말하자면 선언은 어떤 개념에 대한 "언급(reference)"이고, "정의"는 그 개념 자체라고 할 수 있다.
[ p163 7행 ]
SHE는 윈도우의 기능 → SEH는 윈도우의 기능
[ p181 2행 ]
벡터 두 개를 사용면 평면을 → 벡터 두 개를 사용하면 평면을
런타임 게인 엔진 → 런타임 게임 엔진
[ p53 2행 ]
선형 의존 → 순환 의존
[ p61 11행 ]
보일 가능성이 있는 집합 PSV → 보일 가능성이 있는 집합 PVS
[ p63 1.6.9절 1~2번째 문장 ]
실시간 시스템인 특성 때문에 ~ 분석 툴도 함께 사용해야 한다.
→ 실시간 시스템인 특성 때문에 게임은 최적화를 위해 프로파일링을 해야 하는 경우가 종종 있다. 또 대부분의 경우 메모리가 부족하기 때문에 메모리 분석 툴도 함께 사용해야 한다.
[ p139 8행 ]
요약해 말하자면 선언은 어떤 개념에 대한 "설명"이고, "선언"은 그 개념 자체라고 할 수 있다.
→ 요약해 말하자면 선언은 어떤 개념에 대한 "언급(reference)"이고, "정의"는 그 개념 자체라고 할 수 있다.
[ p163 7행 ]
SHE는 윈도우의 기능 → SEH는 윈도우의 기능
[ p181 2행 ]
벡터 두 개를 사용면 평면을 → 벡터 두 개를 사용하면 평면을