이 책의 대상 독자
언리얼 엔진 4를 사용해 게임 개발을 시작하려는 모든 이들을 위한 책이다. 이전에 언리얼 엔진을 사용해본 경험이 있고, 자신의 기술을 통합하고, 향상시켜 적용하려는 사람에게도 도움될 책이다. 내용을 더 잘 이해하려면 C++의 기초에 대한 사전 지식이 있어야 하며 변수, 함수, 클래스, 다형성, 포인터를 이해해야 한다. 책에 사용된 IDE와의 완전한 호환성을 위해 윈도우 시스템을 권장한다.
이 책의 구성
1장, ‘언리얼 엔진 소개’에서는 언리얼 엔진 에디터를 살펴본다.
2장, ‘언리얼 엔진을 활용한 작업’에서는 C++ 프로젝트를 생성하고 프로젝트의 콘텐츠Content 폴더를 설정하는 방법과 함께 언리얼 엔진 게임의 기본 사항을 소개하며, 애니메이션에 대해서도 소개한다.
3장, ‘Character 클래스 컴포넌트 및 블루프린트 설정’에서는 객체 상속에 대한 개념과 입력 매핑을 활용하는 방법과 함께 언리얼 Character 클래스를 소개한다.
4장, ‘플레이어 입력’에서는 플레이어 입력을 살펴본다.
5장, ‘라인 트레이스’에서는 Dodgeball이라는 새로운 프로젝트를 시작한다. 라인 트레이스의 개념에 대해 배우며 게임 제작에 사용할 수 있는 다양한 방법을 배운다.
6장, ‘물체 간 충돌’은 물체 충돌에 대해 살펴본다. 콜리전 컴포넌트, 콜리전 이벤트, 피직스 시뮬레이션에 대해 배운다.
7장, ‘UE4 유틸리티’는 액터 컴포넌트, 인터페이스, 블루프린트 함수 라이브러리를 포함해 언리얼에서 사용할 수 있는 몇 가지 유용한 유틸리티를 구현하는 방법에 대해 설명한다.
8장, ‘사용자 인터페이스’에서는 게임 UI를 설명한다.
9장, ‘오디오-비주얼 요소’는 언리얼 엔진의 사운드 및 파티클 이펙트에 대해 소개한다.
10장, ‘SuperSideScroller 게임 만들기’는 SusperSideScroller 게임 프로젝트의 게임 메카닉을 살펴본다.
11장, ‘블렌드 스페이스 1D, 키 바인딩, 스테이트 머신’에서는 부드러운 애니메이션 블렌딩을 개발하는 데 활용할 수 있는 도구인 블렌드 스페이스 1D와 애니메이션 스테이트 머신을 소개한다.
12장, ‘애니메이션 블렌딩과 몽타주’에서는 플레이어의 캐릭터 던지기 애니메이션을 개발하기 위해 애니메이션 블루프린트에 포함된 애니메이션 몽타주와 애니메이션 블렌딩 기능을 소개한다.
13장, ‘적 인공지능’은 AI를 살펴보고 비헤이비어 트리와 블랙보드를 사용해 AI를 개발하는 방법을 다룬다.
14장, ‘플레이어 발사체 생성하기’에서는 애님 노티파이와 게임 월드에 물체를 생성하는 방법을 소개한다.
15장, ‘수집용 아이템, 파워-업, 픽업’에서는 플레이어의 이동을 조절하는 커스텀 파워-업 포션을 생성하는 방법과 플레이어 캐릭터를 위한 수집용 동전을 만드는 방법을 보여준다.
16장, ‘멀티플레이어 기본’에서는 서버-클라이언트 아키텍처, 연결, 액터 소유권, 역할 Role, 변수 리플리케이션과 같은 중요한 멀티플레이어 개념을 소개한다.
17장, ‘리모트 프로시저 콜’에서는 리모트 프로시저 콜, 언리얼 엔진 4에서 열거형을 사용하는 방법, 양방향 원형 배열 인덱싱을 사용하는 방법에 대해 소개한다.
18장, ‘멀티플레이어에서의 게임플레이 프레임워크 클래스’는 멀티플레이어에서 게임플레이 프레임워크 클래스가 어디에 위치하는지, 게임 스테이트와 플레이어 스테이트 클래스의 사용 방법, 유용한 내장 기능을 구현하는 방법을 설명한다.
지은이의 말
게임 개발은 창의적 성취감을 충족해주는 취미인 동시에 정규 직업이 될 수 있다. 또한 C++ 기술을 향상시켜 매력 있고 도전적인 프로젝트에 적용할 수 있다. 이 책은 게임 개발자로서 시작하는 데 필요한 기본 기술에서부터 시작한다. 게임 설계의 기본을 명확하게 설명하고 사실적인 예제를 실제로 데모를 구현한다. 그런 다음, 도전적인 분야에 배운 내용을 적용할 수 있을 것이다. 이 책은 언리얼 에디터와 액터, 블루프린트, 애니메이션, 상속, 플레이어 입력등과 같은 주요 개념에 대한 소개로 시작한다. 그런 다음, 세 가지 프로젝트의 첫 번째인 dodgeball 게임으로 넘어간다. 이 프로젝트에서는 라인 트레이스, 충돌, 발사체, 사용자 인터페이스, 사운드 이펙트에 대해 살펴보고 이 개념들을 한데 결합해 새로운 기술을 보여주기 위한 기능들을 구현한다.
그런 다음, 두 번째 프로젝트인 횡스크롤 게임으로 넘어간다. 이 게임에서 애니메이션 블렌딩, 적 인공지능(AI), 물체 생성, 수집용 아이템을 포함한 개념을 구현한다. 마지막 프로젝트는 멀티플레이어 환경 조성을 위한 핵심 개념을 다루는 FPS 게임이다. 마지막 즈음엔 자신만의 창의적인 UE4 프로젝트를 시작할 수 있고 아이디어를 실현할 수 있는 자신감과 지식을 얻게 될 것이다.
옮긴이의 말
이 책은 언리얼 엔진을 활용해 게임을 개발하는 데 필요한 기본적인 내용에서부터 언리얼 엔진의 멀티 플레이어 기능까지 설명하고 있어 언리얼 엔진을 기초에서부터 고급 내용까지 한 권으로 배우려는 독자들에게 좋은 서적이 될 수 있다. 1장에서부터 9장까지는 언리얼 엔진을 활용한 게임 개발에 필요한 기초적인 내용들을 다룬다. 언리얼 엔진소개, C++ 프로젝트 구성 방법, 캐릭터(Character) 클래스 및 블루프린트 연동 방법, 플레이어의 입력 처리 방법, 라인 트레이스 활용 방법, 물체간 충돌 처리 방법, 액터 컴포넌트, 인터페이스 등 언리얼 엔진이 제공하는 유용한 유틸리티 활용하는 방법과 이를 개발하는 방법, 사용자 인터페이스(User Interface), 오디오 이펙트와 파티클 이펙트를 활용하는 방법을 다룬다.
1장에서 9장까지 배운 기본적인 내용을 활용할 수 있도록 10장에서는 횡스크롤 게임 프로젝트를 시작한다. 횡스크롤 게임 프로젝트는 15장까지 이어지며 스켈레탈 메시의 사용방법, 블렌드 스페이스, 애니메이션 몽타주 등 애니메이션 활용 방법, 비헤이비어 트리(Behavior Tree)와 블랙보드(Blackboard)를 활용한 인공지능 개발 방법, 발사체 제작 방법과 아이템 제작 방법을 추가로 배우면서 9장까지 배운 내용과 새로 배운 내용들을 프로젝트로 만들어가는 과정을 거친다.
16장에서는 멀티플레이어에 대한 기본적인 설명을 시작하면서 멀티플레이어 FPS 프로젝트를 시작한다. 서버-클라이언트 아키텍처, 연결, 액터 소유권, 역할, 리플리케이션 등 멀티플레이어에서 핵심이 되는 개념을 소개하고, 리모트 프로시저 콜(Remote Procedure Call)을 사용하는 방법과 멀티플레이어 환경에서 게임플레이 프레임워크 클래스를 다루는 방법에 대해 배우며 멀티플레이어 FPS 프로젝트를 마무리한다. 이 책은 언리얼 엔진을 활용하기 위한 필수적인 내용에서부터 멀티플레이어 기능에 대한 고급 내용까지 심도 있게 다룬다. 언리얼 엔진 개발자로서 배워야할 모든 내용을 담고 있기 때문에 언리얼 엔진을 시작하려는 개발자 지망생들은 물론, 언리얼 엔진의 각 기능을 참고하려는 기존 개발자들에게도 많은 도움이 될 것으로 생각한다.