[게임 개발 원리에서 기획, 그래픽, 프로그래밍까지]
유니티로 만드는 게임 개발 총론
- 원서명Holistic Game Development with Unity (ISBN 9780240819334)
- 지은이페니 드 빌
- 옮긴이박기성
- ISBN : 9788960774551
- 40,000원
- 2013년 07월 31일 펴냄 (절판)
- 페이퍼백 | 516쪽 | 188*250mm
- 시리즈 : 게임 개발 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
유니티는 프로그래머뿐만 아니라 기획자와 그래픽 디자이너에게도 자신의 상상력을 실현시킬 수 있는 가능성을 제공함으로써 게임 개발의 새로운 장을 열고 있다. 이 책은 얕은 깊이의 단순한 기능적 설명에 그치지 않고, 게임 개발의 근본 원리부터 설명한 다음, 치밀하게 준비된 단계별 실습을 통해 게임 개발 원리를 유니티에서 직접 경험해 보게 해줌으로써, 강력한 게임 개발 도구로서 유니티에 자연스럽게 빠져들게 만드는 책이다. 2011년 유니티 본사에서 시상한 유니티 모바일 세대 위대한 교육상 수상자인 페니 드 빌 박사의 회심의 역작이다.
페니 드 빌 박사는 유니티를 중심으로 광범위한 맥락을 다루는 종합적인 게임 개발 방법을 소개함으로써, 게임을 처음 만들어보는 독자들에게도 쉽게 다가간다.
- 에단 보스보그(Ethan Vosburgh) / 유니티 테크놀로지스 테크니컬 아티스트
[ 이 책에서 다루는 내용 ]
■ 게임 아트와 프로그래밍 과제를 모두 해결해야 하는 개인 개발자와 소규모 팀을 위한 원스톱 해결서
■ 유니티에서 아트 애셋으로 차례차례 따라 하며 게임 전체를 디자인하고 구성하는 방법 학습
■ 기본적인 2D와 3D 관련 수학과 물리 개념 설명
■ 마음껏 사용할 수 있는 무료 게임 메커니즘 모음
■ 프로젝트 소스 코드, 안내 동영상, 아트 애셋 등의 수업 자료를 제공하고, 질의응답을 통한 심층적인 학습을 돕는 웹사이트 제공(www.holistic3d.com)
[ 이 책의 대상 독자 ]
게임 개발을 배우고 싶어 하는 아티스트와 게임 아트를 제대로 활용하고 싶어 하는 프로그래머를 염두에 두고 집필한 책으로서, 디자인을 염두에 두고 프로그래밍을 가르친다는 독특한 접근법을 취한다. 예를 들어 프로그래밍 입장에서 게임의 그래픽 사용자 인터페이스(GUI)를 만든다는 것은, 보기 좋은 인터페이스를 만드는 것과는 전혀 다른 개념이다. 디자인이 프로그래밍과 어떤 영향을 주고 받는지 이해하면 게임 개발의 양면성을 게임 제작에 논리적으로 적용할 수 있다.
[ 이 책의 구성 ]
이 책은 전체적으로 게임 안에 존재하는 역학적인 기능을 다룬다.
1장, 프로그래밍 메커니즘의 예술: 게임 제작에 있어 아트와 프로그래밍의 역할을 설명하며, 어느 한쪽이 간과될 때의 한계점에 대해 살펴본다. 디지털 예술과 프로그래밍의 보완적 특성도 함께 본다.
2장, 실세계 메커니즘: 운동 연구를 다루는 물리학 분야를 살펴본다. 운동은 모든 과학의 근본이 되는 개념으로, 컴퓨터 화면을 가상 세계로 탈바꿈시킨다. 2장에서는 운동과 역학을 설명하는 운동학을 살펴보고 컴퓨터 게임에서 운동의 의미를 어떻게 활용하는지 알아본다. 또한 실세계의 물리적 속성을 소개하고, 어떤 게임 환경에서든 수학과 물리학, 디자인 원칙을 이해해야 한다고 강조한다. 기술, 수학, 프로그래밍 코드와 함께 소개하는 구성과 애니메이션 원칙, 디자인 원리는 캐릭터와 카메라, 환경 및 기타 게임오브젝트의 움직임을 규정한다.
3장, 애니메이션 메커니즘: 2D와 3D 애니메이션 모델의 기술적 특성을 살펴본다. 게임 환경 내에서 코드를 사용해 자신이 만든 아트워크와 모델, 다운로드 받은 애셋을 제어하는 방법과 관련 기술들을 배운다. 기초 수학, 물리학, 프로그래밍 개념을 통해 키프레임의 개념과 애니메이션 상태, 역학적인 캐릭터 움직임, 스프라이트 애니메이션을 소개한다.
4장, 게임 규칙과 메커니즘: 매칭, 분류, 탐색, 타격과 같이 널리 쓰이는 범용 게임 메커니즘을 소개한다. 이런 메커니즘들이 게임 내에서 시각적으로 표시되는 방법을 보여주는 예제와 이런 메커니즘들을 제어하는 프로그램에 대해 상세히 설명한다. 각 메커니즘에 활용되는 일반적인 알고리즘과 데이터 구조는 필요에 따라 주요 아트 애셋과 함께 단계적으로 제시한다.
5장, 캐릭터 메커니즘: 실감나는 NPC 캐릭터를 직접 제작하기 위한 간단한 인공지능 알고리즘을 소개한다. 새떼에서부터 플레이어를 쫓으면서 플레이어와 상호 작용하는 적에 이르기까지, 캐릭터의 동작을 제어하기 위해 3장에서 다뤘던 애니메이션 상태와 기법이 게임 특유의 데이터 구조 및 알고리즘과 통합된다.
6장, 플레이어 메커니즘: 그래픽 사용자 인터페이스를 개발하고 플레이어 상태를 유지하기 위해 활용되는 코드와 아트워크를 소개한다. 인벤토리 시스템, 헤드업 디스플레이, 캐릭터와 환경의 상호 작용 개발을 다룬다.
7장, 환경 메커니즘: 게임 환경 개발 및 최적화의 기본 개념을 소개한다. 환경에 실감나게 표현하기 위한 묘사 방법부터 대규모 맵과 날씨 시뮬레이션을 다루는 요령까지 다양한 기법을 다룬다.
8장, 외부 연결 메커니즘: 수많은 새로운 입력 기기, 소설 데이터와 GPS 장치, 모션 센서, 증강 현실, 화면 크기를 고려한 게임 개발 관련 주제를 다룬다. 그리고 유니티를 활용해서 터치 스크린, 가속도계, 네트워크를 활용한 게임을 안드로이드, 아이폰이나 아이패드 모바일 기기로 배포하는 방법도 배운다.
[ 상세 이미지 ]
목차
목차
- 1장 프로그래밍 메커니즘의 예술
- 1.1 들어가며
- 1.2 우뇌 프로그래밍
- 1.3 좌뇌에서 시작되는 아트 작업
- 1.3.1 점
- 1.3.2 선
- 1.3.3 형태
- 1.3.4 방향
- 1.3.5 크기
- 1.3.6 텍스처
- 1.3.7 색상
- 1.4 게임 엔진의 동작
- 1.4.1 범용 게임 엔진
- 1.4.2 메인 루프
- 1.5 스크립트 기초
- 1.5.1 논리
- 1.5.2 주석
- 1.5.3 함수
- 1.5.4 변수
- 1.5.5 연산자
- 1.5.6 조건문
- 1.5.7 배열
- 1.5.8 오브젝트
- 1.6 게임 아트 애셋 입문
- 1.6.1 2제곱 규칙
- 1.6.2 다른 사람들이 만든 아트 애셋 활용
- 1.7 요약
- 2장 실세계 메커니즘
- 2.1 들어가며
- 2.2 벡터의 원리
- 2.3 2D와 3D 공간의 정의
- 2.3.1 카메라
- 2.3.2 로컬과 월드 좌표계
- 2.3.3 이동과 회전, 스케일링
- 2.3.4 폴리곤과 노멀
- 2.4 3D 게임 엔진에서의 2차원 게임
- 2.4.1 사원수
- 2.5 물리학 법칙
- 2.5.1 중력의 법칙
- 2.5.2 운동 제1법칙
- 2.5.3 운동 제2법칙
- 2.5.4 운동 제3법칙
- 2.6 물리학과 애니메이션 원리
- 2.6.1 찌그러짐과 늘어남
- 2.7 게임 공간 최적화를 위한 2D와 3D 기법
- 2.7.1 폴리곤 줄이기
- 2.7.2 카메라 뷰 볼륨
- 2.7.3 안개
- 2.7.4 텍스처
- 2.7.5 빌보드
- 2.8 요약
- 3장 애니메이션 메커니즘
- 3.1 들어가며
- 3.2 스프라이트
- 3.3 텍스처 아틀라스
- 3.4 애니메이션이 들어간 스프라이트
- 3.5 베이킹된 3D 애니메이션
- 3.6 생체 역학
- 3.7 애니메이션 관리
- 3.7.1 단일 2D 스프라이트 액션
- 3.7.2 단일 파일의 3D 애니메이션
- 3.7.3 블렌딩
- 3.8 2차 애니메이션
- 3.9 요약
- 4장 게임 규칙과 메커니즘
- 4.1 들어가며
- 4.2 게임 메커니즘
- 4.3 주요 메커니즘
- 4.3.1 탐색
- 4.3.2 매칭
- 4.3.3 분류
- 4.3.4 운
- 4.3.5 혼합
- 4.3.6 타이밍
- 4.3.7 진척
- 4.3.8 포획
- 4.3.9 정복
- 4.3.10 회피
- 4.3.11 수집
- 4.4 간단한 게임 메커니즘 개발
- 4.4.1 매칭과 분류
- 4.4.2 발사, 타격, 튀기, 쌓기
- 4.4.3 경주
- 4.4.4 회피와 수집
- 4.4.5 탐색
- 4.5 보상과 벌칙
- 4.6 요약
- 5장 캐릭터 메커니즘
- 5.1 들어가며
- 5.2 가시선
- 5.3 그래프 이론
- 5.4 경유지
- 5.4.1 경유지 탐색
- 5.5 유한 상태 기계
- 5.6 군집
- 5.7 결정 트리
- 5.8 퍼지 로직
- 5.9 유전자 알고리즘
- 5.10 셀룰러 오토마타
- 5.11 요약
- 6장 플레이어 메커니즘
- 6.1 들어가며
- 6.2 게임 구조
- 6.3 게임 인터페이스 디자인 원리
- 6.3.1 사용자 분석
- 6.3.2 은유
- 6.3.3 기능 노출
- 6.3.4 일관성
- 6.3.5 상태 시각화
- 6.3.6 단축키
- 6.3.7 레이아웃
- 6.3.8 초점
- 6.3.9 도움말
- 6.4 인벤토리
- 6.5 순간이동
- 6.5.1 묵시적 순간이동
- 6.5.2 명시적 순간이동
- 6.6 요약
- 7장 환경 메커니즘
- 7.1 들어가며
- 7.2 맵 디자인 기초
- 7.2.1 강조점을 제공하라
- 7.2.2 플레이어의 이동을 인도하고 제한하라
- 7.2.3 비례
- 7.2.4 디테일
- 7.2.5 맵 레이아웃
- 7.2.6 기타 고려사항
- 7.3 지형
- 7.3.1 지형 그리기
- 7.3.2 절차적 지형
- 7.3.3 절차적 도시
- 7.3.4 무한 지형
- 7.4 카메라 기법
- 7.4.1 심도
- 7.4.2 블러
- 7.4.3 그레이스케일
- 7.4.4 모션 블러
- 7.4.5 세피아 톤
- 7.4.6 트윌
- 7.4.7 블룸
- 7.4.8 플레어
- 7.4.9 색 보정
- 7.4.10 외곽선 검출
- 7.4.11 크리스
- 7.4.12 어안
- 7.4.13 선 샤프트
- 7.4.14 비네트
- 7.4.15 화면 공간 SSAO
- 7.5 하늘
- 7.5.1 스카이박스
- 7.5.2 스카이 돔
- 7.5.3 구름
- 7.6 날씨
- 7.6.1 바람
- 7.6.2 강수
- 7.7 파티클
- 7.8 요약
- 8장 외부 연결 메커니즘
- 8.1 들어가며
- 8.2 모바일 기기에서 실행하기
- 8.3 햅틱과 외부 모션 통합하기
- 8.4 모바일 하드웨어 기능 활용하기
- 8.4.1 가속도계
- 8.4.2 방향
- 8.4.3 웹 서비스
- 8.4.4 위성위치확인시스템 GPS
- 8.4.5 증강 현실
- 8.5 소셜 메커니즘
- 8.5.1 트위터
- 8.5.2 페이스북
- 8.5.3 오픈페인트
- 8.6 플랫폼 배포: 앱스토어, 안드로이드 마켓 및 콘솔
- 8.6.1 앱스토어와 안드로이드 마켓 게임 출시
- 8.6.2 콘솔 발매
- 8.6.3 플레이어가 직접 다운로드
도서 오류 신고
정오표
정오표
[ p127 리스트 2.7 1행]
var aBullet: GameObject; → var aBullet: GameObject;
[ p131 리스트 2.11 14행 ]
var exp:Game Object → var exp:GameObject
[ p193 10행 ]
사물을 들어올리려면 반ㄷ시 → 사물을 들어올리려면 반드시
2015. 11. 26
[ p51 불 대수 표]
[ p51 불 대수 표]