Top

언리얼 엔진 4 마스터 [실제 사용자들의 경험을 바탕으로 한 게임 개발]

  • 원서명Mastering Unreal Engine 4.X: Take your game development skills to the next level with one of the best engines on the market (ISBN 9781785883569)
  • 지은이무함마드 압둘 모님(Muhammad A.Moniem)
  • 옮긴이권혁이, 오은진
  • ISBN : 9791161753126
  • 35,000원
  • 2019년 06월 24일 펴냄
  • 페이퍼백 | 476쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으실 수 있습니다.
요약

C++ 코드와 함께 언리얼 엔진 4를 이용해 최신 게임을 만드는 방법에 대해서 배운다. 게임 캐릭터를 제어하고 레벨을 생성하며, AI 및 파티클, 고급 셰이더 기술, UI, 데이터 테이블 등 전반적인 개발 과정을 예제와 함께 실제 게임을 만들어 보면서 따라 해 볼 수 있다.

이 책에서 다루는 내용

■ C++ 코드로 플레이어를 제어하는 스크립트 작성
■ 고급 디자인 기술을 이용한 매력적인 레벨 생성
■ C++로 AI 프로그램 생성
■ 게임에 생명력을 불어넣을 캐스케이드(Cascade) 사용
■ 사용자 정의 셰이더 사용과 고급 셰이더 기술로 근사한 게임 만들기
■ 멋진 UI 구현
■ 데이터 테이블을 사용한 게임 플레이 제어

이 책의 대상 독자

이 책은 언리얼 엔진과 C++ 스크립팅의 기본 지식이 있는 게임 개발자를 대상으로 한다. 캐주얼 게임 개발자에서 제대로 된 지식을 갖춘 전문가로 도약하길 원하는 사람에게 매우 적합하다.

이 책의 구성

1장, ‘대형 프로젝트 준비하기’에서는 새로운 프로젝트를 생성하고 구축, 편집해 게임을 만들 수 있도록 준비 과정을 보여준다. 또한 고급 애셋 파이프라인에 대해 다뤄 자신만의 모델 데이터를 언리얼 엔진에 가져올 수 있게 한다.
2장, ‘전사 만들기’에서는 게임 영웅을 만드는 방법을 설명한다. C++를 사용해 키보드와 마우스에 연결되는 캐릭터 컨트롤러를 생성한다. 또한 C++로 캐릭터와 무기 변경, 공격, 이동 로직을 생성하는 방법을 배운다. 클래스는 블루프린트(Blueprint)로 변환될 수 있으며, C++ 코드로 캐릭터가 움직이도록 애니메이션과 물리를 추가하는 방법도 익히게 된다.
3장, ‘나만의 놀이 공간 설계하기’에서는 게임 세계를 만드는 방법을 보여준다. 편집기 도구와 브러시Brush를 사용해 레벨을 생성하고, 광원과 머티리얼(Material)을 적용해 게임 로직을 테스트하기 위한 첫 번째 단계를 준비한다.
4장, ‘생각하는 AI’에서는 플레이어에 의해 발생하는 소리나 거리, 시야에 따라 플레이어를 발견해 공격하는 AI 캐릭터를 생성하는 방법을 다룬다. 모든 스크립트 코드는 C++로 만들 것이다. 편집기와 멋진 옵션들로 캐릭터의 애니메이션을 다뤄본다.
5장, ‘수집물 추가하기’에서는 수집물 몇 가지를 추가해 게임을 풍부하게 만든다. 게임 이벤트 발생과 중복 처리, 새로운 클래스를 추가하는 방법과 수집품에 물리력을 추가하는 방법을 배운다.
6장, ‘파티클의 마법’에서는 게임이 근사해 보이도록 파티클(Particle)을 추가하는 방법을 다룬다. 캐스케이드(Cascade)를 이용해 적군, 무기, 수집품에 대한 파티클을 만들고 이들을 게임 로직과 연결하는 방법을 익힌다.
7장, ‘시각적 품질 향상’에서는 언리얼 엔진에서 가장 중요한 렌더링 기능에 초점을 둬 게임이 시각적으로 꽤 근사해 보이도록 만드는 법을 다룬다. 라이트맵(Light map)을 굽는 방법도 배울 것이다.
8장, ‘시네마틱 영상과 게임 안에서의 컷신’에서는 더 실감 나는 게임 플레이와 이야기를 위한 인게임(In-game) 컷신(Cutscene)을 만들 때 필요한 도구에 대해 설명한다.
9장, ‘게임 UI 구현하기’에서는 플레이하는 동안 “오예!”라는 말이 절로 나오게 할 견고한 UI를 추가한다. 언리얼 모션 그래픽(UMG, Unreal Motion Graphics)을 이용해 서로 다른 화면 크기의 해상도를 다루고 근사한 게임 UI를 만들어본다. 10장, ‘게임 진행 저장하기’에서는 게임 저장 및 불러오기 기능을 만들어 진행 중인 게임을 저장해 나중에 게임을 이어서 할 수 있도록 만든다.
11장, ‘데이터 테이블로 게임 플레이 제어하기’에서는 데이터 테이블(Data Table)을 사용해 적군 등의 게임 플레이 값을 전달한다(데이터 테이블은 타워 디펜스, RPG, 로그라이크, RTS와 같은 여러 게임 장르에 광범위하게 사용되고 있다).
12장, ‘근사한 사운드’에서는 게임 플레이 중에 재생되는 오디오를 추가하는 방법을 보여준다. 신(scene)에서 어떻게 오디오를 재생하고 클립을 사용하는지 학습한다.
13장, ‘게임 성능 프로파일링’에서는 다양한 편집기 디버깅 방법과 성능 이슈를 규정하기 위한 프로파일링(Profiling) 도구를 숙지한다.
14장, ‘게임 패키지 생성’에서는 게임 배포를 위해 해당 게임을 실행할 수 있게 만드는 방법을 배운다. 이 게임의 대장이라는 것을 보여줄 스플래시 화면을 추가하고 프로젝트 런처(project launcher)를 이용해 게임을 출시한다.

