Top

유니티와 iOS 모바일 게임 개발 프로젝트

  • 원서명Game Development for iOS with Unity3D (ISBN 9781439892190)
  • 지은이제프 머레이
  • 옮긴이조형재
  • ISBN : 9788960774858
  • 30,000원
  • 2013년 10월 30일 펴냄
  • 페이퍼백 | 368쪽 | 188*250mm
  • 시리즈 : 게임 개발 프로그래밍

책 소개

에이콘 게임 개발 프로그래밍 시리즈 31. 유니티를 이용한 iOS 게임 개발과 앱 스토어에 게임을 출시하기까지의 전 과정을 설명하는 책. 유니티 모바일 게임 개발에서 필요한 다양한 기법과 노하우를 소개하고 완성된 iOS 게임을 앱 스토어에 올리기 위해 거쳐야 하는 전 과정을 단계별로 상세히 설명한다.

프로젝트 기획의 올바른 개발 방향의 안내를 시작으로 자신에게 맞는 애플 개발자 프로그램에 가입하고, 유니티 라이선스를 구입하고, 하드웨어를 준비하는 과정을 설명한다. 실제 iOS 게임 개발 준비, 유니티 에디터의 인터페이스와 기능 살펴보기를 거쳐 공굴리기 게임과 카트 레이싱 게임을 제작하고 게임을 가다듬는 방법을 안내한다. 나아가 아이튠즈 스토어에 게임을 출시하기 위한 일련의 과정까지 단계별로 상세히 설명한다.

유니티에 대한 기본적 지식을 갖춘 상태에서, iOS 게임 개발을 처음으로 시도하는 독자라면 참고할 만한 내용이 많은 유익한 책이다.

이 책의 대상 독자

이 책은 독립 개발자나 중소 규모의 스튜디오에 적합한 내용을 담고 있다. 실습을 통해 유니티 엔진을 이용해서 iOS 게임을 개발하고, 출시하기 위해 필요한 도구와 지식을 습득하도록 도와준다.

이 책의 구성

1장: 게임 기획

첫머리에서 의욕을 불러일으킬 만한 내용을 읽었기 때문에 당장이라도 게임을 만들고 싶어 몸이 근질거릴지도 모르겠다. 그것도 괜찮은 선택이다. 그러나 차분히 생각해 보자. 무엇을 만들지, 그리고 어떻게 만들지에 대해 좀 더 생각하는 것이 올바른 선택이 아닐까?

1장에서는 프로젝트 기획에 도움이 되는 유용한 조언을 통해 올바른 개발 방향을 안내한다. 적은 비용으로 프로젝트를 관리하는 노하우를 살펴보고, 게임 기획 문서에 반드시 포함돼야 할 내용을 배운다. 또한 기획 단계에서 발생할 수 있는 몇몇 공통적 문제를 검토하고, 그런 문제를 피하기 위한 대안을 찾는다. 컨디션을 관리하고, 일정에 맞게 개발팀을 운영하고, 구성원의 동기를 유지하기 위한 방법과 함께, 게임을 테스트하고 버그를 관리하기 위한 전략을 간단히 살펴본다.

2장: iOS 개발 준비

게임을 개발하고, 그 게임을 iOS로 가져오기 위해서는 적절한 하드웨어와 소프트웨어가 필요하다. 이런 준비 과정은 자칫 지나치게 복잡해 보일 수 있다. 따라서 2장에서는 자신에게 맞는 애플 개발자 프로그램에 가입하고, 유니티 라이선스를 구입하고, 하드웨어를 준비하는 과정을 설명한다. 무엇을 구입하거나 빌려야 하며, 비용을 최소화하는 방법이 무엇인지 배운다. 무엇이 필요한지 알게 되면, 이제 개발 환경을 조성하고, 필요한 것을 내려받고, 실제 개발을 준비한다.

3장: iOS 개발을 위한 유니티와 맥 준비

실제 iOS 게임 개발을 준비한다. 우선 유니티 리모트(Unity Remote)를 설명한다. 유니티 리모트는 iOS 장비에서 USB 케이블을 통해서 유니티 에디터로 입력 신호를 보낼 수 있는 앱이다. 유니티 리모트 앱을 빌드하는 방법과 함께, 개발을 위해 어떤 증명서와 프로파일을 설치해야 하는지 설명한다. 한편 사용자 입력을 처리하는 다양한 방법과 유니티가 iOS 게임에서의 조작을 편리하게 처리하기 위해 기본적으로 제공하는 솔루션을 살펴본다.

4장: 유니티 에디터

