Top

Unity로 하는 2D 게임 개발

  • 원서명Unity 2D Game Development (ISBN 9781849692564)
  • 지은이데이브 캘러브리스
  • 옮긴이장석현
  • ISBN : 9788960775947
  • 15,000원
  • 2014년 08월 29일 펴냄
  • 페이퍼백 | 160쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

요약

이 책은 유니티(Unity) 4.3 이후 버전에 추가된 2D 특화 기능들에 대해 중점적으로 다룬다. 이미 유니티 엔진을 다루어 본 경험이 있는 독자들에게는 새로 추가된 2D 기능들에 대해 살펴볼 기회를, 그렇지 않은 독자들에게는 유니티 엔진을 이용하여 처음으로 2D 게임을 끝까지 만들어 볼 기회를 제공할 것이다. 애셋을 임포트하는 기본적인 내용부터 보스전의 구현 같은 심화 내용까지 고루 다룬다. 저자의 게임 개발 경험에서 우러나온 실전 팁도 놓치지 말자!

이 책에서 다루는 내용

1장. 유니티 2D 세계로의 초대: 이 장에서는 유니티를 다운로드해서 설치하고 실행하여 간단히 애니메이션되는 스프라이트 기반의 플레이어 캐릭터를 설정하는 기본적인 내용을 다룬다.

2장. 주인공 만들기: 이 장에서는 카메라 제어, 2D 트리거, 플레이어의 죽음과 부활, 무기 발사, 그리고 추가로 상태머신에 대한 내용을 다룬다.

3장. 적 만들기: 이 장에서는 적들을 추가한다! 적을 쏘고 죽이고, 적이 돌아다니는 걸 지켜본다. 모두가 당신을 죽이고 싶어 하는 파티가 열린다.

4장. 게임 구성요소 보강하기: 이 장에서는 어떻게 동적으로 무한대의 적을 만드는지, 어떻게 더 큰 게임 월드를 만드는지를 보여준다. 그리고 시차 스크롤과 점수 시스템도 추가한다.

5장. 최종 보스전 만들기: 이 장에서는 적들에게도 화난 친구가 있다는 것을 알려주려 한다. 완전한 보스전을 만들게 된다.

6장. 마무리: 이 장은 마치 2D 작품이라는 거대한 산 위의 토핑 같은 것이다. 게임 라운드와 시작화면을 추가할 것이다.

이 책의 대상 독자

이 책은 누구든 2D 게임을 만들려는 마음을 가지고 있는 사람들을 위한 책이다. 하지만 유니티 게임 엔진으로 게임을 만드는 방법에 대한 사전지식이 있으면 도움이 된다. 그렇지 않더라도 걱정하지 말자. 엔진을 처음 써 보는 사람도 따라올 수 있도록 충분히 자세하게 설명할 예정이고, 많은 것들을 배우게 될 것이다. 이 책을 마치고 나면 온전한 2D 플랫폼 게임을 완성하게 될 것이다. 여기에서 배울 것들이 있고, 더 크고 나은 게임으로 확장할 수도 있게 된다.

이 책의 구성

이 책은 유니티 4.3이나 그 이상 버전을 사용하는 독자들을 위한 책이다. 필요한 건 이것뿐이다. 유니티가 없다 해도 걱정하지 말고 www.Unity3D.com에 가면 가장 탁월한 게임 엔진의 무료 버전을 얻을 수 있다.

저자/역자 소개

저자 서문

90년대로 되돌아가서 현 세대의 기술로 그 시절의 게임을 만들 준비를 하자. 그렇다. 유니티를 활용해서 2D 게임을 만드는 얘기다!

이 책은 유니티 4.3 이후의 버전에 추가된 엔진의 2D 기술들을 이용해서 독자들로 하여금 2D 게임을 만들 수 있게 도와줄 것이다. 여러분은 애셋을 임포트하고 바닥을 만드는 기초적인 기술부터 모든 전투와 보스전에 이르기까지 모든 것을 배우게 될 것이다! 이 책의 간단하고 실용적인 접근을 통해 각 장의 내용들은 독자를 최종 게임의 모습에 한 발짝씩 다가서게 해 줄 것이다. 게임 UI의 기본적인 측면을 살펴보는 것으로 모든 내용을 마무리 짓게 된다. 최종 보스를 구현하는 데까지 끝내고 나면 각 장에 포함된 도전과제를 되짚어보고 게임과 독자의 2D 게임 개발 기술을 향상시켜 보자!

