Top

유니티 5.x 게임 개발의 시작 [인기 장르 프로젝트를 통해 배우는 유니티 5.x 게임 개발]

  • 원서명Unity 5.x Game Development Blueprints (ISBN 9781785883118)
  • 지은이존 도란(John P. Doran)
  • 옮긴이이진오
  • ISBN : 9791161750101
  • 30,000원
  • 2017년 06월 30일 펴냄
  • 페이퍼백 | 464쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

유니티 5.x를 사용하여 게임을 만들고자 하는 초급과 중급 게임 개발자를 위한 책이다. 2D 트윈 스틱 슈터로 시작하여 클릭커, 무한 스크롤, 횡스크롤 플랫폼, 3D 일인칭 슈터까지 인기 있는 장르의 게임 프로젝트를 예제로 사용하여 개발에 필요한 다양한 부분을 다룬다. 장르에 상관 없이 본인의 개발 실력의 기본을 닦고자 하는 사람에게 유용하게 읽힐 책이다.

이 책에서 다루는 내용

■ 유니티의 내장 2D 툴을 사용한 트윈 스틱 슈터, 엔드리스 모바일 게임, 슈팅 갤러리 게임 개발
■ 클릭커 게임을 개발하면서 유니티 내장 GUI 시스템, 재활용이 가능한 메뉴 시스템, 게임 내장 레벨 에디터 개발
■ 높은 효율성으로 실사와 흡사한 모습의 게임 환경 구성
■ 터레인(Terrain)과 모듈화 작업 방식을 사용해 환경을 구성하는 팁과 노하우
■ 기존 코드를 본인의 게임에 맞게 수정하는 방법
■ 게임 세계 안에서 움직이고 플레이어에 반응해 움직이는 AI 제작
■ 인스톨러를 만들어 출시를 위한 게임을 포장하고 배포하는 방법

이 책의 대상 독자

이 책은 유니티 게임 개발 플랫폼에 대한 기본적인 지식을 갖춘 C# 개발자에게 최적화돼 있다. 유니티의 주요 기능들을 활용할 수 있는 실무적 이해를 바탕으로 흥미진진한 게임을 만들고 싶다면, 이 책 한 권에서 모든 해법을 찾을 수 있을 것이다.

이 책의 구성

1장. '2D 트윈 스틱 슈터'에서는 2D 다방향 슈터 게임을 제작하는 방법을 다룬다. 플레이어는 방향키를 사용해서 화면 속 우주선을 움직이고 마우스가 가리키는 방향으로 발사체를 쏜다. 생성된 적과 방해물은 플레이어를 향해 움직이고, 플레이어는 이를 피하거나 파괴해야 한다. 이 장은 유니티를 다루기 위해 필요한 여러 가지 개념들을 다시 환기시킴과 동시에 유니티에 내장된 2D 툴을 훑어보는 데 목적을 둔다.
2장. 'GUI 만들기'에서는 트윈 스틱 슈터 게임에 UI를 적용한다. 메인 메뉴, 멈춤 메뉴, 옵션 메뉴와 게임을 다시 시작할 수 있는 기능을 추가한다.
3장. 'GUI 파트 2: 클릭커 게임'에서는 클릭커 게임을 만들어보면서 우리가 알고 있는 GUI 관련 지식 이상의 것들을 배운다. 버튼을 만들고 애니메이션하는 방법, 액세서(get/set 기능)를 다루는 방법, 그리고 게임에서 사용할 간단한 샵(shop) 기능을 만들면서 스크롤뷰(Scrollview)와 마스크(Mask) 등의 UI 애셋을 짚어본다.
4장. '모바일 엔드리스 게임: 절차적 콘텐츠'에서는 인기 게임 <플래피>와 게임 플레이가 유사한 게임을 만들면서 실시간으로 콘텐츠를 만들어 끝없는 레벨을 생성하는 방법을 설명한다. 추가적으로 소팅 레이어(sorting layer)를 사용해 반복되는 백그라운드를 만드는 방법도 살펴본다.
5장. '슈팅 갤러리: 애니메이션과 트윈다루기'에서는 플레이어가 시간이 끝나기 전에 타깃들을 쏘아 맞추는 간단한 슈팅 게임을 만든다. 유니티에 내장된 애니메이션 기능이나 아이트윈(iTween)과 같은 트윈 라이브러리를 사용해서 애니메이션을 만드는 다양한 방법을 살펴보고, 마지막으로 PlayerPrefs를 사용해 최고 스코어를 갱신하는 법을 다룬다.
6장. '횡 스크롤 플랫폼 게임'에서는 횡 스크롤 플랫폼 게임을 만드는 방법을 다룬다. 2D 게임과 3D 게임을 만들 때 어떤 점이 비슷하고 다른지 살펴보고, 특히 물리에 관련된 부분에 초점을 맞춘다.
7장. '일인칭 슈터 파트 1: 야외 환경 만들기'에서는 야외 환경을 제작하는 환경 아티스트가 하는 일을 다루면서 메시(mesh) 배치를 살펴본다. 또한 초보 수준의 레벨 디자인 방법을 알아본다.
8장. '일인칭 슈터 파트 2: 실내 환경 만들기'에서는 환경 아티스트가 제작해준 애셋들을 가지고 실내 환경을 제작하며, 레벨 디자이너의 작업을 살펴본다.
9장. '일인칭 슈터 파트 3: 게임플레이와 AI 적용하기'에서는 적, 슈팅 행동 패턴, 게임플레이를 적용하는 방법을 배워 진정한 게임의 모습이 드러나게 한다. 또한 게임에서 Xbox 360 컨트롤러를 지원하는 방법을 알아본다.
10장. '게임 내장 레벨 에디터 만들기'에서는 이전 장에서 만든 횡 스크롤 플랫폼 게임은 물론, 향후 게임에 쓰일 수 있는 레벨 에디터 기능을 만들어 게임의 기능성을 높이는 방법을 살펴본다. 또한 IMGUI(Immediate Mode GUI System)를 사용해 코드에서 직접 GUI를 생성하는 기능을 알아본다.
11장. '후반 작업'에서는 유니티에서 게임을 내보내는 방법과 친구, 가족, 고객들에게 게임을 편리하게 전달하도록 설치 프로그램을 포함시키는 방법을 다룬다.