처음 유니티를 실행했다면, 대체 어디를 클릭해야 할지 어리둥절해 할 수 있다. 4장에서는 유니티 프로젝트를 구성하는 기본 요소, 게임 씬을 둘러보는 방법, 유니티 에디터의 인터페이스와 기능 등을 살펴본다.

5장: 유니티 iOS 게임 제작 1: 공굴리기 게임

iOS 게임을 만들 준비가 모두 끝났다. 이제 미로에서 공을 굴리는 간단한 게임을 제작하고, 이를 통해 본격적인 iOS 개발자가 되기 위한 여정을 시작한다. 기본 UI, 스크립팅, 물리, 충돌, 퍼블리싱에 대해 설명한다. 또한 가속도센서의 입력값으로 물리 오브젝트를 제어하는 방법과 iOS 장비에서 효과적으로 게임을 만들고, 빌드하고, 테스트하기 위해 알아야 하는 유니티의 핵심 기능을 설명한다.

6장: 유니티 iOS 게임 제작 2: 카트 레이싱 게임

앞에서 배운 내용은 한 단계 끌어올려서, 완전한 기능을 갖춘 3D 카트 레이싱 게임을 제작한다. 5장에서 다룬 물리 엔진, 충돌 시스템, 스크립트, UI, 음향 효과 등의 내용을 심도 있게 파고들어 게임 개발에 필요한 고급 기능을 익힌다.

7장: 디버깅과 스크립트 최적화

두 개의 iOS 게임을 만들었다. 5장과 6장의 작업이 결코 쉽지는 않았지만, 그 과정을 잘 버텨냈다. 7장에서는 어떤 문제가 발생했을 때 에디터와 iOS 장비 각각에서 효과적으로 디버깅하기 위한 전략을 살펴본다. 버그를 두려워할 필요는 없다. 모든 게임에는 버그가 있기 마련이고, 버그는 잡아서 처리하면 그만이다.

8장: 파일 크기와 최적화

여기까지 오며 두 개의 게임을 만들었다면, 어엿한 개발자라고 할 수 있다. 이제 게임을 더 좋게 가다듬는 방법을 익힌다. 개발을 처음 시작할 때는 알기 힘든 몇 가지 비밀이 있다. 8장에서는 텍스처 압축 설정, 사운드 압축, 오클루전 컬링(유니티 프로에만 있는 기능)을 설명하고, 각 기능이 게임 성능에 미치는 영향을 살펴본다. 이 모든 내용은 유니티 iOS 게임의 성능을 조금이라도 더 향상시키기 위한 것이다.

9장: 아이튠즈 스토어

아이튠즈 스토어에 게임을 출시하기 위한 일련의 과정을 살펴본다. 무엇을 제출하고, 어떻게 모든 필수 사항을 준비하고, 아이튠즈 스토어 페이지는 어떻게 디자인하며, 게임을 어떻게 홍보할 것인지에 대한 내용을 다룬다. 게임 출시 경험을 가진 개발자가 되기 위한 마지막 단계라고 할 수 있다. 9장에서는 이를 위해 필요한 과정을 설명하고, 모든 사항이 100% 준비됐는지 확인한다.

10장: 창의적 사고

이제 어디로 가야 할까? 유니티 iOS 밖에서도 게임의 기능을 향상시키고, 새로운 기능을 추가할 수 있는 방법이 있다. 10장에서는 엑스코드 프로젝트에 몇 가지 간단한 수정과 최적화 처리를 더해서 게임 성능을 향상시키는 방법을 설명한다. 그 다음에는 게임의 기능을 확장할 수 있는 서드파티 플러그인을 살펴본다.

저자/역자 소개

지은이 소개

제프 머레이

OS, 안드로이드, 웹 기반 게임을 개발하고 뇌파 인식기와 로봇을 활용한 실험적 게임 기술을 연구하는 사이킥패럿(PsychicParrot)을 운영하고 있다. 30년 넘게 취미로 게임을 기획하고 프로그래밍 했으며, 마이크로소프트, 리얼네트워크스(RealNetworks), 소니 등에서 12년 이상 근무했으며, 게임과 브라우저 기반의 엔터테인먼트 컨텐츠 개발에 참여했다.

지은이의 말

