Top

유니티 2D 디펜스 게임은 이렇게 만든다 [올인원 프로젝트와 연습 문제로 나만의 게임을 만들어보자]

  • 원서명Getting Started with Unity 5.x 2D Game Development (ISBN 9781784397173)
  • 지은이프란세스코 사피오(Francesco Sapio)
  • 옮긴이송지연
  • ISBN : 9791161751306
  • 35,000원
  • 2018년 04월 02일 펴냄
  • 페이퍼백 | 580쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
42페이지의 Sugar Mountain 애셋은 여기에서 내려 받으세요.
요약

프로젝트 전체가 포함돼, 모든 스크립트와 이미지 소스를 보며 초보자도 쉽게 따라 할 수 있도록 간단한 C# 문법 설명과 유니티 설치부터 퍼블리싱까지 상세히 설명한다. 세심하고 체계적으로 만들어 놓은 연습 문제를 통해 프로젝트를 완벽하게 이해하고, 더 나아가 원하는 게임을 만들 수 있는 기술적 능력이 향상될 것이다. 2D를 기반으로 전반적인 유니티의 구동 원리와 게임을 위한 프로젝트 구성법을 익히고 이를 완벽하게 이해한다면 3D 게임을 완성하는 날도 멀지 않았다.

이 책에서 다루는 내용

■ 2D 게임 개발을 위한 에셋의 임포트와 셋업
■ 동적, 반응형 유저 인터페이스의 디자인과 구현
■ 복잡한 애니메이션 시스템의 생성과 제어
■ 물리 엔진의 모든 가능성 개방
■ NPC에 지능을 부여하는 인공지능 알고리즘 구현
■ 게임 플레이와 모든 아이디어를 실현시키는 스크립트

이 책의 대상 독자

수업이나 강의용 자료로 쓰는 학계 교수나 교사를 비롯한 학생, 게임 애호가 등 게임에 관심 있는 모든 사람을 위한 책이다.

이 책의 구성

1장, '유니티의 평면 월드'에서는 유니티에서의 2D 월드에 대한 소개를 담고 있다. 여러분의 프로젝트를 설정하고, 에셋을 임포트해 사용할 준비를 하는 방법을 다루고 있다. 특히 스프라이트 에디터(Sprite Editor) 사용법에 대해 자세히 볼 것이다.
2장, '컵케이크 타워 굽기'에서는 게임 내에서 코드를 통합하는 방법을 설명한다. 유니티의 중요하고 근본적인 개념을 다룰 것이며, 구축하고자 하는 타워 디펜스 게임을 위한 컵케이크 타워의 행동 양식을 만들기 시작함으로써 게임 오브젝트를 스크립트 하는 방법을 보게 될 것이다.
3장, '플레이어와의 대화-유저 인터페이스'에서는 유저 인터페이스(UI)를 사용해 플레이어에게 피드백을 제공하는 중요한 태스크를 다룰 것이다. UI 구축 시 고려해야 하는 일반적인 원칙을 짚어가며 이를 디자인하는 방법을 배우고, 유니티의 UI 시스템에서 이를 구현하는 방법을 배운다.
4장, '더는 혼자가 아니다-단 걸 좋아하는 판다의 습격'에서는 플레이어의 케이크를 훔치려고 하는 단 걸 좋아하는 판다를 소개한다. 스프라이트 시트를 시작으로, 유니티 머신의 강력한 애니메이션 시스템을 사용해 캐릭터에 생명을 불어넣는 방법을 배우게 된다.
5장, '비밀 재료는 약간의 물리학'에서는 물리학의 비밀을 명확하고 쉬운 설명을 통해 깊이 있게 다뤄, 물리학의 기초를 파악할 수 있다. 또한 유니티의 2D 물리 엔진을 사용하는 방법을 배운다.
6장, '스프링클 바다를 지나-인공지능 내비게이션'에서는 비디오 게임에 적용되는 인공지능의 세계를 소개한다. 여러분은 2D(심지어는 3D) 게임을 위한 내비게이션 시스템의 기본 원리와 유니티에서 이를 구현하는 방법을 배우게 될 것이다. 이로써 우리는 단 걸 좋아하는 끔찍한 판다가 이동할 수 있게 만든다.
7장, '컵케이크 거래 시스템과 케이크를 위한 궁극의 전투-게임 플레이 프로그래밍'에서는 프로그래밍 이전까지 보고 배운 모든 것을 총망라해 타워 디펜스 게임을 마무리한다. 특히 게임의 서로 다른 파트를 이어주는 접착제 역할을 하는 게임 플레이 프로그래밍을 다룰 것이다.
8장, '케이크 너머에는 무엇이 있는가?'에서는 게임과 게임 개발의 다양한 측면에 대해 전반적으로 살펴볼 것이다. 여러분이 이 책을 통해 구축한 게임을 향상시키기 위한 다양한 팁과 트릭, 제안을 살펴보면서 더 나은 게임 개발자가 되기 위한 여러분만의 기술도 한층 더 연마할 수 있을 것이다. 그런 다음 게임 그 자체의 개발과는 조금 동떨어진 듯 보이는 게임 개발 파이프라인의 각 분야를 살펴볼 것이다. 즉, 플레이 테스트, 최적화, 팀 관리 및 운영, 문서화 작업, 게임 퍼블리싱을 위한 준비 작업, 마케팅, 소셜 미디어, 게임 보호(protections) 심지어 현지화 작업에 이르는 다양한 분야를 살펴봄으로써 게임 개발 전반에 대한 깊이 있는 이해를 얻게 될 것이다.