저자 소개

데이브 캘러브리스(Dave Calabrese) 2002년부터 업계에서 일해 온 프로 인디 게임 개발자다. 인턴 사원으로 시작하여 그의 작은 게임 스튜디오인 시루리언 게임즈(Cerulean Games)를 운영하기까지 차근차근 경력을 쌓아왔으며 재미있는 고품질 엔터테인먼트 제작을 위해 고군분투하고 있다. 또한, 다른 이들에게 자신의 경험과 실수에서 배우도록 손을 내밀고 있다. 최고 명성을 자랑하는 유명한 프로젝트들에서 일하면서 엑스박스(Xbox)360, iOS, PC, 맥을 비롯한 다양한 멀티플랫폼 타이틀을 만들 기회가 있었다. 요즘도 재미난 신작 게임을 만들고, 게임 잼에 참가하며, 책도 쓰고 있다.

옮긴이의 말

내가 처음 유니티 엔진을 사용한 지도 수년이 지났지만 유니티를 처음 접했을 때의 충격은 아직도 잊을 수 없다.

사실 유니티 이전에도 멀티플랫폼을 지원하는 수많은 게임 엔진들이 편리한 기능과 독자적인 장점을 앞세워 여러 게임에 채택되어 사용되어 왔다. 콘솔과 온라인 게임이 게임시장의 대부분을 차지하던 때에 각 엔진들은 경쟁적으로 아티스트와 프로그래머의 작업을 쉽게 연동할 수 있도록 통합성을 강화하는 방향으로 발전해왔다. 유니티 또한 이러한 경향에 맞게 통합 게임엔진으로 만들어졌다.

그런데 2007년 아이폰 출시와 다음 해 앱스토어의 등장으로 게임시장은 급물살을 타기 시작하여 모바일 게임의 비중이 기하급수적으로 커지며 기존의 게임개발자와 회사들에게 이 플랫폼들을 추가로 지원해야 할 필요성이 빠르게 대두하였다. 여러 게임 엔진들도 이런 시류에 대응하여, 네이티브 코드 구현을 플랫폼별로 포팅하는 과정을 거치거나 스크립트 언어를 사용하여 게임 구현의 플랫폼 의존성을 제거하는 크게 두 가지 방향으로 대응하기 시작했다.

내가 유니티를 처음 접했을 때 놀랐던 부분은 기존 게임엔진들이 잘 선택하지 않던 과감한 개발 패러다임을 선택한 엔진이었기 떄문이다. .NET의 공개된 스펙을 멀티플랫폼으로 구현한 mono를 이용하여 손쉽게 멀티플랫폼 환경에 대응하면서도 CLR(Common Language Runtime)을 통해 다양한 개발언어의 장점을 취할 수 있게 했다. 스크립트 언어를 게임 구현에 사용하는 다른 게임엔진과 비슷한 개발 패러다임으로 볼 수 있지만, 이러한 엔진들에 비해 .NET의 MSIL(Microsoft Intermediate Language) 형태로 컴파일되어, 다른 스크립트 언어가 인터프리트 환경이나 JIT(Just-In-Time) 컴파일 환경에 비해 월등한 성능을 갖출 수 있었다. .NET 환경에서 선호도가 높은 C#의 언어 특성을 모두 누릴 수 있는 것도 장점이다.

유니티는 이런 장점들을 적극적으로 활용하여 단순히 멀티플랫폼 대응에만 그치지 않고 게임 개발 패러다임을 진일보시킨 엔진이다. 과거에 많이 사용되어 온 게임엔진들의 경우에 다소 고전적인 방법론을 기본으로 게임의 순차적인 흐름을 먼저 구현하고 OOP(Object Oriented Programming) 요소들을 첨가하는 경우가 많았다. 유니티의 패러다임은 최신의 비게임 플랫폼들의 그것과 유사하게 컴포넌트와 이벤트, 데이터 주도적인 방법들을 적극적으로 활용하는 완성도 높은 개발환경을 제공하고 있다. 제공되는 개발 환경을 통해 게임 구현뿐 아니라 유니티 자체의 개발 툴까지 쉽게 확장할 수 있도록 허용하는 강력함을 갖추고 있다. 게임엔진에서 흔히 보지 못했던 이런 패기(?) 넘치는 시도를 처음 접했을 때, 옮긴이는 지금의 주류 개발 패러다임의 시초가 되었던 Delphi를 처음 접했을 때의 충격을 다시 한 번 느꼈다.