개발이 난항을 겪고, 버그는 갈수록 복잡해지기만 하던 암흑 같은 시간이 있었다. 이럴 때면 떠오르던 질문이 하나 있었다. ‘대체 왜 이 일을 하고 있을까?’ 나는 연극과 미디어를 전공했다. 충분히 다른 일을 찾을 수 있었다. 그러나 내가 최종적으로 선택한 길을 게임 개발이다. 게임을 만드는 일이야 말로 나의 모든 재능과 욕구를 충족시켜 주는 길이다. 게임에서는 작곡, 그래픽, 음향효과, 스토리 쓰기 모두를 할 수 있다. 프로그래밍은 내게 시공간과 물리법칙을 마음대로 바꾸는 힘을 준다. 또한 고된 작업이 끝나면, 내 작품을 사람들과 공유하고, 그들을 즐겁게 해줄 수 있다. 간단히 말하자면, 코드는 나의 물감이고 게임은 나의 화폭이다. 나는 유명한 배우나 감독은 아니다. 게임 개발이 명예와 부가 따르는 길도 아닌 것 같다. 그러나 사랑하는 일을 통해, 나를 알지도 못하는 수백만의 사람들을 혼란스럽거나 어리둥절하게 만들고, 좌절시키거나 즐겁게 만들 수 있다는 사실이 내게는 큰 보상이다.

첫 게임은 숫자, 글자, 간단한 기호 같은 아스키(ASCII)문자만을 그릴 수 있는 컴퓨터에서 개발했다. 1983년 무렵의 게임 기획에는이러한 기술적 한계를 우회하기 위한 무수한 상상력과 온갖 최적화의 기법이 필요했다. 게임에 열광하는 사람들이 그리 많지도 않았다. 게임으로 멋진 스포츠카를 살 수 있을 만큼의 큰 돈을 벌기 위해서는 그들을 최대한 만족시켜야 했다. 마치 술에 취한 원숭이 비서가 고장 난 타자기로 만든 것 같은 게임으로 말이다.

당시에는 허술한 그래픽이 큰 문제가 되지 않았다. 80년대 게이머들은 게임 그래픽이 형편 없다는 사실을 당연하게 받아들였다. 그런 사실에 익숙해 지면서, 일종의 관습적 표현이 자리잡았다. 예를 들어 A는 캐릭터를, 별표(*)는 포탄이나 위험한 대상을 상징했다. ‘이 방식이 가장 적절하다’는 집단적 수용을 통해 형성된 간단한 규칙들은 게임 기획자가 이야기를 풀어나가기 위한 최소한의 문법을 제공했다. 오늘날 경험하는 게임적 언어의 토대는 가정용 컴퓨터 시장의 폭발적 성장을 통해 마련됐다. 부모는 숙제를 하라고 컴퓨터를 사줬지만, 모니터 앞의 아이들이 공통적으로 원하는 건 게임이었다.

게임 메카닉에서 공통적으로 반복되는 부분은 기획자가 이야기를 더욱 효과적으로 전달하는 데 도움을 준다. 그러나 개발자들은 그러한 공통된 지식을 공유하는 데 번번이 실패했다. 젊은 개발자는 선배가 가로 막혔던 바로 그 난관을 똑같이 마주한다. 지식과 기법이 마치 토스트에 계란을 얹는 값비싼 비밀 조리법처럼 취급됐다. 어떤 문제를 해결한 이는 자신의 해법을 공유하지 않았다. 그 해법이 지닌 가치를 과대평가했기 때문이다. 그러나 진정한 가치는 해법 자체에 있지 않다. 해법을 얼마나 잘 적용하고, 궁극적으로는 게이머에게 얼마나 즐거운 게임 경험을 제공하는지가 관건이다.

새로운 게임 메카닉과 멋진 게임 플레이를 위해 써야 할 시간과 노력이 케케묵은문제를 또 다시 해결하는 데 낭비된다. 정보가 제대로 공유되지 못해서 생기는 문제이며, 나를 가장 허탈하게 만드는 현실이다. 렌더링 시스템, 회전하는카메라, 인벤토리 시스템, 파일 처리 코드 등은 수십 년간, 수십 만의 프로그래머에 의해 반복해서 구현됐다. 분명히 지금 이 순간에도, 머리를 긁적이며이런 기능을 구현하기 위해 골머리를썩고 있는 프로그래머가 있을 것이다. 그런데 유니티의 등장과 위키와 애셋 스토어에 코드를 공개하는 개발자들로 인해 이런 풍토가 변하고 있다. 한편 게임을 만들고 싶지만 리소스가없는 경우도 있다. 유니티는 개발자가꿈꾸던 게임을 만들기 위해 필요한 그래픽, 3D 모델, 스타터 키트(starter kit), 스크립트를 손쉽게 구할 수 있는 경로를 제공한다. 3D 모델이 필요한가? 아니면 프로그래밍 능력이 부족한가? 유니티에서는 드래그앤드롭 방식으로 손쉽게 사용할 수 있는 프로그래밍 시스템을 바로 구입해서 사용할 수 있다. 이런 변화는 소규모 개발팀에 큰 힘을 실어준다. 또한 게임이 만들어지는 방식에 대한 지식을 전파하고, 새로운 구현에 대한 부담을 덜어줌으로써 개발자들이 게임 자체에 좀 더 집중할 수 있는 환경을 조성한다.