저자/역자 소개

지은이의 말

무료 버전과 프로 버전으로 제공되는 유니티(Unity)는 가장 인기 있는 서드파티 게임 엔진 중 하나다. 게임 개발이 끝나면 PC, 콘솔, 웹 등 다양한 플랫폼으로 출시 가능한 크로스 플랫폼(cross-platform) 엔진으로서, 인디 개발자는 물론 AAA 개발사에게도 매우 좋은 선택이다. 이 책은 유니티를 최대한 활용할 수 있게 해준다. 3D 및 2D 게임을 만들면서 GUI를 만드는 방법을 배우고, 전 세계가 즐길 수 있는 모습으로 게임을 공개하는 방법을 알려준다. 책을 새롭게 업데이트하면서 유니티의 신기능들을 십분 활용할 수 있도록 기존에 수록돼 있던 프로젝트들을 수정했고, 세 개의 새로운 프로젝트를 추가했다. 이 책을 통해 2D 트윈 스틱 슈터, 클릭커 게임, 엔드리스(endless) 게임, 슈팅 갤러리, 게임 속에 레벨 에디터가 포함된 횡 스크롤 플랫폼 게임, 일인칭 호러 서바이벌 슈터, 그리고 당신이 앞으로 제작할 게임들에 두루 쓰일 수 있는 GUI 메뉴 시스템을 만들어볼 것이다. 또한 설치 프로그램을 게임에 포함시켜 게임의 수준을 높이면서 더욱 차별화된 게임을 출시하는 방법을 배운다. 각 장은 새로운 유니티 기술을 가르쳐주거나 이미 알고 있는 기술을 최대한 활용할 수 있게 구성됐다.

지은이 소개

존 도란(John P. Doran)

10년 이상 게임을 제작해온 테크니컬 게임 디자이너(technical game designer)다. 1인 개발은 물론 70명 규모의 학생 팀과도 함께 작업했고, 게임 디자이너부터 리드 UI 프로그래머까지 다양한 역할을 수행하면서 모드(mod) 및 상업용 프로젝트들을 개발해왔다. 루카스아츠(LucasArts)의 <스타워즈:>에는 게임 디자이너로 참여했다. 이후에는 미국 워싱턴주 레드몬드 시에 위치한 디지펜 인스티튜드 오브 테크놀러지(DigiPen Institute of Technology)에서 게임 디자인 석사 과정을 마쳤다. 현재는 싱가포르에 위치한 디지펜의 연구 개발 부서에 소속돼 있으며 동시에 디지펜 게임 스튜디오의 일원이다. 디지펜-유비소프트 캠퍼스의 게임 프로그래밍 과정 수석 강사도 겸하고 있으며, 대학원 수준의 강도 높은 게임 프로그래밍 교과 과정을 가르치고 있다. C#, C++, 언리얼, 유니티, 게임 디자인 등 여러 가지 주제에 대한 강연과 개인 교습도 병행중이다. 팩트출판사가 펴낸 『Unreal Engine Game Development Cookbook』, 『Building an FPS Game in Unity』, 『Unity Game Development Blueprints』, 『Getting Started with UDK, UDK Game Development』, 『언리얼 UDK 게임 개발』(에이콘, 2014)을 저술했으며, 『UDK iOS Game Development Beginner’s Guide』의 공동 저자다. 추가적인 정보는 http://johnpdoran.com에서 확인할 수 있다.