사실 초기의 유니티의 모습은 기존 상용 게임엔진들에 비해 아티스트를 위한 툴의 기능이 다양하게 제공되지 못했던 터라 유니티의 강력한 확장성을 이용하는 수많은 유니티용 써드파티 아트 툴이 만들어지고 또한 사용되어 왔고, 이런 부분들을 유니티 자체에 추가하려는 행보가 계속되었다. 2D 개발을 위한 도구의 경우에도 마찬가지인데, 최근 유니티의 기본 기능으로 2D 게임을 위한 다수의 도구가 추가되었고 조만간 UI 도구도 통합될 예정에 있다. 이 책은 이러한 유니티의 수많은 특징 중에서도 새로이 통합된 2D 게임 도구를 활용하는 것에 초점을 맞추어 하나의 게임을 완성하도록 안내하는 지침서이다. 이 책을 통해 기존의 유니티 개발자들은 낯선 유니티의 2D 도구를 활용하는 방법을, 새로운 유니티 개발자들은 유니티의 강력함을 체험해보는 기회를 갖게 될 것이다.

이 책의 저자는 인디개발자 특유의 자유로운 사고방식과 유머러스한 화법으로 내용을 이끌어간다. 마치 인디게임 개발팀에 참여해서 함께 게임을 만드는 듯한 느낌이 들 수도 있다. 개발 일지를 읽는 느낌으로, 혹은 게임 개발 회의에 참여하는 느낌으로 이 책을 따라 멋진 2D 게임을 하나 완성해보자!

옮긴이 소개

장석현

2002년부터 넥슨, 네오위즈 등의 회사에서 다수의 온라인게임 개발에 참여한 게임 개발자다. 2011년부터는 유니티 엔진 및 언리얼 엔진을 이용한 모바일을 포함한 미드코어 멀티플랫폼 게임을 개발하는 프로젝트들에 참여하고 있다. 다양한 OS가 구동되는 기기들을 수집하고 만져보는 취미를 가지고 있어 항상 주변 자리엔 남는 콘센트가 없다.

목차

목차
  • 1장 유니티 2D 세계로의 초대
  • 온고지신
  • 유니티의 2D 월드
  • 원근 카메라
  • 바닥 만들기
  • 주인공 만들기
  • 애니메이션 구성
  • 좌우 이동 구현
  • 달리기 구현
  • 요약

  • 2장 주인공 만들기
  • 플레이어 카메라 구현
  • 충돌체 설정
  • 추락 구현
  • 죽음과 부활 – 재생성 구현
  • 점프!
    • 점프 구현
  • 착지
  • 충돌 확인
  • 점프 버그 고치기
  • 더 큰 월드 만들기
  • 무기 발사 기능 추가
  • 총알 소멸 구현
  • 요약

  • 3장 적 만들기
  • 기본 구성
  • 적 이동 구현
  • 플레이어가 죽게 만들기
  • 전투 구현
  • 다수의 적 추가하기
  • 요약

  • 4장 게임 구성요소 보강하기
  • 월드 확장
  • 시차 스크롤
    • 시차 레이어 배치
  • 점수 시스템 구현
  • 적 재생성
  • 요약

  • 5장 최종 보스전 만들기
  • 보스전 기획
  • 보스 구현
  • 이펙트 추가
  • 보스 충돌 구현
  • 요약

  • 6장 마무리
  • 게임 라운드
  • 타이틀 화면 넣기
  • 요약

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[ p61 5행 (띄어쓰기 오류)]
PlayerStateController의 L   ateUpdate --> PlayerStateController의 LateUpdate

2014.12.10 수정사항

[p31 : 3행]
playerSpriteidle1을 Hierarchy나 Scene 탭으로 드래그앤드롭하고 위치를 X: 0, Y: 0으로 변경한다.
->
playerSpriteidle1을 Hierarchy나 Scene 탭으로 드래그앤드롭하고 위치를 X: 0, Y: 0으로, 이름을 Player로 변경한다.

2015. 2. 11 수정사항

[p40 : 7행]
playerStateHandleronStateChange;
->
playerStateHandler onStateChange;

2016. 1. 4 수정사항

[p34: 아래에서 6행]
영향을 미친는 것으로, -> 영향을 미치는 것으로,