저자/역자 소개

지은이의 말

팩트출판사로부터 이 책의 집필을 제안받았을 때, 우리는 기존에 출간된 책보다 평범한 내용을 전하고자 기획했다. 글을 쓰는 동안, 선반에 꽂혀 있는 많은 책은 실제로 게임을 만들기 위한 지식을 사용하는 방법에 대한 실질적인 통찰력을 주지 않고 기본을 가르치고 있다는 사실을 깨닫게 됐다. 그래서 처음 세웠던 이 책에 대한 방침에서 살짝 벗어나기로 했다. 그 결과, 2D 게임 개발에 중점을 둔 유니티에 관한 다소 확고한 매뉴얼로 바뀌었다. 이 책은 여러분이 배운 다양한 툴의 완전성이나 실용성을 해치지 않으면서 독자가 이해하기 쉽게 만들기 위해 큰 노력을 기울인 결과다. 그러므로 많은 사용 예와 함께 자세히 설명을 달았다.
또한 나는 다른 많은 책이 독자가 자체 기술을 향상시킬 수 있는 연습 문제를 제공하는 ‘숙제’가 충분치 않다고 느꼈다. 실은, 이 ‘숙제’ 절이 매우 중요하다. 여러분이 스스로 도전하고, 친구나 같은 수업을 듣는 이 또는 동료와 함께 책에 나와 있는 내용을 넘어선 토론을 하고 싶을 때 이 숙제 절이 공통 관심사가 될 수 있기 때문이다. 게임은 대개 재능 넘치고 열정적인 사람들이 모여 서로 조화를 이룬 노력의 결과이기 때문에 게임 개발 분야에서의 협업은 매우 중요하다.
곧 보게 되겠지만 컵케이크, 스프링클, 맛있는 플레이어의 케이크를 먹으려고 안달하는 단 걸 좋아하는 판다와 같은 즐겁고 달달한 테마를 얹힌 타워 디펜스 게임을 구축해 다양한 툴을 배울 수 있도록 지원한다. 독자 여러분은 이 프로젝트를 통해 이 책의 내용을 더욱 쉽게 이해하고, 실질적인 기술도 개발할 수 있게 될 것이다.
지식을 갈구하는 학생, 수업에 사용할 교재를 찾고 있는 교수, 유니티를 시험해보고자 하는 (또는 유니티에 대한 이해를 넓히고자 하는) 게임 개발 전문가, 혹은 게임을 취미로 하는 열정적인 분, 누가 됐든 이 책을 즐기기 바란다.

지은이 소개

프란세스코 사피오(Francesco Sapio)