저자/역자 소개

지은이의 말

이 책은 언리얼 엔진의 기초부터 고품질의 게임을 생성하는 과정을 심도 있게 배우는 안내서다. 애셋을 가져와 구현하는 것부터 시작해 게임 배포를 위한 패키지 및 패치 생성까지 게임 제작의 모든 과정을 다룬다. 이 책의 주요 목표는 멋진 게임을 만드는 것이다. 또한 게임을 위한 로직을 만드는 데 있어 광범위하게 사용되는 C++ 언어를 이용한 고급 기술을 다룬다.

지은이 소개

무함마드 압둘 모님(Muhammad A.Moniem)

매우 어린 나이에 게임 산업에 뛰어들었다. 대학에 들어가기도 전에 게임 개발과 관련한 모든 과정을 혼자 터득했다. 전문 개발자가 되고 나서는 게임 디자인과 그래픽 기술도 스스로 배웠다. 독학을 통해 크고 작은 회사와 게임 프로젝트에 뛰어들어 곧바로 게임 개발을 시작했다. 정규직부터 시간제, 프리랜서 경력을 거치며 윈도우, 맥, iOS, 안드로이드, PS4, Xbox One, OUYA를 포함한 다양한 플랫폼의 게임 개발에 참여했다. 또한 VR, AR, 키넥트와 같은 다양한 기술을 작업에 활용해왔다. 2007년도에 언리얼 엔진 3를 사용하기 시작했으며, 2014년도부터는 언리얼 엔진 4를 공식적으로 사용 가능하게 됐을 때부터 사용했다. 몇몇 인디 게임을 개발할 때는 UDK를 활용하기도 했다.
현재 인디 개발자로 자신만의 1인 게임 개발사를 설립해 운영하고 있다. 개발한 많은 게임이 높은 관심과 인기를 끌었으며, IGF나 인디 쇼케이스(Indie Showcase), IGC, 도쿄 게임 쇼(Tokyo Game Show)와 같은 다양한 국제 인디 게임 행사에서 최종 후보로 선정되기도 했다. 트위터(@_mamoniem)로 전 세계 개발자들과 활발히 소통하고 있다.
팩트출판사에서 또 다른 저서 『Learning UnrealⓇ Engine iOS Game Development』(2015)와 『Unreal Engine Lighting and Rendering Essentials』(2015)도 저술했다.

