이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 베스트셀러 청년패스
언리얼 엔진으로 배우는 게임 디자인 패턴
C++와 블루프린트로 유지보수 및 확장 가능한 시스템 구축하기 반양장
베스트
게임 50위 게임 top20 7주
가격
27,000
10 24,300
YES포인트?
1,350원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능
  •  문화비소득공제 가능

이 상품의 태그

상세 이미지

책소개

목차

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

저자 소개 4

스튜어트 버틀러

관심작가 알림신청
 

Stuart Butler

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

톰 올리버

관심작가 알림신청
 

Tom Oliver

10년 이상 상업 및 교육 프로젝트에서 게임 엔진을 활용해온 게임 프로그래머. 게임은 물론 혼합 현실 훈련 시뮬레이션 등 게임업계 안팎에서 언리얼 엔진을 활용해 다양한 프로젝트를 수행했다. 현재 스태퍼드셔 대학교의 수석 강사이자 과정 책임자로 재직 중이며, 영국에서 가장 큰 게임 교육 학부에서 각종 상을 수상한 교육과정들을 유지하는 일을 담당하고 있다. 수학적 현상에 기반한 게임플레이 시스템에 대한 연구를 전문으로 하고 있다.
서울대학교 수학교육과를 수석으로 입학했으며 게임회사에서 다년간 근무했다. 현재 번역에이전시 엔터스코리아에서 출판기획 및 전문 번역가로 활동 중입니다. 주요 역서로는 『고도 엔진4: 게임 개발 프로젝트: 최고의 오픈 소스 게임 엔진으로 크로스 플랫폼 2D 및 3D 게임 5가지 만들기』,『아주 이상한 수학책: 그림, 게임, 퍼즐로 즐기는 재미있는 두뇌 게임』,『엘리멘탈 아트북』,『토비의 과일 농장』,『토비의 작은 나무들』,『던전 앤 드래곤 아트북』,『게임 시스템 디자인 입문: 실무 게임 기획을 위한 게임의 규칙, 밸런싱, 스프레드시트 데이터 체계화』,『오무아무아 : 하버드가 밝혀낸
서울대학교 수학교육과를 수석으로 입학했으며 게임회사에서 다년간 근무했다. 현재 번역에이전시 엔터스코리아에서 출판기획 및 전문 번역가로 활동 중입니다. 주요 역서로는 『고도 엔진4: 게임 개발 프로젝트: 최고의 오픈 소스 게임 엔진으로 크로스 플랫폼 2D 및 3D 게임 5가지 만들기』,『아주 이상한 수학책: 그림, 게임, 퍼즐로 즐기는 재미있는 두뇌 게임』,『엘리멘탈 아트북』,『토비의 과일 농장』,『토비의 작은 나무들』,『던전 앤 드래곤 아트북』,『게임 시스템 디자인 입문: 실무 게임 기획을 위한 게임의 규칙, 밸런싱, 스프레드시트 데이터 체계화』,『오무아무아 : 하버드가 밝혀낸 외계의 첫 번째 신호』,『마인크래프트 최강 전략 백과: 건축 마스터』,『마인크래프트 최강 전략 백과: 아쿠아틱』,『마인크래프트 최강 전략 백과: 멀티플레이어 모드』,『마인크래프트 최강 전략 백과: 어디서도 알려 주지 않은 마인크래프트 정보와 비결 A-Z』 등이 있습니다.

강세중의 다른 상품

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

오영욱의 다른 상품

관련 분류

품목정보

발행일
2025년 11월 13일
판형
반양장 ?
쪽수, 무게, 크기
264쪽 | 188*245*16mm
ISBN13
9791194587538

책 속으로

월드에는 블루프린트 클래스만 인스턴스화하는 것을 표준 관행으로 삼는 편이 좋다. 이렇게 하면 클래스를 디버깅하고 레퍼런스와 연결하기 편해진다. 에디터에 실행 추적을 위한 모든 시각적 툴이 내장되어 있기 때문이다. 그리고 클래스 이름이 바뀌거나 디렉터리를 옮기는 경우, 텍스트 기반이 아닌 라이브 링크가 적용되어 크래시를 방지할 수 있다. / 이런 상속 전략이 잘 작동하게 하려면 추상적인 게임플레이 관점에서 시스템을 생각해보는 편이 좋다. 메카닉에 영향을 주는 클래스는 뭘까? 이런 클래스는 C++로 표현해야 효율이 좋고 계층구조도 설계할 수 있다. 거기서부터 각 브랜치의 끝에서 블루프린트 클래스를 상속한다.
--- p.12

화가가 복사기를 작동한다고 상상해보면 좋다. 이 화가는 자신이 그리는 모든 그림의 사본을 최소 두 장 이상씩 보내달라는 의뢰를 받았기 때문에, 영리하게도 복사기를 사용해 작품을 복사하기로 한다. 이젤에서 복사기로 작품을 옮기는 시간을 절약하기 위해 그냥 캔버스를 스캐너에 바로 올려놓는다. 그런 다음 최대한 빨리 그림을 그리면서 동시에 복사 버튼을 누른다. 그다음에는 화가가 스캐닝 헤드보다 앞서서 선을 빠르게 그려야 하는 경주가 벌어진다. 성공하면 작품과 사본이 동일하게 보이고 추가 시간이 들지 않는다. 하지만 대부분의 경우는 스캐닝 헤드가 화가보다 앞서면서 화가를 추월하는 지점까지만 그림이 그려지고 그 이후 부분은 빈 사본이 된다. 이를 프레임 찢김--- p.frame tearing)이라고 하는데, 더블 버퍼 패턴에서 해결하고자 하는 문제가 바로 이것이다.
--- p.52