옮긴이의 말

게임 개발을 업으로 삼고 있는 사람이라면 유니티 엔진이 현존하는 최고의 엔진 중 하나라는 사실에 대부분 동의할 것이다. 유니티는 초보자들도 어렵지 않게 배울 수 있으면서, 사용하기에 따라 AAA급의 게임까지 만들어낼 수 있는 엔진이다. 또한 PC와 모바일은 물론이고, 플레이스테이션과 Xbox를 포함한 콘솔로도 게임을 배포할 수 있다. 유니티 엔진이 5.x로 업그레이드되면서 완성도는 더욱 높아지고, 여러 가지 기능을 더해 강력함 역시 갖췄다. 이 책은 유니티로 게임을 만들고자 하는 개발자에게 예제를 통해 튼튼한 기반을 마련해준다. 이 책을 읽고 나면 본인이 만들고자 하는 장르에 상관없이 필요한 지식들을 끌어올 수 있는 바탕이 마련될 것이다. 누구나 쉽게 익히고 즐길 수 있는 2D 트윈 스틱 슈터 게임을 사용해 게임 개발에 필요한 여러 부분들을 하나로 엮어 이해할 수 있도록 가볍게 다루면서 이 책은 시작한다. 그런 후 UI(User Interface)를 붙이고, 배운 UI 지식을 사용해 새로운 클릭커 게임을 개발한다. 클릭커 게임이 끝나면 조금 더 난이도를 높여 무한 스크롤 게임과 슈팅 갤러리 게임을 통해 고급 기능들을 배운다. 순차적으로 난이도를 높이며 따라가 보면 어느 순간 3D 일인칭 액션 게임이 손에 들려 있을 것이다. 본인이 만들고 싶은 게임에 맞춰 필요한 엔진 기능을 찾아 적용하는 방법으로 게임을 개발할 수도 있지만, 엔진 능력을 충분히 숙지한다면 더욱 완성도 높은 게임을 만들 수 있다. 이 책이야말로 그런 역할을 하는 책이다. 예제로 나오는 각 프로젝트의 깊이나 완성도가 높지는 않지만, 다양한 장르와 기능을 다룸으로써 실제 본인의 게임을 만들 때 ‘아, 이렇게 하면 되겠구나!’, ‘아, 이 부분을 더 파보면 되겠구나!’ 하는 순간을 경험하게 해준다. 유니티를 통해 게임을 개발하길 원하고 새로운 5.x 버전의 기능들도 숙지하면서 초, 중급 실력에 맞는 책을 찾는다면, 지금 손에 들고 있는 이 책이 그 목마름을 해결해줄 것이다. 게임을 만들어 세상에 내놓는 일은 절대 쉽지 않지만, 이 책이 그 길로 가는 돌계단 중 하나가 되길 바란다.

옮긴이 소개

이진오

게임에 미쳐 부모님의 잔소리만 듣던 아이가 정신을 차려보니 게임 업계에 16년째 몸담고 있다. 프로듀서, 프로젝트 매니저 등 개발을 관리하는 역할로 <킹덤>, <샤이닝로어>, , 등의 프로젝트에 참여해왔으며, 현재는 리로디드 스튜디오에 몸담고 있다. 최대한 많이 새로운 것을 시도해보고자 노력하며 살고 있다.

목차