옮긴이의 말

언리얼 엔진 4(Unreal Engine 4)가 등장한지도 어느덧 5년의 세월이 흘렀다. 모바일 게임 시장의 규모가 증가하던 시기에 처음 언리얼 엔진 4가 등장했을 때만 하더라도 회의론적인 의견이 많았지만, 이제는 유니티 엔진(Unity Engine)과 더불어 언리얼 엔진은 비교의 대상이 아닌 선택의 문제가 됐다. 언리얼 엔진은 소규모 게임뿐만 아니라 규모가 큰 게임 개발에 더욱 효과적이며, 멀티 플랫폼 게임을 제작하기가 용이하다. 모바일 기기의 성능도 점점 더 고사양화돼 가고 있어서 언리얼 엔진으로 훌륭한 그래픽의 게임을 개발하는 회사가 늘어나는 추세다. 또한 개발사인 에픽 게임즈에서 최근 〈포트나이트(Fortnite)〉를 출시하는 등 실제 게임 개발도 진행하면서 필요한 기능이나 개선 사항을 추가해 다른 게임 엔진과 다르게 게임 개발자의 편의를 도모한다.
이 책은 C++ 코드를 기반으로 해 언리얼 엔진 4의 전반적인 내용에 대해 다룰 뿐만 아니라 실제 게임을 만들어보게 된다. 프로젝트의 준비 단계부터 시작해서 게임 캐릭터 및 레벨 작업, AI, 파티클, 게임 그래픽, UI, 사운드, 데이터 등 실제 게임 개발에 필요한 내용을 예제에 함께 차례대로 학습해 나갈 수 있다.
언리얼 엔진 4의 초급 독자를 위한 단계별 예제를 통해 각각의 기능을 상세히 설명하고 있으며, 어느 정도 언리얼 엔진을 다뤄 본 독자를 위해 각 장별로 세부 기능을 찾아볼 수 있다. 또한 C++ 코드를 사용해 언리얼 게임 개발 방법을 설명하고 있기 때문에 C++ 언어에 대한 기본적인 선행 지식이 필요하다. 이 책을 통해 그동안 온라인만으로 찾아보기 힘들었던 C++ 언어를 언리얼에서 활용하는 방법이나 실제 예제 구현 방법에 대해 좀 더 가깝게 접근해 자신만의 게임을 개발하는데 좋은 영감을 얻을 수 있을 것이다. 또한 게임 개발 초기 단계부터 완성 단계에 이르기까지 개발 흐름을 이해할 수 있을 것이다.

옮긴이 소개

권혁이

게임 프로그래머로서 EA, 소프트맥스에서 클라이언트 파트 개발에 참여해 왔으며 현재는 캐나다 게임 회사 루디아(Ludia)에서 근무 중이다. 옮긴 책으로는 『유니티 5.x Shader와 Effect 제작』(에이콘, 2016), 『C++17 STL 프로그래밍』(에이콘, 2019) 등이 있다.

오은진

신문방송학을 전공하고 외신기자 및 해외홍보 팀을 거쳐 현재는 캐나다 몬트리올에 본사를 둔 게임 관련 회사의 Localization Manager로 일하고 있다. 이상형인 남편을 만나 공동 번역에서 잔소리 파트를 맡고 있다.

목차

