고도 엔진 4: 게임 개발 프로젝트
2024년 06월 14일 출간
국내도서 : 2024년 03월 21일 출간
- eBook 상품 정보
- 파일 정보 pdf (22.23MB)
- ISBN 9791193926420
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 불가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 18,270원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
추천의 글 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
게임 개발자로서는 고도를 사용했을 때 얻을 수 있는 이득이 많다. 우선 상업적 라이선스의 제약을 받지 않기 때문에 게임을 배포하는 방식과 분야를 완전히 제어할 수 있다. 대다수 상용 게임 엔진은 제작할 수 있는 프로젝트 유형을 제한하거나 도박 등 특정 장르의 게임을 제작하는 데는 훨씬 더 비싼 라이선스를 요구한다. / 고도가 오픈 소스라는 점은 상업용 게임 엔진과는 비교할 수 없는 수준의 투명성이 있다는 뜻이기도 하다. 예를 들어 특정한 엔진 기능이 사용자의 요구 사항에 맞지 않는다는 것을 알게 되면 엔진 자체를 자유롭게 수정해서 필요한 새 기능을 추가할 수 있으며, 이 과정에서 허락을 받을 필요도 없다. 또한 엔진의 내부 작동에 대한 완전한 접근 권한이 있으므로 대규모 프로젝트를 디버깅할 때 매우 유용할 수 있다. (6쪽)
파이썬처럼 GDScript도 동적 타입 언어다. 이는 변수를 생성할 때 타입을 선언할 필요가 없다는 뜻이다. 또한 공백(들여쓰기)을 사용해 코드 블록을 나타낸다. 전체적으로 봐서 GDScript를 게임 로직에 사용했을 때의 장점은, 엔진과 긴밀하게 통합되어서 코드 작성량이 적다는 점이다. 이는 그만큼 개발이 빨라지고 실수를 수정할 일도 줄어든다는 뜻이다. / GDScript가 어떤 모습인지 개념을 잡을 수 있게 다음 예제 코드를 준비했다. 스프라이트를 정해진 속도로 화면 왼쪽에서 오른쪽으로 움직이는 짧은 스크립트다. (15~16쪽)
플레이어가 동전이나 장애물에 부딪혔을 때는 이를 감지해야 하지만, 아직 이런 오브젝트를 만들지 않았다. 하지만 괜찮다. 고도의 시그널 기능을 사용하여 만들 수 있다. 시그널은 노드가 메시지를 보내서 다른 노드가 감지하고 반응할 수 있게 하는 방법이다. 대다수 노드에는 이벤트(바디가 충돌하거나 버튼이 눌리는 등)가 발생했을 때 이를 알려주는 시그널이 내장되어 있다. 또한 여러분의 목적에 맞게 커스텀 시그널을 정의할 수도 있다. / 시그널은 이 시그널을 수신하려는 노드에 연결해 사용한다. 연결은 인스펙터 창이나 코드에서 할 수 있다. 이 프로젝트 후반에 2가지 방법으로 시그널을 연결하는 방법을 배울 것이다. (32쪽)
그런데 지금 게임을 실행하면 문제가 하나 있다. 모든 노드가 일시 정지되고, Main도 거기 포함된다는 것이다. 즉, 더 이상 _input()을 처리하지 않으므로, 입력을 다시 감지해 일시 정지를 해제할 수 없다. 이 문제를 해결하려면 Main 노드의 Process/Mode를 Always로 설정하자.
일시 정지 기능은 알아두면 매우 유용하다. 어떤 게임에서든 이 기법을 사용할 수 있으므로, 이 기능을 다시 검토하며 작동 방식을 이해했는지 확인하자. (91쪽)
게임을 다시 플레이하면 공격적인 상대 외계인과 전투를 벌이게 될 것이다. 모든 콜리전 조합이 처리되고 있는지 확인하자(플레이어가 적 총알에 맞을 때를 제외하고). 적의 총알이 바위에 막힐 수 있다는 점에도 주목하자. 따라서 바위 뒤에 숨어 엄폐할 수도 있다. / 이제 게임에 적들이 생겨서 훨씬 더 도전적이다. 그래도 너무 쉽다면 적의 출현 빈도, 피해량, 파괴하는 데 필요한 사격 횟수 등 적의 속성을 증가시켜보자. (99쪽)
움직이는 플랫폼은 레벨 디자인 툴킷에 추가하기 좋은 재미 요소다. 이 절에서는 레벨의 아무 곳에나 배치하고 이동과 속도를 설정할 수 있는 움직이는 플랫폼을 만들어보겠다. / 새 씬을 시작하고 Node2D를 루트 노드로 추가해서 이름을 MovingPlatform으로 바꾼다. 씬을 저장하고 TileMap을 자식으로 추가한다. 플랫폼 아트는 모두 스프라이트 시트에 있으며 이미 타일로 분할되고 콜리전이 추가된 상태이므로 플랫폼을 그리기는 쉽다. Tile Set에 tiles_world.tres를 추가한다. Collision Animatable 상자도 사용으로 체크해야 한다. 그래야 이동 중에도 콜리전이 제대로 작동한다. (157쪽)
게임 엔진계의 샛별, 고도 엔진으로 게임 개발 시작하기
한국어판 부록으로 고도 엔진 에디터 메뉴 설명까지
유니티 가격 정책 이슈 이후로 무료 오픈 소스 게임 엔진인 고도 엔진은 점점 더 인기를 얻고 있다. 고도 엔진은 사용하기 쉽고 가벼울 뿐더러 복잡한 라이선스 문제가 없어서 상업용 게임을 전 세계에 배포하는 데 부담이 없다. 게다가 4.0 버전에는 고가의 상용 게임 엔진에 버금가는 새 기능이 대거 추가되어 세계 3위 엔진으로 올라섰다. 개인 또는 소수 인원의 팀이 무료 엔진을 사용해 자기 게임을 만들 수 있는 시대가 열린 것이다.
하지만 지금까지는 고도 엔진에 대해 참고할 만한 자료가 국내에 거의 없었다. 고도 에디터는 한국어를 100% 지원하지만, 고도 4 문서 대부분은 아직 번역되지 않은 채 남아 있는 실정이다. 이러한 상황에서 에디터 사용법부터 실제 게임 개발 방법까지 쉽고 자세하게 설명하는 책이 나왔다. 책에서 설명하는 5가지 크로스 플랫폼 2D 및 3D 게임 프로젝트 예제로 쉽게 고도 엔진과 친해질 수 있으며, 게임을 개발하는 방법을 제대로 이해할 수 있다. 원서의 4.1 버전 대신 한국어 4.2 버전으로 업데이트해 최신 기능까지 쉽게 활용할 수 있다.
1장에서는 게임 엔진의 전반적인 개념과 고도의 특성을 소개하며, 고도를 다운로드하는 방법과 이 책을 효과적으로 사용하는 방법을 알아본다. 2장에서는 작은 2D 게임 〈코인 대시〉를 만들면서 씬을 만들고 고도 엔진의 노드 시스템으로 작업하는 방법과 고도 에디터 사용법, GDScript로 스크립트를 작성하는 방법을 배운다. 3장에서는 고전 2D 아케이드 게임 〈스페이스 록〉을 만들며 물리 바디를 사용하여 〈아스테로이드〉식 우주 게임을 만드는 방법을 알아본다.
4장에서는 〈슈퍼 마리오브라더스〉식 횡 스크롤 플랫폼 게임 〈정글 점프〉를 만들어본다. 키네마틱 바디, 애니메이션 상태, 타일 맵을 사용한 레벨 디자인에 대해 배울 수 있다. 5장에서는 이전 개념을 3D로 확장해 〈3D 미니골프〉를 만들고, 메시, 조명, 카메라 제어 등을 익힌다. 6장 〈인피니트 플라이어〉에서는 계속해서 3D 개발을 탐색하며 동적 콘텐츠, 절차적 생성, 기타 3D 기법을 다룬다. 7장에서는 추가로 알아두면 도움이 되는 주제와 리소스를 살펴본다. 마지막으로 한국 독자를 위해 부록으로 고도 엔진 에디터 메뉴 설명을 수록했다.
최종 프로젝트를 마칠 때쯤이면 고도 4를 이용해 게임과 게임 시스템을 실제로 개발 및 구현할 수 있을 것이다. 1인 개발을 시작하려는 초보자는 손쉽게 게임 개발 기술을 익히고 나아가 자신만의 게임을 만들 수 있으며, 무료 게임 엔진 사용을 고려 중인 팀과 숙련된 개발자는 강력하고 커스터마이징 가능한 고도 엔진으로 비전을 실현할 수 있다. 앞으로 프로덕트까지 진행되는 고도 엔진 프로젝트가 많이 나오기를 기대한다.
주요 내용
● 고도와 함께 게임 엔진과 에디터에 익숙해지기
● 고도 4의 새로운 기능 탐색하기
● 디자인 및 코딩 모범 사례를 활용하여 2D 및 3D 게임 제작하기
● 고도의 내장 스크립팅 언어인 GDScript를 사용하여 복잡한 게임 시스템 만들기
● 직관적인 사용자 인터페이스를 구현해서 정보 표시하기
● 매혹적인 시각 효과로 게임에 풍미 더하기
● 데스크톱 및 모바일 플랫폼으로 게임 퍼블리싱하기
작가정보
로봇을 만들고 싶어서 기계공학과에 들어갔으나 “여러분, 피 말리는 〈삼국지〉는 하지 맙시다”라는 선배의 충고를 듣고 오히려 게임에 빠지게 됐다. 하이텔 보드게임 동호회 창립 멤버로 활동하다 ‘게임 기획’을 도와달라는 지인의 부탁을 받고 MO 전략 RPG 〈바이올렘〉의 디자인을 맡으며 게임 업계에 첫발을 내디뎠다. 이후 10여 년간 엔소니의 기획 이사로서 각종 모바일 게임을 꾸준히 디자인/프로듀스 해오다 넷게임즈(현 넥슨게임즈) 기획조정실을 끝으로 현업에서 물러나 게임 및 과학기술 서적 번역으로 눈을 돌렸다. 번역한 책으로 《마인크래프트 최강 전략 백과》 시리즈, 《게임 시스템 디자인 입문》 등이 있다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!
- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.
- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)