유니티 2D 디펜스 게임은 이렇게 만든다 - 올인원 프로젝트와 연습 문제로 나만의 게임을 만들어보자 (프란세스코 사피오, 2018)

시나리오/게임기획|2022. 11. 13. 21:00

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


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

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

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

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

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

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

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

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


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


송지연(옮긴이)의 말
이 책을 읽고 있다면 직업이 프로그래머든, 디자이너든, 회사원이든, 학생이든, 만들기에 관심이 있는 분이 틀림없다. 만드는 것이 게임이든, 앱이든, 그림이든, 레고든 상관없이 말이다. 만들고자 하는 것이 무엇이냐에 따라 들어가는 시간과 물자 등은 천차만별이지만, 기본적인 요소로 분류한다면 재료, 도구, 나름의 스킬 그리고 아이디어가 필요하다. 예를 들어, 윷놀이 게임을 만든다고 생각해 보자. 설날에 가족들이 모여 앉아 함께 즐길 수 있는 실물의 윷놀이 게임을 만들려면 물리적인 말판과 윷, 말과 가상적인 윷놀이 게임 규칙이 있어야 한다. 그 가운데 말판을 만들려면 재료인 종이, 도구인 연필, 말판이 삐뚤어지지 않고 보기 좋게 그리는 스킬, 말판을 동그랗게 그릴지 정사각형으로 그릴지 하는 아이디어가 필요하다. 윷과 말 역시 같은 방식으로 분류할 수 있다. 그렇다면 노트북에서 실행되는 윷놀이를 만들려면 무엇이 필요할까? 이에 대한 답을 금방 하는 분도 있을 것이고, 전혀 감이 오지 않는다는 분도 있을 것이다. 아무것도 모르겠다는 분도 걱정하지 말라. 이 책에는 재료, 도구, 스킬, 아이디어, 이 네 가지 모두 들어 있다.

 

여기서 첫 번째인 재료는 흔히 '리소스'라고 부르는 그래픽적 요소와 처음 보는 사람에게는 외계어 같은 '스크립트'가 소스 그대로 들어 있다. 두 번째 도구로는 '유니티'가 사용된다. 유니티에 관한 글은 너무나 많이 나와 있으며, 관련 커뮤니티가 잘 돼 있기 때문에 여기서는 따로 언급하지 않겠다. 세 번째인 '스킬', 흔히 노하우로도 불리는 이 스킬에 있어 저자는 도가 텄다. 도구인 유니티를 잘 이해하고 사용할 수 있도록 그만의 노하우를 세심히 잘 정리했을 뿐만 아니라, 산 넘어 산이라 생각하기 쉬운 스크립트에 관한 기술도 필요한 만큼 정리돼 있다. 마지막인 아이디어는 기본적인 '타워 디펜스 게임'을 목표로 처음부터 끝까지 모든 과정이 준비돼 있다.

 

'어? 처음부터 끝까지? 그럼, 이 책도 따라 하기 책이겠군'이라고 생각하는 분도 계실 것이다. 그렇다. 우리는 지금까지 정말 많은 따라 하기 책을 봐왔다. 이런 종류의 책은 분야도 정말 다양한데, 그 공통점은 처음부터 끝까지 따라 하면 "짜잔! 프로젝트가 이렇게 완성됐어요!"하고 끝난다. 그렇다면 이런 책을 보며 한번 만들어본 다음, 내가 만들고 싶은 것을 만들 수 있는 독자는 얼마나 될까? 어쩌면 대부분은 어디를 어떻게 고쳐야 할지조차 모르고 포기했을 것이다. 나는 이런 책이 나쁘다는 얘기를 하는 것이 아니라, 무언가를 새로 만들고 싶은 사람에게는 맞지 않다는 것을 말하고 싶다. 왜 그럴까? 그것은 바로 연습이 없기 때문이다. 저자는 이런 점을 통감해 이 책을 한 번 읽고 따라 하고 연습한 사람은 적어도 예제를 변형해서라도 자기가 만들고 싶은 것에 조금이라도 가깝게 다가갈 힘을 기를 수 있도록 하고 싶었다고 밝힌다.

 

번역하면서도 연습 문제 부분은 고난이었다(참고로 나는 저자의 의도에 따라 번역했는지 확인하기 위해 여기 나온 연습 문제를 다 풀어 보고 저자에게 다 검토받고 수정했다). 특정 장에 따라서는 양에 압도되기도 했지만, 무엇보다 놀라운 것은 그 촘촘함이었다. 저자는 입문자와 어느 정도 스킬이 있는 독자, 모두가 연습 문제를 통해 실력을 다질 수 있도록 만들었다. 어쩌면 이 연습 문제는 당신을 괴롭힐 것이다. 하지만 절대 지지 말고 되든 안 되든 자꾸 해보길 강력히 권한다. 연습 문제가 너무나 고단하다 싶은 분은 할 수 있는 데까지만 하고, 일단 처음부터 끝까지 만든 다음, 각 파라미터의 수치를 바꿔 보거나 악당이라 보기 힘든 이 책의 주인공 캐릭터인 '사악한 판다' 대신 나만의 캐릭터를 만들어 넣어 본다든가 하며 말 그대로 가지고 놀아 보길 권한다. 그러다 보면 어느 순간 '아! 여기가 이렇게 되는 건 이것 때문이구나'라는 생각이 들게 되고 하나씩 알아가는 즐거움에 빠져 어느새 만들고 싶었던 게임을 만들고 있는 자신을 발견하게 될 것이다.
그렇다. 한 번에 할 수 있는 것은 아무것도 없다. 무엇보다 중요한, 만들기를 좋아하는 당신이라면 이 책을 곁에 있는 한 문제 없다. "행동은 모든 성공의 기본 열쇠다"라는 화가 피카소의 말처럼 일단 저지르고 마음껏 즐기기를 바란다.


출판사 제공 책소개

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

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

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

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

댓글()