목차
  • 1장. 2D 트윈 스틱 슈터
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 프로젝트 설정하기
    • 신 만들기
      • 스크립팅의 소개
    • 플레이어 움직임 만들기
    • 슈팅 behavior
    • 적 만들기
    • 적 웨이브를 생성하는 GameController 만들기
    • 적 파괴를 위한 파티클 시스템
    • 사운드 이펙트와 음악 추가하기
    • 점수, 스코어, 웨이브 숫자 만들기
    • 게임 출시하기
    • 요약
    • 도전 과제

  • 2장. GUI 만들기
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 메인 메뉴 레벨 만들기
    • 헤더 텍스트 오브젝트 만들기
    • 메인 메뉴 버튼 만들기
    • 게임 멈추기
    • 게임 재시작하기
    • 옵션 메뉴 만들기
    • 요약
    • 도전 과제

  • 3장. GUI 파트 2: 클릭커 게임
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 프로젝트 시작하기
    • 클릭을 기록하고 표시하기
      • 액세서 활용하기(get/set 함수)
      • 툴 팁과 헤더 속성
      • GameController의 기능 설명
    • 샵 만들기
      • ScrollView를 사용해 스크롤이 가능한 리스트 만들기
    • 샵 열기/닫기
    • 업그레이드 구매하기
      • 이뉴머레이션 다루기
      • Switch 명령문
      • StoreItem 클래스 설명하기
      • 아이템 설명 채워 넣기
    • 요약
    • 도전 과제

  • 4장. 무한의 모바일 게임: 절차적 콘텐츠
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 프로젝트 구성
    • 배경 만들기
    • 단순하게 애니메이션 되는 캐릭터 만들기
    • 반복되는 배경 만들기
      • 반복되는 배경의 스크립트
    • 소팅 레이어 다루기
    • 플레이어 비헤이비어 만들기
      • 게임 멈추기
    • 장애물 만들기
    • 실시간으로 장애물 생성하기
    • 게임 시작과 엔딩 비헤이비어 구성하기
    • 스코어 기록하기
    • 요약
    • 도전 과제

  • 5장. 슈팅 갤러리: 애니메이션과 트윈 다루기
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 프로젝트 구성
    • 환경 만들기
    • 타깃 추가하기
      • 유니티 애니메이션 시스템으로 애니메이션 만들기
      • 유니티 애니메이션을 코드로 재생하기
      • iTween을 사용해서 애니메이션 만들기
      • 움직이는 타깃 만들기
    • 다수의 타깃 만들기
    • 타깃을 웨이브로 생성하기
    • 시간 제한 추가하기
    • 점수/최고 점수 추가하기
      • PlayerPrefs
    • 요약
    • 프로젝트 완성
    • 도전 과제

  • 6장. 횡 스크롤 플랫폼 게임
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
      • 프로젝트 구성
    • 타일 기반의 레벨 제작
      • 배열 다루기
    • 플레이어 만들기
      • 점프 기능 추가하기
      • 기즈모 다루기
      • 플레이어 움직임 부드럽게 만들기
    • 수집물 만들기
      • 레벨 빌더에 새로운 오브젝트 추가하기
    • 점수 기록하기
      • 싱글톤
    • 게임에서 승리하기
    • 요약
    • 도전 과제

  • 7장. 일인칭 슈터 파트 1: 외부 환경 만들기
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 프로젝트 구성
      • 레벨 디자인의 기본: 계획하기
    • 터레인 소개
      • 하이트 맵
      • 손으로 조형하기
    • 외부 환경: 터레인
    • 터레인에 색깔을 입히기: 텍스처
      • 지형에 복수의 텍스처 적용하기
    • 물 추가하기
    • 나무 추가하기
    • 디테일 추가하기: 풀
    • 분위기 만들기
    • 요약
    • 도전 과제

  • 8장. 일인칭 슈터 파트 2: 내부 환경 만들기
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 프로젝트 구성
      • 건축물 구성 개요
    • 애셋 가져오기
    • 타일 제작하기
    • 그리드 스내핑으로 타일 배치하기
    • 프롭의 제작과 배치
    • 빠르게 라이트매핑하기
    • 요약
    • 도전 과제

  • 9장. 일인칭 슈터 파트 3: 게임플레이와 AI 적용하기
    • 프로젝트 개요
      • 목표
    • 프로젝트 구성
    • 플레이어 만들기
    • 손전등 추가하기
    • 무기 만들기
      • 카메라 만들기
      • 카메라 찍기
    • 적 만들기
      • 상태 기계 개요
    • 적 움직임
      • 고급 FSM
    • 적에게 피해를 입히고 죽이기
    • 컨트롤러 입력 사용하기
    • 다른 레벨로 이동하기
    • 요약
    • 도전 과제

  • 10장. 게임 내장 레벨 에디터 만들기
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 레벨 에디터: 소개
      • Lists
    • 레벨 에디터: 실시간으로 벽을 추가/제거하기
    • 레벨 에디터: 에디터 켜고 끄기, GUI, 다른 타일 선택하기
      • IMGUI 컨트롤의 구조
      • GUI
      • GUILayout
    • 레벨 에디터: 레벨을 파일에 저장하기/불러오기
      • FileStreams
      • Binary Formatter
    • 요약
    • 도전 과제

  • 11장. 후반 작업
    • 프로젝트 개요
      • 목표
      • 시작 전 필수 사항
    • 빌드 설정 설정하기
    • 플레이어 설정을 통해 내보내는 프로젝트 커스터마이즈하기
    • 윈도우용 인스톨러 구성하기
    • 요약
    • 도전 과제

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.55 : 아래서 5행]
player=GameObject.Find("playerShip").transform
->
player=GameObject.Find("Player Ship").transform

[p.58 : 첫 행]
if (theCollision.gameObject.name.Contains("laser"))
->
if (theCollision.gameObject.name.Contains("Laser")) {

[p.208 : 3행 : 굵은 글씨 처리]
StartCoroutine(HideTarget());