본문 바로가기

도서 소개

언리얼 엔진으로 배우는 게임 디자인 패턴

 

언리얼 공인 강사가 안내하는 고성능 언리얼 C++ 디자인 패턴

빠르고 관리하기 쉬운 코드를 위한 다양한 디자인 패턴을 언리얼 엔진 5 프로젝트에 적용하는 방법을 배운다. 더블 버퍼, 플라이웨이트, 공간 분할 등 언리얼 엔진 5의 핵심을 이루는 패턴을 자세히 살펴본 다음, 인터페이스 및 이벤트 관찰자 패턴 등을 구현한 게임플레이 예제를 C++로 작성하고, 마지막으로 코드 구조화와 최적화를 위한 디자인 패턴들을 살펴본다. 이 과정을 마스터하면 C++와 블루프린트 조합으로 유지보수 및 확장 가능한 시스템을 능숙하게 설계할 수 있을 것이다.

 

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [쿠팡

 

출판사 제이펍
저작권사 Packt Publishing
원서명 Game Development Patterns with Unreal Engine 5 (9781803243252)
도서명 언리얼 엔진으로 배우는 게임 디자인 패턴
부제 C++와 블루프린트로 유지보수 및 확장 가능한 시스템 구축하기
지은이 스튜어트 버틀러, 톰 올리버
옮긴이 강세중, 오영욱
감수자 (없음)
시리즈 (없음)
출판일 2025. 11. 13
페이지 264쪽
판 형 46배판변형(188*245*15.7)
제 본 무선(soft cover)
정 가 27,000원
ISBN 979-11-94587-53-8 (93000)
키워드 디자인패턴, 게임개발, 더블버퍼, 컴포넌트, 틱, 인터페이스, UML, 싱글턴, 템플릿, 최적화, 유니티, 게임엔진
분 야 게임 개발 / C++

 


관련 사이트
아마존 도서 페이지
저작권사 도서 페이지

 

관련 시리즈

■ (없음)

 

관련 포스트

2025.10.27 - [출간 전 책 소식] - 언리얼 게임 개발의 한계, 디자인 패턴으로 돌파하기

 

관련 도서

2022.10.26 - [도서 소개] - 유니티로 배우는 게임 디자인 패턴(제2판)

2024.03.18 - [도서 소개] - 고도 엔진 4 게임 개발 프로젝트(제2판)

 

관련 파일 다운로드

■ (없음)

 

강의 보조 자료(교재로 채택하신 분들은 https://jpub.tistory.com/notice/1076을 통해 다음 자료를 요청하실 수 있습니다.)
■ 본문의 그림과 표

 

미리보기(앞부속, 본문 일부)

 

정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [쿠팡

 

도서 소개

전문가에게 배우는 실전적인 언리얼 5 C++ 디자인 패턴

디자인 패턴은 코드를 더 빠르고 관리하기 쉽게 작성할 수 있게 해준다. 이 책은 다양한 디자인 패턴을 설명하고 그것들을 언리얼 엔진 5 프로젝트에 적용하는 방법을 알려준다. 디자인 패턴은 물론, 엔진의 작동 방식도 더욱 깊이 이해하게 됨으로써 언리얼 개발 실무에서 느꼈던 한계를 돌파할 수 있게 해준다.

언리얼 C++ 코딩과 블루프린트의 기초 원리로 시작하여, 코드에 패턴을 적용할 때 알아야 할 개념 및 이점에 대한 탄탄한 이해를 쌓게 된다. 먼저 1부에서는 더블 버퍼, 플라이웨이트, 공간 분할, 컴포넌트, 업데이트 메서드, 비헤이비어 트리 등 언리얼 엔진 5의 핵심에 내장된 패턴들에 대해 살펴본다.

2부에서는 ‘틱’을 대체하는 방법, 그리고 인터페이스 및 이벤트 관찰자 패턴, 나아가 참조 연결을 분리하기 위한 UML을 설명하며 게임플레이 예제를 C++로 작성해본다. 3부는 싱글턴, 커맨드, 상태 패턴과 함께 행동 패턴, 코드 구조화를 위한 템플릿 패턴, 서브클래스 샌드박스, 타입 오브젝트를 구현하고, 끝으로 더티 플래그, 데이터 지역성, 오브젝트 풀링까지 출시 전 성능 최적화를 위한 디자인 패턴 활용에 초점을 맞춘다.

 

주요 내용

- 디자인 패턴의 본질과 유용성 파악하기

- 언리얼 엔진 5의 레이어 및 작동 방식 이해하기

- 언리얼 엔진 5 C++ 코드와 블루프린트 간의 관계 파악하기

- 언리얼 엔진 5 기존 기능에서 발견되는 디자인 패턴 알아보기

- 언리얼 엔진 5에 적용된 디자인 패턴의 목적 살펴보기

- 일반적인 문제 해결을 위해 기존 코드에 창의적으로 디자인 패턴 적용하기

 

지은이 소개

스튜어트 버틀러(Stuart Butler)

13년 이상 고등 교육기관에서 게임 개발을 가르친 언리얼 전문가. 테크니컬 디자인, 아트, 애니메이션 등 다양한 분야에서 프로젝트를 출시했다. 스태퍼드셔 대학교에서 게임 기술 전공의 디렉터를 맡고 있으며, 영국에서 가장 큰 게임 교육 학부의 프로그래밍 팀을 책임지고 있다. 언리얼 공인 강사로도 활동하고 있으며, 교육 콘텐츠 크리에이터로서 에픽게임즈와 함께 언리얼 엔진 5 학습 자료를 제작하고 있다.

 

톰 올리버(Tom Oliver)

10년 이상 상업 및 교육 프로젝트에서 게임 엔진을 활용해온 게임 프로그래머. 게임은 물론 혼합 현실 훈련 시뮬레이션 등 게임업계 안팎에서 언리얼 엔진을 활용해 다양한 프로젝트를 수행했다. 현재 스태퍼드셔 대학교의 수석 강사이자 과정 책임자로 재직 중이며, 영국에서 가장 큰 게임 교육 학부에서 각종 상을 수상한 교육과정들을 유지하는 일을 담당하고 있다. 수학적 현상에 기반한 게임플레이 시스템에 대한 연구를 전문으로 하고 있다.

 

옮긴이 소개

강세중

서울대학교 수학교육과를 졸업하였으며, IT 회사에서 다년간 근무했다. 현재 번역에이전시 엔터스코리아에서 출판기획 및 전문 번역가로 활동 중이다. 주요 역서로는 《마인크래프트 서바이벌 챌린지 모험편》, 《고도 엔진4 게임 개발 프로젝트》, 《아주 이상한 수학책》, 《엘리멘탈 아트북》, 《토비의 과일 농장》, 《던전 앤 드래곤 아트북》, 《게임 시스템 디자인 입문》, 《오무아무아》 등이 있다.

 

오영욱

2006년 <던전 앤 파이터>를 시작으로 게임 프로그래머로 활동하며 PC, 소셜, 3D 게임 등 다양한 장르의 게임을 개발했다. 국내 게임 관련 자료의 아카이빙 구축에 매진하여 《한국 게임의 역사》, 《81년생 마리오》, 《우리가 사랑한 한국 PC 게임》 등에 참여했다. 번역서로는 《게임 콘솔 2.0》, 《소셜게임 기획의 법칙》 등이 있다. 현재는 박사 학위 과정을 마치고 돈크라이에서 언리얼 엔진을 사용한 신규 프로젝트에 참여 중이다.

 

차례

지은이 소개 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

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  블로그  유튜브  인스타그램  트위터  페이스북