본문으로 바로가기
평면표지(2D 앞표지)
입체표지(3D 표지)
2D 뒤표지

고도 엔진 4 게임 개발 프로젝트(제2판)

최고의 오픈 소스 게임 엔진으로 크로스 플랫폼 2D 및 3D 게임 5가지 만들기


  • ISBN-13
    979-11-92987-92-7 (93000)
  • 출판사 / 임프린트
    주식회사 제이펍 / 주식회사 제이펍
  • 정가
    29,000 원 확정정가
  • 발행일
    2024-03-21
  • 출간상태
    출간 예정
  • 저자
    크리스 브래드필드(Chris Bradfield)
  • 번역
    강세중
  • 메인주제어
    컴퓨터, 정보기술
  • 추가주제어
    정보기술: 일반 주제 , 비즈니스 응용프로그램 , 그래픽 및 디지털미디어 응용프로그램 , 컴퓨터프로그래밍 / 소프트웨어공학 , 응용 정보기술 , 컴퓨터공학 , 응용컴퓨팅 , 컴퓨터네트워킹 및 커뮤니케이션
  • 키워드
    #컴퓨터, 정보기술 #정보기술: 일반 주제 #비즈니스 응용프로그램 #그래픽 및 디지털미디어 응용프로그램 #컴퓨터프로그래밍 / 소프트웨어공학 #응용 정보기술 #컴퓨터공학 #응용컴퓨팅 #컴퓨터네트워킹 및 커뮤니케이션 #고도 #고도4 #고도엔진 #게임엔진 #게임개발 #게임프로젝트 #크로스플랫폼 #2D게임 #3D게임 #GDScript #게임 #고도엔진4
  • 도서유형
    종이책, 반양장/소프트커버
  • 대상연령
    모든 연령, 성인 일반 단행본
  • 도서상세정보
    188 * 245 mm, 296 Page

책소개

강력한 무료 오픈 소스 게임 엔진, 고도 4를 만나다

 

풍부한 기능을 갖춘 고도 게임 엔진 버전 4 입문서. 다양한 신기능을 갖춘 고도 4는 고가의 상용 게임 엔진에 대한 강력한 대안이다. 이 책은 고도 엔진의 2D 및 3D 기능을 충실하게 활용하는 5개의 프로젝트로 구성되었다. 소규모 게임 프로젝트의 제작법을 따라 하는 과정에서 고도의 내부 작동 방식을 이해하고, 자신의 프로젝트에 적용할 수 있는 개발 기법을 익힐 수 있다. 간단한 단계별 접근 방식과 실용적인 예제를 통해 기초부터 정교한 게임 물리, 애니메이션까지 모든 것을 다룬다. 원서의 4.1 버전 대신 한국어 4.2 버전 기준으로 업데이트했고, 한국어판 부록으로 고도 엔진 에디터 메뉴 설명을 추가했다. 

목차

옮긴이 머리말 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

본문인용

게임 개발자로서는 고도를 사용했을 때 얻을 수 있는 이득이 많다. 우선 상업적 라이선스의 제약을 받지 않기 때문에 게임을 배포하는 방식과 분야를 완전히 제어할 수 있다. 대다수 상용 게임 엔진은 제작할 수 있는 프로젝트 유형을 제한하거나 도박 등 특정 장르의 게임을 제작하는 데는 훨씬 더 비싼 라이선스를 요구한다. / 고도가 오픈 소스라는 점은 상업용 게임 엔진과는 비교할 수 없는 수준의 투명성이 있다는 뜻이기도 하다. 예를 들어 특정한 엔진 기능이 사용자의 요구 사항에 맞지 않는다는 것을 알게 되면 엔진 자체를 자유롭게 수정해서 필요한 새 기능을 추가할 수 있으며, 이 과정에서 허락을 받을 필요도 없다. 또한 엔진의 내부 작동에 대한 완전한 접근 권한이 있으므로 대규모 프로젝트를 디버깅할 때 매우 유용할 수 있다. (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를 사용하여 복잡한 게임 시스템 만들기
  • 직관적인 사용자 인터페이스를 구현해서 정보 표시하기
  • 매혹적인 시각 효과로 게임에 풍미 더하기
  • 데스크톱 및 모바일 플랫폼으로 게임 퍼블리싱하기

저자소개

저자 : 크리스 브래드필드(Chris Bradfield)
IT 업계에서 25년 넘게 일하고 있다. 한국과 미국의 여러 MMO 및 소셜 게임 퍼블리셔에서 근무하며 게임 디자이너, 개발자, 제품 관리자, 비즈니스 개발 임원 등의 경력을 거쳐왔다.
교육에도 관심이 많아 2012년에는 중고등학생을 대상으로 프로그래밍 교육과 커리큘럼을 제공하는 키즈캔코드(KidsCanCode)를 설립했으며, 전 세계 게임 개발 학생들을 위한 비디오 및 텍스트 기반 튜토리얼과 학습 자료도 제작하고 있다.
번역 : 강세중
로봇을 만들고 싶어서 기계공학과에 들어갔으나 “여러분, 피 말리는 〈삼국지〉는 하지 맙시다”라는 선배의 충고를 듣고 오히려 게임에 빠지게 됐다. 하이텔 보드게임 동호회 창립 멤버로 활동하다 ‘게임 기획’을 도와달라는 지인의 부탁을 받고 MO 전략 RPG 〈바이올렘〉의 디자인을 맡으며 게임 업계에 첫발을 내디뎠다. 이후 10여 년간 엔소니의 기획 이사로서 각종 모바일 게임을 꾸준히 디자인/프로듀스 해오다 넷게임즈(현 넥슨게임즈) 기획조정실을 끝으로 현업에서 물러나 게임 및 과학기술 서적 번역으로 눈을 돌렸다. 번역한 책으로 《마인크래프트 최강 전략 백과》 시리즈, 《게임 시스템 디자인 입문》 등이 있다.
상단으로 이동