이 책을 통해 이루고 싶은 소망 중 하나는 게임 개발을 둘러싼 작은 비밀의 장막을 들추는 것이다. 게임을 만들기 위해서 수십억의 자금, 거대한 스튜디오, 황금으로 치장한 오토바이를 탄 공룡이 필요한 것은 아니다. 약간의 지식과 모든 것을 쏟아 붓겠다는 의지면 충분하다. 나는 당신의 성공을 기원한다. 내 친구들은물로 그들의 친구까지, 모두 당신의 성공을 기원하며, 당신이 멋진 게임을 만들기를 원한다. 이때 어떤 기술적 문제가 발목을 잡는다면, 내가 할 수 있는 최선은 이 책을 통해서 문제 해결에 도움을 주는 것이다. 이 책을 통해서 엔진, 도구, 시스템 등을 익히는 데 소요될 3주의 시간을 단축할 수 있다면, 더 좋은 게임을 만들기 위한 그만큼의 시간을 벌었다고할 수 있다. 나는 잘 만든 게임을 사랑한다. 게임을 완성한다면 연락해주길 바란다. 당신의 게임을 꼭 플레이해보고 싶다.

옮긴이 소개

조형재

서울대학교 미술대학에서 금속공예를 전공했고, KAIST 문화기술대학원에서 게임 내러티브에 관한 연구로 석사 학위를 취득했다. 2000년 이후부터 3D 애니메이션스튜디오를 거쳐 주로 게임 개발사에서 근무했다. 2013년 현재 온라인 게임 개발사에 근무하고 있다. 구체적인 약력은 개인 홈페이지(www.zorotoss.com)에서 확인할 수 있다. 유니티와 관련해서는 가천대학교와 동국대학교 창업지원단 등에서 강의를 맡았으며, 번역서로는 에이콘 출판사에서 출간된 『Unity 3D Game Development by Example 한국어판』, 『유니티 3D 모바일 게임 아트』, 『Unity 3 Blueprint 한국어판』, 『Unity 3.x Game Development Essentials 한국어판』, 『Unity 3 Game Development Hotshot 한국어판』이 있다.

옮긴이의 말

이 책은 iOS 플랫폼을 기반으로 하는 게임의 기획, 개발, 출시까지의 과정을 설명한 책이다. 유니티에 대한 기본적 지식을 갖춘 상태에서, iOS 게임 개발을 처음으로 시도하는 독자라면 참고할 만한 내용이 많은 유익한 책이다. 특히 모바일 플랫폼에서 레이싱 게임 개발을 처음 시도하는 독자라면 현재 시중에 나와있는 관련 서적 중에서 가장 적합한 책이 아닐까 싶다. 애플 개발자 프로그램 가입과 게임 심사와 출시에 수반된 복잡한 과정을 비교적 상세하게 설명하고, 이를 유니티에서의 iOS 게임 프로젝트 개발을 통해 실습하기 때문이다. 반면 유니티를 처음 접하는 독자에게는 이 책의 설명이 다소 어렵게 느껴질 수 있다. 또한 실전에 바로 활용할 수 있는 다양한 기법을 바라는 독자에게는 일부 내용, 특히 초반에 게임 기획에 관한 내용이나 게임 홍보에 관한 지침 등은군더더기처럼 여겨질 수도 있다. 역자로서 냉정히 말한다면, 1장을 비롯한 일부 내용은 건너뛰어도 문제될 것은 없다. 개발자라면 이미 알고 있을 내용도 많고, 무엇보다 유니티와 크게 관련이 없는 내용이기 때문이다.

그러나 이렇게 생각해 보자. 중간에 접히거나, 계획보다 몇 배나 오래 지연되는 개발 프로젝트를 주위에서 흔히 볼 수 있다. 그런 시행 착오의 원인이 엔진에 대한 세부적인 지식이 부족해서일까, 아니면 너무도 당연한 개발의 원칙에 소홀했기 때문일까? 물론 이 책은 후자를 설명하기 위한 책은 아니다. 독자 역시 그런 내용을 기대하고 이 책을 구매하지는 않았을 것이다. 그러나 본격적인 학습에 앞서 마음을 정리하고, 경험을 되새긴다는 차원에서 저자의 이야기를 들어본다면, 결코 무익한 경험은 아닐 것이다.

