유니티 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) 심지어 현지화 작업에 이르는 다양한 분야를 살펴봄으로써 게임 개발 전반에 대한 깊이 있는 이해를 얻게 될 것이다.
목차
목차
- 1장. 유니티의 평면 월드
- 게임 개발 배우기
- 타워 디펜스 게임
- 게임 디자인하기
- 준비하기
- 미래를 구축하기 위한 과거의 기억
- 프로젝트 구성하기
- 2D 월드
- 스프라이트
- 2장. 컵케이크 타워 굽기
- 2D 오브젝트
- 게임 오브젝트의 부모
- 월드 좌표계와 로컬 좌표계의 차장점
- Z-버퍼링을 이용한 레이어 순서 정하기
- 지도 펼치기
- 레이어와 태그
- 프리팹
- 게임 뷰
- 수학적 배경 지식
- 유니티에서 스크립트 작성하기
- 스프링클 만들기
- 컵케이크 타워 굽기
- 유니티에서 코딩하기 위한 추가 정보
- 숙제
- 요약
- 3장. 플레이어와의 대화-유저 인터페이스
- 준비하기
- 유저 인터페이스 디자인
- 유저 인터페이스 프로그래밍
- 유저 인터페이스 시스템
- 유저 인터페이스 스크립트
- 우리 게임을 위한 인터페이스 디자인
- UI를 위한 씬 준비
- 헬스 바 만들기
- 슈거 미터 구현하기
- UI 스크립트에 대한 추가 정보-핸들러
- 남아 있는 것은?
- 숙제
- 요약
- 4장. 더는 혼자가 아니다-단 걸 좋아하는 판다의 습격
- 준비하기
- 애니메이션
- 애니메이션에 대한 추가 정보
- 애니메이션을 만들자!
- 숙제
- 요약
- 5장. 비밀 재료는 약간의 물리학
- 준비하기
- 비디오 게임에서의 물리
- 물리-기본
- 유니티 물리 엔진
- 물리 컴포넌트
- 리지드바디
- 콜라이더
- 조인트
- 이펙터
- Physics Material 2D
- 유니티에서 물리 다루기
- 물리에 대한 기타 사항
- 우리 게임을 위한 물리
- 숙제
- 요약
- 6장. 스프링클 바다를 지나-인공지능 내비게이션
- 준비하기
- 인공지능에 대한 소개
- 비디오 게임에서 인공지능의 중요성
- 내비게이션
- 적을 위한 웨이포인트
- 웨이포인트 좌표 얻기
- 웨이포인트 구현-첫 번째, 정적인 방법
- 웨이포인트의 구현-두 번째, 동적인 방법
- 게임에서의 인공지능에 대한 추가 정보
- 숙제
- 요약
- 7장. 컵케이크 거래 시스템과 케이크를 위한 궁극의 전투-게임 플레이 프로그래밍
- 준비하기
- 게임 플레이 프로그래밍이란?
- 우리 게임 완성을 위한 계획
- 컵케이크 타워의 거래
- 타워 배치하기
- 타워 선택하기
- 게임 매니저
- 판다의 침략-판다 스포닝
- 메인 메뉴
- 7장에서 배운 기술
- 숙제
- 요약
- 8장. 케이크 너머에는 무엇이 있는가?
- 게임 향상 및 개선
- 더 나은 게임 개발자가 되기 위한 유니티 스킬의 연마와 확장
- 게임 분위기 개선하기
- 팀워크
- 게임을 빛나게
- 온라인에서의 존재감 만들기
- 퍼블리싱 준비하기
- 현지화
- 윤리적인 고려 사항
- 요약
- 마지막 노트와 작별 인사
도서 오류 신고
정오표
정오표
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행]
일부로써
->
일부로