이탈리아 로마 라 사피엔차 대학(Sapienza University of Rome)에서 컴퓨터 사이언스 및 제어 공학 학위를 받았으며, 두 학기나 조기 졸업한 수재이다. 현재 같은 대학에서 인공지능과 로봇 공학 분야에서 석사 과정을 밟고 있다. 유니티 3D(Unity 3D) 및 언리얼(Unreal) 전문가이자 숙련된 게임 디자이너며, 주요 그래픽 프로그램을 자유자재로 다루는 유저다. 고등학생을 대상으로 물리학 개념을 배우는 교육용 게임인 게임@스쿨(Game@School)과 어린이를 위한 크로스 플랫폼 시리즈인 스티커북(Sticker Book) 시리즈를 개발했다. 또한 프로스페리티-이탈리아 1434(Prosperity-Italy 1434) 및 이노보이스(Innovoice)라는 오픈 온라인 공동 창작 시스템의 컨설턴트로 일했다. 게임 개발에 관한 많은 책을 썼다. 팩트출판사에서 『Unity UI Cookbook』(2015)과 e-book으로 『What do you need to know about Unity』(2016)를 썼다. 『Unity 5.x 2D Game Development Blueprints』(2016)를 공동 저술했으며, 이는 비디오 버전으로 변형해 『Unity 5.x Game Development Projects』(2017)로 출간했다. 또한 『Game Physics Cookbook』(Packt, 2017), 『Unity 5.x By Example』(에이콘, 2016), 『Unity Game Development Scripting』(Packt, 2014)의 감수를 맡기도 했다.

옮긴이의 말

이 책을 읽고 있다면 직업이 프로그래머든, 디자이너든, 회사원이든, 학생이든, 만들기에 관심이 있는 분이 틀림없다. 만드는 것이 게임이든, 앱이든, 그림이든, 레고든 상관없이 말이다. 만들고자 하는 것이 무엇이냐에 따라 들어가는 시간과 물자 등은 천차만별이지만, 기본적인 요소로 분류한다면 재료, 도구, 나름의 스킬 그리고 아이디어가 필요하다. 예를 들어, 윷놀이 게임을 만든다고 생각해 보자. 설날에 가족들이 모여 앉아 함께 즐길 수 있는 실물의 윷놀이 게임을 만들려면 물리적인 말판과 윷, 말과 가상적인 윷놀이 게임 규칙이 있어야 한다. 그 가운데 말판을 만들려면 재료인 종이, 도구인 연필, 말판이 삐뚤어지지 않고 보기 좋게 그리는 스킬, 말판을 동그랗게 그릴지 정사각형으로 그릴지 하는 아이디어가 필요하다. 윷과 말 역시 같은 방식으로 분류할 수 있다. 그렇다면 노트북에서 실행되는 윷놀이를 만들려면 무엇이 필요할까? 이에 대한 답을 금방 하는 분도 있을 것이고, 전혀 감이 오지 않는다는 분도 있을 것이다. 아무것도 모르겠다는 분도 걱정하지 말라. 이 책에는 재료, 도구, 스킬, 아이디어, 이 네 가지 모두 들어 있다.
여기서 첫 번째인 재료는 흔히 '리소스'라고 부르는 그래픽적 요소와 처음 보는 사람에게는 외계어 같은 '스크립트'가 소스 그대로 들어 있다. 두 번째 도구로는 '유니티'가 사용된다. 유니티에 관한 글은 너무나 많이 나와 있으며, 관련 커뮤니티가 잘 돼 있기 때문에 여기서는 따로 언급하지 않겠다. 세 번째인 '스킬', 흔히 노하우로도 불리는 이 스킬에 있어 저자는 도가 텄다. 도구인 유니티를 잘 이해하고 사용할 수 있도록 그만의 노하우를 세심히 잘 정리했을 뿐만 아니라, 산 넘어 산이라 생각하기 쉬운 스크립트에 관한 기술도 필요한 만큼 정리돼 있다. 마지막인 아이디어는 기본적인 '타워 디펜스 게임'을 목표로 처음부터 끝까지 모든 과정이 준비돼 있다.
‘어? 처음부터 끝까지? 그럼, 이 책도 따라 하기 책이겠군’이라고 생각하는 분도 계실 것이다. 그렇다. 우리는 지금까지 정말 많은 따라 하기 책을 봐왔다. 이런 종류의 책은 분야도 정말 다양한데, 그 공통점은 처음부터 끝까지 따라 하면 “짜잔! 프로젝트가 이렇게 완성됐어요!”하고 끝난다. 그렇다면 이런 책을 보며 한번 만들어본 다음, 내가 만들고 싶은 것을 만들 수 있는 독자는 얼마나 될까? 어쩌면 대부분은 어디를 어떻게 고쳐야 할지조차 모르고 포기했을 것이다. 나는 이런 책이 나쁘다는 얘기를 하는 것이 아니라, 무언가를 새로 만들고 싶은 사람에게는 맞지 않다는 것을 말하고 싶다. 왜 그럴까? 그것은 바로 연습이 없기 때문이다. 저자는 이런 점을 통감해 이 책을 한 번 읽고 따라 하고 연습한 사람은 적어도 예제를 변형해서라도 자기가 만들고 싶은 것에 조금이라도 가깝게 다가갈 힘을 기를 수 있도록 하고 싶었다고 밝힌다.
번역하면서도 연습 문제 부분은 고난이었다(참고로 나는 저자의 의도에 따라 번역했는지 확인하기 위해 여기 나온 연습 문제를 다 풀어 보고 저자에게 다 검토받고 수정했다). 특정 장에 따라서는 양에 압도되기도 했지만, 무엇보다 놀라운 것은 그 촘촘함이었다. 저자는 입문자와 어느 정도 스킬이 있는 독자, 모두가 연습 문제를 통해 실력을 다질 수 있도록 만들었다. 어쩌면 이 연습 문제는 당신을 괴롭힐 것이다. 하지만 절대 지지 말고 되든 안 되든 자꾸 해보길 강력히 권한다. 연습 문제가 너무나 고단하다 싶은 분은 할 수 있는 데까지만 하고, 일단 처음부터 끝까지 만든 다음, 각 파라미터의 수치를 바꿔 보거나 악당이라 보기 힘든 이 책의 주인공 캐릭터인 ‘사악한 판다’ 대신 나만의 캐릭터를 만들어 넣어 본다든가 하며 말 그대로 가지고 놀아 보길 권한다. 그러다 보면 어느 순간 ‘아! 여기가 이렇게 되는 건 이것 때문이구나’라는 생각이 들게 되고 하나씩 알아가는 즐거움에 빠져 어느새 만들고 싶었던 게임을 만들고 있는 자신을 발견하게 될 것이다.
그렇다. 한 번에 할 수 있는 것은 아무것도 없다. 무엇보다 중요한, 만들기를 좋아하는 당신이라면 이 책을 곁에 있는 한 문제 없다. “행동은 모든 성공의 기본 열쇠다”라는 화가 피카소의 말처럼 일단 저지르고 마음껏 즐기기를 바란다.