목차
  • 1장. 대형 프로젝트 준비하기
    • 게임의 개요
    • C++ 프로젝트 생성
    • 프로젝트 설정
    • 편집기 설정
    • 입력 처리 매핑
    • 애셋 이주시키기
    • 마켓플레이스의 애셋 이용하기
    • 애니메이션 리타기팅
    • 요약

  • 2장. 전사 만들기
    • 코드 프로젝트
    • C++ 클래스 생성
    • 코드 편집과 추가
    • Gladiator 헤더(.h) 파일
    • Gladiator 소스(.cpp) 파일
    • 코드 컴파일하기
    • 애니메이션 애셋
    • 블루프린트 생성하기
    • 게임 모드에 블루프린트 추가하기
    • 요약

  • 3장. 나만의 놀이 공간 설계하기
    • 예술적인 레벨 설계
      • 애셋을 월드에 배치하기
      • 브러시를 이용해 레벨 디자인 한 단계 업그레이드하기
      • 레벨에 라이트 추가하기
    • 레벨의 라이트맵구축하기
      • 물 표면 구현하기
    • 플레이어 시작점
    • 내비게이션 메시
    • 요약

  • 4장. 생각하는 AI
    • 전체적인 개념 잡기
    • AI 애셋
    • 애니메이션 블루프린트
    • C++ 로직 생성하기
    • EnemyAIController
    • Enemy
    • 행동 트리 생성하기
    • 블루프린트 생성하기
    • 알림 추가하기
    • 추가 사항
    • 요약

  • 5장. 아이템 추가하기
    • 아이템의 개념
    • 기본 클래스
    • 코인 클래스
    • 캐릭터가 수집할 수 있도록 구현하기
    • 블루프린트 만들기
    • 다음 단계로 나아가기
    • 요약

  • 6장. 파티클의 마법
    • 파티클 편집기
    • 메뉴 바
    • 뷰포트 패널
    • 방사체 패널
    • 디테일 정보 패널
    • 커브 편집기
    • 파티클 스폰하기
    • 실시간으로 파라미터 변경하기
    • 요약

  • 7장. 시각적인 품질 향상
    • 라이트매스
    • 스웜 에이전트
    • 앰비언트 오클루전
      • AO 설정
    • 라이트매스 설정
      • 월드 설정
      • 임포턴스 볼륨 설정
    • 후처리 프로젝트 설정
      • 후처리 볼륨
      • 사용할 수 있는 효과 목록
    • 반사 캡처
      • 반사 캡처 액터
    • 안개 효과
      • 대기 형태의 안개
      • 높이 지수화 안개
    • 요약

  • 8장. 시네마틱과 인게임 컷신
    • 마티니 액터(시네마틱 액터)
      • 마티니 편집기
      • 그룹
      • 트랙
    • <Bellz> 시네마틱
    • 안개 애니메이션
      • 색상
      • 익스포넨셜 하이트 포그 애니메이션
      • 비디오 파일로 시네마틱 저장하기
    • 요약

  • 9장. 게임 UI 구현하기
    • 언리얼 UI 시스템인 UMG
    • 게임 UI 위젯
    • UMG 디자이너
    • UI 생성하기
    • UI에 애니메이션 추가하기
    • 게임 로직에 UI 연결하기
    • 추가 사항
    • 요약

  • 10장. 게임 진행 저장하기
    • SaveGame 클래스 만들기
    • C++에서 게임 데이터 저장하고 불러오기
    • *.sav 파일
    • 블루프린트에서 게임 데이터를 저장하고 불러오기
    • 요약

  • 11장. 데이터 테이블을 통해 게임 플레이 제어하기
    • 데이터 테이블 시트
    • 데이터 테이블 애셋 생성하기
    • 데이터 구조체 생성하기
    • 블루프린트 데이터 구조체
    • C++ 데이터 구조체
    • 데이터 테이블에서 읽어오기
    • 요약

  • 12장. 근사한 사운드
    • 오디오 파일 가져오기
    • 사운드 애셋
    • 사운드 큐 편집기
    • 오디오 볼륨
    • 사운드 효과 재생하기
    • 요약

  • 13장. 게임 성능 프로파일링
    • 블루프린트 디버거
    • 충돌 분석기
    • 콘솔
    • FPS 차트
    • 화면 모드와 시각화
    • GPU 시각화
    • 장치 관리자
    • 장치 프로파일
    • 요약

  • 14장. 게임 패키지 생성
    • 빌드를 하기 위한 프로젝트 준비하기
    • 패키지 설정하기
    • 맵과 모드의 설정
    • 설명 설정
    • 플랫폼 설정
    • 몇 가지 화면 추가하기
    • 게임 패키지화하기
    • 콘텐츠 굽기
    • 프로젝트 런처와 DLC
    • 배포 패키지화하기
    • 패치나 DLC 패키지화하기
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안