이 책만으로 유니티와 iOS 모바일 게임 개발이라는 두 마리 토끼를 모두 잡지는 못할 것이다. 그러나 짧은 시간안에 두 마리 토끼를 잡는 재미를 맛보여주는 역할은 충분히 할 것으로 기대한다. 핸드폰에 자신이 만든 첫 게임을 담아 친구에게 선보일 때의 뿌듯함. 이 책을 통해 독자 제현이 그런 뿌듯함을 경험하기를 희망한다.

목차

목차
  • 1장 게임 기획
  •   1.1 게임 개발의 실체
  •   1.2 플레이 테스트
  •   1.3 iOS 플랫폼에 대한 고려
  •   1.4 선택과 집중
  •   1.5 프로젝트 분석
  •   1.6 사전 제작
  •   1.7 마인드매핑
  •   1.8 스크립팅과 스토리보딩
  •   1.9 간트차트
  •   1.10 작업 리스트 관리
  •   1.11 문서 작성 소프트웨어
  •   1.12 게임 기획 문서 작성
  •   1.13 프로젝트 관리
  •   1.14 소규모 프로젝트 관리
  •   1.15 작업 시간 설정과 준수
  •   1.16 작업 리스트
  •   1.17 건강 관리
  •   1.18 커뮤니케이션
  •   1.19 게임의 이상 징후
  •   1.20 테스트와 QA
  •   1.21 버그 리포트

  • 2장 iOS 개발 준비
  •   2.1 유니티 라이선스 종류
  •   2.2 애플 개발자 프로그램
  •   2.3 개발자 프로그램 종류
  •   2.4 iOS 개발 준비 과정 요약
  •   2.5 개발자 도구
  •   2.6 iOS 개발 센터
  •   2.7 증명서, 식별자, 프로파일 관리
  •   2.8 개발 증명서 설치
  •   2.9 iOS 장비 등록
  •   2.10 APP ID 생성
  •   2.11 프로비저닝 프로파일 설정

  • 3장 유니티와 맥의 iOS 개발 설정
  •   3.1 유니티
  •   3.2 유니티 iOS 플레이어 세팅
  •   3.3 유니티 리모트
    • 3.4 유니티 리모트 설치

  • 4장 유니티 에디터
  •   4.1 유니티 프로젝트의 구성 요소
  •   4.2 유니티 에디터 인터페이스
  •   4.3 씬 둘러보기
  •   4.4 씬에서 오브젝트 찾기
  •   4.5 물리: PhysX
  •   4.6 팁

  • 5장 유니티 iOS 게임 제작 1: 공굴리기 게임
  •   5.1 게임 개요
  •   5.2 컨트롤 시스템
  •   5.3 게임 제작
  •   5.4 iOS 빌드와 테스트
  •   5.5 개선 사항

  • 6장 유니티 iOS 게임 제작 2: 카트 레이싱 게임
  •   6.1 게임 개요
  •   6.2 컨트롤
  •   6.3 게임 제작
  •   6.4 카트 텍스처 선택
  •   6.5 UI
  •   6.6 음향 효과
  •   6.7 개선 사항

  • 7장 디버깅과 스크립트 최적화
  •   7.1 디버깅
  •   7.2 디버깅 전략
  •   7.3 콘솔 디버깅
  •   7.4 PlayerPrefs 및 애플리케이션 생성 데이터
  •   7.5 스크립트 최적화
  •   7.6 프로파일러 (유니티 프로)

  • 8장 파일 크기와 최적화
  •   8.1 텍스처 임포트 설정
  •   8.2 텍스처 압축
  •   8.3 품질 대 물량
  •   8.4 모델링 척도
  •   8.5 오디오
  •   8.6 드로콜 배칭
  •   8.7 오클루전 컬링 (유니티 프로)

  • 9장 아이튠즈 스토어
  •   9.1 심사 과정
  •   9.2 제출 준비
  •   9.3 아이튠즈 커넥트
  •   9.4 심사 제출
  •   9.5 심사 통과 이후
  •   9.6 iOS 마케팅
  •   9.7 홍보 요령

  • 10장 창의적 사고
  •   10.1 게임 개발의 민주화
  •   10.2 엑스코드 프로젝트 코드 수정
  •   10.3 앱 내부 결제
  •   10.4 유니티 iOS의 활용과 기능 확장을 위한 플러그인
  •   10.5 다른 플랫폼으로 포팅
  •   10.6 테스트플라이트를 이용한 테스트 빌드 배포
  •   10.7 맨티스
  •   10.8 유니티 온라인 커뮤니티

도서 오류 신고

도서 오류 신고

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

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

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