체력값을 다루기는 쉽다. 현재 값을 추적하는 플로트 변수와 에디터에서 최댓값을 설정할 수 있는 또 하나의 변수를 정의하기만 하면 된다. 이를 염두에 두고 UPROPERTY 블록에서 프로퍼티 지정자를 설정하는 것이 가장 중요한 부분이다. 대미지도 매우 간단히 다룰 수 있다. 언리얼 엔진 5에는 모든 AActor에 전파되는 대미지 인터페이스 시스템이 있기 때문이다. 이 훅을 달기 위해서는 다음의 HealthComponent.h 코드 토막에 표시된 것처럼 OnTakeAnyDamage(대미지를 입었을 때) 이벤트
와 시그니처를 공유하는 함수만 있으면 된다.
--- p.76

이제 뷰포트에서 플레이를 눌러 시스템을 테스트해보면, 녹색 캐릭터를 선택해 빨간색 캐릭터 근처로 이동시킬 수 있을 것이다. 녹색 캐릭터가 멈추면 가장 가까운 목표를 찾아서 방향을 바꾸고 Shoot 인쇄 문자열을 생성해야 한다. 목표물이 더 이상 유효하지 않을 때까지 이 동작이 계속되는데, 이 시점에서는 목표 유닛에 아무런 대미지를 주지 않으므로 영원히 계속될 것이다. 또한 현재 AI가 BTT_ShootTarget 태스크에서 벗어나게 할 방법이 없으므로 일단 목표물을 찾은 후에는 캐릭터를 움직일 수 없다. / 적 유닛에 대미지를 입히려면 앞서 생성한 Health 컴포넌트를 활용해 BP_EliteUnit Attack Target 이벤트의 Print String 노드를 몇 가지 로직으로 대체해서 조준선을 확인한 다음 대미지 를 적용해야 한다.
--- p.98

다음으로 컴포넌트에 전달할 유용한 정보는 대미지가 가해질 때마다 발생하는 신호다. 전달할 데이터에는 여러 선택지가 있다. 예를 들어 개발할 것이 〈콜 오브 듀티〉 스타일의 게임이라면 어떤 형태의 UI로든 대미지가 어느 방향에서 전달되었는지 파악하여 이를 플레이어에게 제공해야 한다. 아래의 예시에서는 방금 발생한 변홧값과 새로운 체력값, 최대 체력값에 대한 정보를 전달한다. 이를 통해 UI 체력 바를 업데이트하고, 경우에 따라 대미지 수치를 월드에 생성할 수 있다.

--- p.245

출판사 리뷰

- 디자인 패턴의 본질과 유용성 파악하기
- 언리얼 엔진 5의 레이어 및 작동 방식 이해하기
- 언리얼 엔진 5 C++ 코드와 블루프린트 간의 관계 파악하기
- 언리얼 엔진 5 기존 기능에서 발견되는 디자인 패턴 알아보기
- 언리얼 엔진 5에 적용된 디자인 패턴의 목적 살펴보기
- 일반적인 문제 해결을 위해 기존 코드에 창의적으로 디자인 패턴 적용하기

추천평

이 책은 《게임 프로그래밍 패턴》보다 훨씬 더 실용적이고 특히 언리얼 엔진으로 작업하는 개발자에게 더 적합하다. 게임 프로그래밍 패턴의 개념과 실제 사용하는 소프트웨어가 결합되어 있어 더 흥미롭고 재미있게 읽힌다. ‘명령 패턴’을 배우는 것도 좋지만, 그것이 언리얼 엔진 코드베이스에서 어떻게 작동하는지를 배우는 것이 언리얼 개발자에게는 훨씬 더 도움이 된다. 나는 책을 처음부터 끝까지 읽으며 많은 메모를 했고, 실제로 작업 중인 게임에 몇 가지 교훈을 적용할 수 있었다. 아직 틱 함수로 모든 작업을 하고 있는 초중급 개발자라면 이 책을 꼭 읽어보길 바란다. - 로빈 리프스히츠(Robin Lifshitz) (1인 게임 개발자)
버틀러와 올리버는 언리얼 엔진 분야에서 탁월한 개발자이자 디자이너이며 세계적인 전문가이다. 이 책을 통해 프로그래밍의 핵심 원리를 배우고, 디자인 패턴의 가치와 활용에 대해 탄탄한 이해를 쌓게 될 것이다. 게임 개발 분야에서 대단히 강력한 도구 중 하나인 언리얼 엔진 5 게임 엔진을 다루면서 이러한 접근이 어떻게 작동하는지 체감하고 큰 도움을 얻게 될 것이다. 나아가 언리얼 블루프린트 비주얼 스크립팅 시스템과 C++ 사이를 유연하게 넘나드는 데 필수적인 기반 지식들을 익혀 복잡하고 확장성 높은 게임 프로젝트를 개발할 수 있게 될 것이다. - 크리스토퍼 J. 헤드린드(Christopher J. Headleand) (스태퍼드셔 대학교 게임 개발 학과장)

리뷰/한줄평0

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

첫번째 한줄평을 남겨주세요.

24,300
1 24,300