옮긴이 소개

송지연

수학과를 졸업한 후, 일본에서 컴퓨터 그래픽 프로그래밍을 전공했다. 그 후 15년 넘게 일본과 한국의 3D 제작, 게임, 콘텐츠 제작, 앱 제작 업체에서 프로그래머이자 엔지니어로 활동했다. 이 경험을 바탕으로 현재는 IT 전문 도서 번역 및 편집자로서 새로운 기술과 생각을 알리는 데 노력하고 있다. 번역 및 편집한 도서로는 『모바일 우선주의』(웹액츄얼리코리아, 2017), 『터치를 위한 디자인하기』(웹액츄얼리코리아, 2017), 『모바일을 위한 웹디자인』(웹액츄얼리코리아, 2016), 『다카무라 제슈 스타일 슈퍼 패션 데생』(에이케이커뮤니케이션즈, 2015) 등이 있다.

목차

목차
  • 1장. 유니티의 평면 월드
    • 게임 개발 배우기
    • 타워 디펜스 게임
    • 게임 디자인하기
    • 준비하기
    • 미래를 구축하기 위한 과거의 기억
    • 프로젝트 구성하기
    • 2D 월드
    • 스프라이트

  • 2장. 컵케이크 타워 굽기
    • 2D 오브젝트
    • 게임 오브젝트의 부모
    • 월드 좌표계와 로컬 좌표계의 차장점
    • Z-버퍼링을 이용한 레이어 순서 정하기
    • 지도 펼치기
    • 레이어와 태그
    • 프리팹
    • 게임 뷰
    • 수학적 배경 지식
    • 유니티에서 스크립트 작성하기
    • 스프링클 만들기
    • 컵케이크 타워 굽기
    • 유니티에서 코딩하기 위한 추가 정보
    • 숙제
    • 요약

  • 3장. 플레이어와의 대화-유저 인터페이스
    • 준비하기
    • 유저 인터페이스 디자인
    • 유저 인터페이스 프로그래밍
    • 유저 인터페이스 시스템
    • 유저 인터페이스 스크립트
    • 우리 게임을 위한 인터페이스 디자인
    • UI를 위한 씬 준비
    • 헬스 바 만들기
    • 슈거 미터 구현하기
    • UI 스크립트에 대한 추가 정보-핸들러
    • 남아 있는 것은?
    • 숙제
    • 요약

  • 4장. 더는 혼자가 아니다-단 걸 좋아하는 판다의 습격
    • 준비하기
    • 애니메이션
    • 애니메이션에 대한 추가 정보
    • 애니메이션을 만들자!
    • 숙제
    • 요약

  • 5장. 비밀 재료는 약간의 물리학
    • 준비하기
    • 비디오 게임에서의 물리
    • 물리-기본
    • 유니티 물리 엔진
    • 물리 컴포넌트
    • 리지드바디
    • 콜라이더
    • 조인트
    • 이펙터
    • Physics Material 2D
    • 유니티에서 물리 다루기
    • 물리에 대한 기타 사항
    • 우리 게임을 위한 물리
    • 숙제
    • 요약

  • 6장. 스프링클 바다를 지나-인공지능 내비게이션
    • 준비하기
    • 인공지능에 대한 소개
    • 비디오 게임에서 인공지능의 중요성
    • 내비게이션
    • 적을 위한 웨이포인트
    • 웨이포인트 좌표 얻기
    • 웨이포인트 구현-첫 번째, 정적인 방법
    • 웨이포인트의 구현-두 번째, 동적인 방법
    • 게임에서의 인공지능에 대한 추가 정보
    • 숙제
    • 요약

  • 7장. 컵케이크 거래 시스템과 케이크를 위한 궁극의 전투-게임 플레이 프로그래밍
    • 준비하기
    • 게임 플레이 프로그래밍이란?
    • 우리 게임 완성을 위한 계획
    • 컵케이크 타워의 거래
    • 타워 배치하기
    • 타워 선택하기
    • 게임 매니저
    • 판다의 침략-판다 스포닝
    • 메인 메뉴
    • 7장에서 배운 기술
    • 숙제
    • 요약

  • 8장. 케이크 너머에는 무엇이 있는가?
    • 게임 향상 및 개선
    • 더 나은 게임 개발자가 되기 위한 유니티 스킬의 연마와 확장
    • 게임 분위기 개선하기
    • 팀워크
    • 게임을 빛나게
    • 온라인에서의 존재감 만들기
    • 퍼블리싱 준비하기
    • 현지화
    • 윤리적인 고려 사항
    • 요약
    • 마지막 노트와 작별 인사

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

