
구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.
지은이 : 스튜어트 버틀러
13년 이상 고등 교육기관에서 게임 개발을 가르친 언리얼 전문가. 테크니컬 디자인, 아트, 애니메이션 등 다양한 분야에서 프로젝트를 출시했다. 스태퍼드셔 대학교에서 게임 기술 전공의 디렉터를 맡고 있으며, 영국에서 가장 큰 게임 교육 학부의 프로그래밍 팀을 책임지고 있다. 언리얼 공인 강사로도 활동하고 있으며, 교육 콘텐츠 크리에이터로서 에픽게임즈와 함께 언리얼 엔진 5 학습 자료를 제작하고 있다.
지은이 : 톰 올리버
10년 이상 상업 및 교육 프로젝트에서 게임 엔진을 활용해온 게임 프로그래머. 게임은 물론 혼합 현실 훈련 시뮬레이션 등 게임업계 안팎에서 언리얼 엔진을 활용해 다양한 프로젝트를 수행했다. 현재 스태퍼드셔 대학교의 수석 강사이자 과정 책임자로 재직 중이며, 영국에서 가장 큰 게임 교육 학부에서 각종 상을 수상한 교육과정들을 유지하는 일을 담당하고 있다. 수학적 현상에 기반한 게임플레이 시스템에 대한 연구를 전문으로 하고 있다.
지은이 소개 ix
옮긴이 소개 x
기술 감수자 소개 xi
옮긴이 머리말 xii
베타리더 후기 xv
추천 서문 xvi
감사의 글 xviii
이 책에 대하여 xix
PART I 언리얼 엔진 5에서 배우기
CHAPTER 1 언리얼 엔진 5와 레이어 이해하기 3
1.1 기술적 요구 사항 4
1.2 언리얼 엔진 5 소개 4
1.3 언리얼 엔진 5 설치 및 개발 환경 준비 6
1.4 ‘퍼지’ 레이어: C++와 블루프린트의 간극을 메우는 다리 9
__1.4.1 프로퍼티 지정자 10 / 1.4.2 함수 지정자 11 / 1.4.3 상속의 유용성 12
1.5 블루프린트에서 C++로 다시 변환하기 13
__1.5.1 작업 예제 16
1.6 요약 19
1.7 연습 문제 19
__1.7.1 정답 20
CHAPTER 2 “헬로, 패턴” 21
2.1 기술적 요구 사항 21
2.2 SOLID 원칙 23
__2.2.1 단일 책임 23 / 2.2.2 개방-폐쇄 24 / 2.2.3 리스코프 치환 26
__2.2.4 인터페이스 분리 27 / 2.2.5 의존관계 반전 30
2.3 흔한 문제에 대한 해결책 탐색 31
__2.3.1 움직이는 박스 문제 32 / 2.3.2 회전하는 박스 문제 40
__2.3.3 캐스케이딩 캐스트 체인 문제 43
2.4 트레이드오프 48
2.5 요약 49
CHAPTER 3 UE5 패턴 실습: 더블 버퍼, 플라이웨이트, 공간 분할 51
3.1 기술적 요구 사항 52
3.2 더블 버퍼 52
3.3 플라이웨이트 56
3.4 공간 분할 58
__3.4.1 월드 파티션 소개 61
__3.4.2 오브젝트가 언제 로드되는지 이해하기 64
__3.4.3 필요한 액터를 확실히 로드하는 방법 67
__3.4.4 기존 레벨에서 월드 파티션 활성화하기 69
3.5 요약 69
CHAPTER 4 UE5 내장 패턴: 컴포넌트, 업데이트 메서드, 비헤이비어 트리 71
4.1 기술적 요구 사항 72
4.2 컴포넌트 이해 및 생성 72
4.3 게임플레이 프로토타이핑에 업데이트 메서드 적용 79
4.4 비헤이비어 트리로 작업하기 81
__4.4.1 AI 컨트롤러 만들기 84
__4.4.2 블랙보드 에셋 만들기 85
__4.4.3 비헤이비어 트리 구축하기 86
4.5 요약 101
PART II 익명 모듈식 디자인
CHAPTER 5 틱 버리기 105
5.1 기술적 요구 사항 106
5.2 시작하기 전에 106
5.3 틱으로 돌아가는 월드 106
5.4 멈추는 시계 110
5.5 이벤트 기반 시스템 115
5.6 요약 119
CHAPTER 6 깔끔한 통신: 인터페이스 및 이벤트 관찰자 패턴 121
6.1 기술적 요구 사항 121
6.2 UE5의 클래스 간 인터페이스 통신 122
__6.2.1 블루프린트 인터페이스 122
__6.2.3 인터페이스 이벤트와 함수의 차이점 126
__6.2.4 C++에서의 인터페이스 129
__6.2.5 인터페이스 통신 예제 구현 130
6.3 UE5에서 이벤트 델리게이트 통신 구현하기 132
__6.3.1 블루프린트의 이벤트 델리게이트 132
__6.3.2 C++의 이벤트 델리게이트 136
__6.3.3 유용한 델리게이트 툴 만들기 138
6.4 요약 142
CHAPTER 7 완벽하게 분리된 시스템 143
7.1 기술적 요구 사항 144
7.2 UML을 사용하여 샘플 계층구조 계획하기 144
__7.2.1 클래스 관계의 형태 144
__7.2.2 시퀀스 다이어그램 146
7.3 참조 연결의 분리 147
__7.3.1 모듈화와 분리 147
__7.3.2 인프라 구축 151
__7.3.3 분리 설계를 예제에 적용하기 152
__7.3.4 분리하기의 장점 163
7.4 요약 164
PART III 언리얼 위에서 작업하기
CHAPTER 8 디자인 패턴 구축하기: 싱글턴, 커맨드, 상태 167
8.1 기술적 요구 사항 167
8.2 싱글턴 패턴 구현: 왜 이것이 판도라의 상자인지 이해하기 168
8.3 다양한 사용 사례를 위한 커맨드 패턴 구현하기 170
__8.3.1 에디터 유틸리티에서의 실행 취소 기능을 위한 커맨드 패턴 172
__8.3.2 C++에서의 게임플레이를 위한 커맨드 패턴 177
8.4 스테이트 머신의 다층 구조 만들기 180
__8.4.1 애니메이션 스테이트 머신 알아보기 181
__8.4.2 열거형/스위치 구현 183
__8.4.3 정적 스테이트와 인스턴스화된 스테이트 185
__8.4.4 동시 스테이트 머신 187
__8.4.5 계층적 스테이트 머신 189
__8.4.6 푸시다운 오토마타 190
8.5 요약 191
CHAPTER 9 행동 패턴을 이용한 코드 구조화: 템플릿, 서브클래스 샌드박스, 타입 오브젝트 193
9.1 기술적 요구 사항 194
9.2 템플릿 패턴 살펴보기 194
__9.2.1 템플릿 만들기(부모 클래스) 196
__9.2.2 자식 클래스 만들기 198
__9.2.3 템플릿 권총 200
__9.2.4 템플릿 산탄총 205
9.3 서브클래스 샌드박스 패턴 이해하기 207
__9.3.1 샌드박스 만들기(부모 클래스) 208
__9.3.2 자식 클래스 생성 211
__9.3.3 샌드박스 권총 211
__9.3.4 샌드박스 산탄총 213
9.4 타입 오브젝트 패턴 215
__9.4.1 배리언트 216 / 9.4.2 데이터 테이블 217 / 9.4.3 데이터 에셋 218
9.5 요약 222
CHAPTER 10 패턴을 통한 최적화 223
10.1 기술적 요구 사항 224
10.2 불필요한 처리를 줄이기 위해 더티 플래그 사용하기 224
__10.2.1 더티 플래그의 적용 225
10.3 데이터 지역성이 코드 효율에 미치는 영향 226
__10.3.1 핫/콜드 분할 227
__10.3.2 연속적인 배열 228
10.4 오브젝트 풀링: 시간을 절약하기 위한 리소스 관리 229
__10.4.1 오브젝트 풀링 구현하기 229
__10.4.2 오브젝트 풀 만들기 231
10.5 요약 241
찾아보기 244
도서 DB 제공 - 알라딘 인터넷서점 (www.aladin.co.kr)