풍부한 기능을 갖춘 고도 게임 엔진 버전 4 입문서. 다양한 신기능을 갖춘 고도 4는 고가의 상용 게임 엔진에 대한 강력한 대안이다. 이 책은 고도 엔진의 2D 및 3D 기능을 충실하게 활용하는 5개의 프로젝트로 구성되었다. 소규모 게임 프로젝트의 제작법을 따라 하는 과정에서 고도의 내부 작동 방식을 이해하고, 자신의 프로젝트에 적용할 수 있는 개발 기법을 익힐 수 있다. 간단한 단계별 접근 방식과 실용적인 예제를 통해 기초부터 정교한 게임 물리, 애니메이션까지 모든 것을 다룬다. 원서의 4.1 버전 대신 한국어 4.2 버전 기준으로 업데이트했고, 한국어판 부록으로 고도 엔진 에디터 메뉴 설명을 추가했다.
Contents
옮긴이 머리말 x
추천의 글 xiii
베타리더 후기 xvi
이 책에 대하여 xix
감사의 글 xxii
CHAPTER 1 고도 4 소개
1.1 시작을 위한 조언 2
__1.1.1 효과적인 학습 비결 3
1.2 게임 엔진이란 무엇인가? 4
1.3 고도란 무엇인가? 5
1.4 고도 다운로드 6
__1.4.1 다른 설치 방법 7
1.5 고도 UI 개요 9
__1.5.1 프로젝트 매니저 9
__1.5.2 에디터 창 11
1.6 노드와 씬 14
1.7 고도에서의 스크립팅 15
__1.7.1 GDScript 15
요약 16
CHAPTER 2 코인 대시: 첫 2D 게임 만들기
2.1 기술적 요구 사항 18
2.2 프로젝트 설정 19
2.3 벡터와 2D 좌표계 21
2.4 1단계: 플레이어 씬 22
__2.4.1 씬 생성 23
__2.4.2 스프라이트 애니메이션 24
__2.4.3 콜리전 모양 26
__2.4.4 플레이어 스크립트 작성 28
__2.4.5 플레이어 이동 29
__2.4.6 애니메이션 선택 31
__2.4.7 플레이어의 이동 시작 및 종료 32
__2.4.8 충돌에 대비하기 32
2.5 2단계: 동전 씬 35
__2.5.1 노드 설정 35
__2.5.2 동전 스크립트 36
2.6 3단계: 메인 씬 37
__2.6.1 노드 설정 37
__2.6.2 메인 스크립트 38
__2.6.3 새 게임 시작 39
2.7 4단계: 사용자 인터페이스 41
__2.7.1 노드 설정 41
__2.7.2 메시지 레이블 42
__2.7.3 점수 및 시간 표시 개요 43
__2.7.4 점수 및 시간 표시 구현 43
__2.7.5 GDScript를 통한 UI 업데이트 44
__2.7.6 게임 오버 45
__2.7.7 메인에 HUD 추가 46
2.8 5단계: 마무리 47
__2.8.1 비주얼 이펙트 47
__2.8.2 사운드 49
__2.8.3 파워업 49
__2.8.4 동전 애니메이션 52
__2.8.5 장애물 53
요약 54
CHAPTER 3 스페이스 록: 물리 엔진으로 고전 2D 아케이드 만들기
3.1 기술적 요구 사항 56
3.2 프로젝트 설정 56
__3.2.1 리지드 바디 물리학 58
3.3 플레이어 우주선 60
__3.3.1 바디 및 물리 설정 60
__3.3.2 상태 기계 62
__3.3.3 플레이어 컨트롤 추가 64
__3.3.4 화면 휘감기 66
__3.3.5 사격 68
3.4 바위 추가 71
__3.4.1 씬 설정 71
__3.4.2 다양한 크기의 바위 72
__3.4.3 바위 인스턴스화 73
__3.4.4 폭발하는 바위 76
3.5 UI 제작 80
__3.5.1 레이아웃 81
__3.5.2 UI 스크립트 83
__3.5.3 메인 씬의 UI 코드 84
__3.5.4 플레이어 코드 86
3.6 게임 종료 88
__3.6.1 리지드 바디 사이의 콜리전 감지 89
3.7 게임 일시 정지 90
3.8 적 92
__3.8.1 경로 따라가기 92
__3.8.2 적 씬 94
__3.8.3 적 이동 94
__3.8.4 적 스폰 95
__3.8.5 적 사격 및 충돌 96
3.9 플레이어 보호막 99
3.10 사운드 및 비주얼 이펙트 103
__3.10.1 사운드와 음악 103
__3.10.2 파티클 104
__3.10.3 적의 자취 107
요약 108
CHAPTER 4 정글 점프: 2D 플랫포머의 달리기와 점프
4.1 기술적 요구 사항 110
4.2 프로젝트 설정 110
4.3 키네마틱 바디 소개 112
__4.3.1 콜리전 반응 112
4.4 플레이어 씬 만들기 113
__4.4.1 콜리전 레이어와 마스크 114
__4.4.2 AnimationPlayer에 대해 114
__4.4.3 애니메이션 115
__4.4.4 콜리전 모양 116
__4.4.5 플레이어 씬 마무리 117
__4.4.6 플레이어 상태 117
__4.4.7 플레이어 스크립트 119
__4.4.8 플레이어 이동 120
__4.4.9 플레이어 체력 122
4.5 수집용 아이템 124
__4.5.1 씬 설정 124
__4.5.2 수집용 아이템 스크립트 125
4.6 레벨 디자인 126
__4.6.1 타일맵 사용 127
__4.6.2 첫 번째 레벨 디자인 130
__4.6.3 위험한 오브젝트 추가 132
__4.6.4 배경 스크롤 133
4.7 적 추가 136
__4.7.1 씬 설정 136
__4.7.2 적 스크립트 137
__4.7.3 적에게 피해 주기 138
__4.7.4 플레이어 스크립트 140
4.8 게임 UI 142
__4.8.1 씬 설정 142
__4.8.2 HUD 스크립트 144
__4.8.3 HUD 붙이기 144
4.9 타이틀 화면 145
__4.9.1 씬 설정 145
4.10 메인 씬 설정 147
4.11 레벨 간 전환 149
__4.11.1 Door 씬 149
__4.11.2 화면 설정 150
4.12 마무리 작업 151
__4.12.1 사운드 이펙트 151
__4.12.2 이중 점프 152
__4.12.3 먼지 파티클 153
__4.12.4 사다리 154
__4.12.5 움직이는 플랫폼 157
요약 159
CHAPTER 5 3D 미니골프: 미니골프 코스를 만들며 3D로 뛰어들기
5.1 기술적 요구 사항 162
5.2 3D에 대한 소개 162
__5.2.1 3D 공간에서 방향 지정 162
__5.2.2 고도의 3D 에디터 164
__5.2.3 3D 오브젝트 추가 165
__5.2.4 글로벌 공간과 로컬 공간 166
__5.2.5 변형 166
__5.2.6 메시 167
__5.2.7 카메라 169
5.3 프로젝트 설정 170
5.4 코스 만들기 171
__5.4.1 GridMap 이해하기 172
__5.4.2 첫 번째 홀 그리기 172
__5.4.3 환경과 조명 174
__5.4.4 홀 추가하기 175
5.5 공 만들기 176
__5.5.1 공 테스트 176
__5.5.2 공 콜리전 개선 177
5.6 UI 추가하기 178
__5.6.1 화살표로 겨냥하기 178
__5.6.2 UI 디스플레이 181
5.7 게임 스크립팅 182
__5.7.1 UI 코드 183
__5.7.2 메인 스크립트 184
__5.7.3 공 스크립트 186
__5.7.4 테스트하기 187
__5.7.5 겨냥 개선 옵션 1 188
__5.7.6 겨냥 개선 옵션 2 189
__5.7.7 카메라 개선 191
__5.7.8 전체 코스 디자인 193
5.8 비주얼 이펙트 194
__5.8.1 머티리얼 추가 195
5.9 조명과 환경 198
요약 199
CHAPTER 6 인피니트 플라이어
6.1 기술적 요구 사항 202
6.2 프로젝트 설정 202
__6.2.1 입력 202
6.3 비행기 씬 203
__6.3.1 콜리전 모양 205
__6.3.2 비행기 스크립트 작성 205
6.4 월드 만들기 208
__6.4.1 월드 오브젝트 209
__6.4.2 청크 212
6.5 메인 씬 216
__6.5.1 새 청크 스폰하기 218
__6.5.2 난이도 조절 219
__6.5.3 콜리전 221
__6.5.4 연료와 점수 223
6.6 타이틀 화면 226
6.7 오디오 228
6.8 하이스코어 저장하기 228
__6.8.1 파일 위치에 대해 229
__6.8.2 파일 접근 229
6.9 추가 기능에 대한 제안 230
요약 231
CHAPTER 7 다음 단계와 추가 리소스
7.1 고도 문서 사용하기 234
__7.1.1 API 문서 읽기 235
7.2 버전 관리: 고도에서 깃 사용 236
7.3 고도와 블렌더 병용하기 238
__7.3.1 가져오기 힌트 238
__7.3.2 블렌드 파일 사용하기 239
7.4 프로젝트 내보내기 240
__7.4.1 내보내기 템플릿 241
__7.4.2 내보내기 프리셋 241
__7.4.3 내보내기 242
__7.4.4 특정 플랫폼용으로 내보내기 243
7.5 셰이더 소개 244
__7.5.1 2D 셰이더 만들기 245
__7.5.2 3D 셰이더 250
__7.5.3 추가 학습 253
7.6 고도에서 다른 프로그래밍 언어 사용하기 253
__7.6.1 C# 254
__7.6.2 그 밖의 언어: GDExtension 256
7.7 도움받기: 커뮤니티 리소스 257
__7.7.1 고도 레시피 257
7.8 고도에 기여하기 258
__7.8.1 엔진에 기여 259
__7.8.2 문서 작성 259
__7.8.3 기부 260
요약 260
APPENDIX A 한국어판 부록: 고도 엔진 에디터 메뉴 버튼 설명
A.1 에디터 선택 메뉴 262
A.2 2D 에디터 상단 메뉴 263
A.3 3D 에디터 상단 메뉴와 원근 버튼 266
A.4 플레이 테스트 메뉴바 268
A.5 고도 에디터 활용 참고 문서 269
마치며 271
찾아보기 272
Author
크리스 브래드필드,강세중
IT 업계에서 25년 넘게 일하고 있다. 한국과 미국의 여러 MMO 및 소셜 게임 퍼블리셔에서 근무하며 게임 디자이너, 개발자, 제품 관리자, 비즈니스 개발 임원 등의 경력을 거쳐왔다. 교육에도 관심이 많아 2012년에는 중고등학생을 대상으로 프로그래밍 교육과 커리큘럼을 제공하는 키즈캔코드(KidsCanCode)를 설립했으며, 전 세계 게임 개발 학생들을 위한 비디오 및 텍스트 기반 튜토리얼과 학습 자료도 제작하고 있다.
IT 업계에서 25년 넘게 일하고 있다. 한국과 미국의 여러 MMO 및 소셜 게임 퍼블리셔에서 근무하며 게임 디자이너, 개발자, 제품 관리자, 비즈니스 개발 임원 등의 경력을 거쳐왔다. 교육에도 관심이 많아 2012년에는 중고등학생을 대상으로 프로그래밍 교육과 커리큘럼을 제공하는 키즈캔코드(KidsCanCode)를 설립했으며, 전 세계 게임 개발 학생들을 위한 비디오 및 텍스트 기반 튜토리얼과 학습 자료도 제작하고 있다.