42페이지의 Sugar Mountain 애셋은 여기에서 내려 받으세요.

[p.5 : 감사의 말 1행]
빌어
->
빌려

[p.55 : 7]
깊이로써
->
깊이로서

[p.72]
레벨로써의 씬
->
레벨로서의 씬

[p.102 : 3행]
속도라던가
->
속도라든가

[p.108 : 아래에서 2행]
방향에 (1, 1, 0)이라던가
->
방향에 (1, 1, 0)이라든가

[p.111 : 7행]
판다에 맞선 그 유형부류
->
판다에 맞는 그 유형부류

[p.121 : 4행]
파라미터로써
->
파라미터로서

[p.151 : 1행]
레이블로써
->
레이블로서

[p.360 : 1행]
통과하지 못할 수 없는지
->
통과할 수 없는지

[p.379 : 아래에서 6행]
잊혀진
->
잊힌

[p.406 : 코드 2행]
nimator.SetTrigger
->
animator SetTrigger

[p.409 : 아래에서 5행]
해결책으로써 쓰기에는
->
해결책으로 쓰기에는

[p.410 : 마지막 행]
추측한대로
->
추측대로

[p.419 : 마지막 행]
이야기한대로
->
이야기한 대로

[p.452 : 마지막 행]
의도한대로
->
의도한 대로

[p.459 : 아래에서 2행]
보상으로써
->
보상으로

[p.469 : 아래에서 5행]
예로써
->
예를 들어

[p.448 : 아래에서 4행]
umberOfPandasPerWave
->
numberOfPandasPerWave

[p.518 : 1행]
빌어서라도
->
빌려서라도

[p.550 : 8행]
인디에고고
->
인디고고

[p.551 : 5행]
성향을 띄지만
->
성향을 띠지만

[p.554 : 3행]
올린다던가 기능에 대한 호기심을 자극하는 사진을 올리는 등이
->
올리거나 기능에 대한 호기심을 자극하는 사진을 올리는 것 등이

[p.554 : 9행]
일부로써
->
일부로