튜토리얼 xii
학습 가이드 xviii
로드맵 xx
PART I 게임 개발의 기초LEVEL 1 게임 개발의 첫걸음 시작하기 3
1.1 고도 엔진 이해하기 4
__1.1.1 게임 엔진이란? 4
__1.1.2 게임 엔진의 역할 5
__1.1.3 엔진 없는 게임 제작 방식 6
__1.1.4 고도 엔진의 특징 7
__1.1.5 오픈소스 프로젝트란? 8
1.2 유니티, 언리얼 엔진과 비교하기 10
__1.2.1 라이선스 및 비용 10
__1.2.2 커뮤니티와 생태계 10
__1.2.3 개발 난이도 12
__1.2.4 자유도 12
__1.2.5 그래픽 품질 13
__1.2.6 플랫폼 지원 13
1.3 개발 흐름 머릿속에 그리기 14
리플레이 16 / QUIZ 16
LEVEL 2 고도 엔진 설치하고 바로 시작하기 17
2.1 고도 엔진 홈페이지 살펴보기 18
__2.1.1 홈페이지 구조 18
__2.1.2 상단 메뉴 구성 19
2.2 고도 엔진 설치하기 22
__2.2.1 버전 선택 기준 23
__2.2.2 다운로드 및 압축 해제 24
2.3 프로젝트 생성하기 26
__2.3.1 고도 엔진 실행 26
__2.3.2 언어 설정 변경 27
__2.3.3 프로젝트 생성 28
리플레이 30 / QUIZ 30
LEVEL 3 고도 엔진 인터페이스 익히기 31
3.1 에디터 UI 한눈에 파악하기 32
3.2 프로젝트 매니저 이해하기 34
__3.2.1 새 프로젝트 생성 35
__3.2.2 기존 프로젝트 가져오기 36
__3.2.3 스캔 기능 활용 37
__3.2.4 프로젝트 필터 및 정렬, 애셋 라이브러리 38
__3.2.5 프로젝트 옵션 버튼 기능 40
3.3 노드와 씬 이해하기 42
__3.3.1 노드란? 42
__3.3.2 부모-자식 관계 42
__3.3.3 씬이란? 43
__3.3.4 노드 및 씬 구조를 사용하는 이유 43
3.4 메뉴 익히기 45
__3.4.1 Scene 46
__3.4.2 Project 47
__3.4.3 Debug 48
__3.4.4 Editor 49
__3.4.5 Help 50
__3.4.6 자주 사용되는 단축키 51
3.5 Scene 탭 활용하기 52
__3.5.1 노드의 계층구조 52
__3.5.2 상단 버튼 기능 53
__3.5.3 루트 노드 53
__3.5.4 씬 인스턴싱 활용 54
3.6 Import 탭 이해하기 55
__3.6.1 Import 설정의 필요성 56
__3.6.2 Import 준비 과정 56
__3.6.3 Import As 기능 57
__3.6.4 Reimport 기능 59
3.7 FileSystem 탭 활용하기 60
__3.7.1 리소스 관리 60
__3.7.2 폴더 및 파일 탐색 61
__3.7.3 Change Split Mode 기능 61
__3.7.4 우클릭 기능 62
3.8 작업 화면 상단 UI 이해하고 활용하기 65
__3.8.1 작업 공간 전환 버튼 65
__3.8.2 탭 바 이해하기 66
__3.8.3 뷰포트 툴 바 익히기 67
3.9 뷰포트 다루기 71
__3.9.1 기본 조작 71
__3.9.2 2D 뷰 조작 72
__3.9.3 3D 기본 조작 72
__3.9.4 FPS 스타일 조작 73
3.10 하단 패널 활용하기 74
__3.10.1 Output 정보 확인 74
__3.10.2 Debugger 활용 75
__3.10.3 Audio 관리 76
__3.10.4 Animation 작업 76
__3.10.5 Shader Editor 활용 77
3.11 플레이 테스트 버튼 사용하기 79
3.12 Inspector, Node, History 탭 활용하기 81
__3.12.1 Inspector 탭 기능 81
__3.12.2 Node 탭 기능 83
__3.12.3 History 탭 기능 84
3.13 Project Settings 다루기 86
__3.13.1 General 설정 86
__3.13.2 Input Map 설정 87
__3.13.3 Localization 설정 87
__3.13.4 Globals 설정 88
__3.13.5 Plugins 설정 89
__3.13.6 Import Defaults 설정 90
3.14 Editor Settings 바꾸기 91
__3.14.1 Interface 설정 91
__3.14.2 Network 설정 92
__3.14.3 FileSystem 설정 92
__3.14.4 Docks 설정 93
__3.14.5 Text Editor 설정 94
__3.14.6 Editors 설정 95
__3.14.7 Run 설정 96
__3.14.8 Input 설정 96
__3.14.9 Export 설정 97
__3.14.10 Shortcuts 설정 98
리플레이 99 / QUIZ 99
LEVEL 4 GDScript 기초 익히기 101
4.1 스크립트 파일 만들기 102
__4.1.1 씬 생성 102
__4.1.2 스크립트 파일 생성 및 노드 연결 104
4.2 Hello world! 출력하기 108
__4.2.1 스크립트 작성 108
__4.2.2 스크립트 노드 부착 109
4.2.3 스크립트 테스트 110
4.3 주석 이해하기 112
__4.3.1 코드 설명 작성 112
__4.3.2 특정 코드 실행 차단 113
4.4 확장 이해하기 114
__4.4.1 확장이란? 114
__4.4.2 사용할 수 있는 확장 기능 탐색 115
4.5 변수 활용하기 117
__4.5.1 변수 선언 117
__4.5.2 변수 타입 118
__4.5.3 변수 사용법 120
__4.5.4 변수 실습 121
4.6 상수 사용하기 123
__4.6.1 상수 선언 123
__4.6.2 상수의 필요성 124
4.7 열거형 활용하기 125
__4.7.1 열거형 선언 125
__4.7.2 열거형 사용법 127
4.8 배열 다루기 128
__4.8.1 배열 생성 128
__4.8.2 배열 사용법 129
4.9 함수 만들기 134
__4.9.1 함수 정의 134
__4.9.2 데이터 전달 135
__4.9.3 반환값 처리 136
__4.9.4 반환 데이터 타입 명시 137
4.10 통과 이해하기 139
__4.10.1 pass 사용법 139
__4.10.2 pass의 필요성 141
4.11 조건문 활용하기 142
__4.11.1 비교 연산자 142
__4.11.2 if 조건문 143
__4.11.3 elif 조건문 144
__4.11.4 else 조건문 145
__4.11.5 match 조건문 146
__4.11.6 조건문 실습 147
4.12 반복문 사용하기 149
__4.12.1 for 반복문 149
__4.12.2 while 반복문 151
__4.12.3 break 제어문 152
__4.12.4 continue 제어문 153
__4.12.5 반복문 실습 154
4.13 클래스 이해하기 156
__4.13.1 클래스의 정의와 구조 156
__4.13.2 클래스 확장 157
__4.13.3 인스턴스 생성 159
__4.13.4 노드와 클래스 관계 160
__4.13.5 클래스의 확장성과 재사용성 160
4.14 객체 지향 프로그래밍 이해하기 162
__4.14.1 클래스와 인스턴스의 관계 162
__4.14.2 상속과 오버라이딩 164
__4.14.3 캡슐화 165
__4.14.4 다형성 166
__4.14.5 상속 구조의 예시 166
__4.14.6 객체 지향 프로그래밍의 장점 168
리플레이 169 / QUIZ 169
PART 2 게임 만들기LEVEL 5 2D 레이싱 게임 만들기 173
5.1 실습 준비하기 174
__5.1.1 새 프로젝트 생성 175
__5.1.2 자료 다운로드 177
5.2 자동 스크롤이 되는 배경 화면 만들기 181
__5.2.1 폴더 생성 181
__5.2.2 메인 게임 및 배경 화면 씬 생성 182
__5.2.3 배경 씬 노드 구조 생성 186
__5.2.4 렌더링 설정 변경 191
__5.2.5 배경 추가 194
__5.2.6 흐르는배경의 스크립트 작성 197
5.3 자동차 움직이기 201
__5.3.1 자동차 씬 생성 201
__5.3.2 키보드 입력 설정 209
__5.3.3 스크립트로 자동차 이동 처리 211
__5.3.4 도로 밖 이동 제한 213
5.4 컵케이크 획득하기 217
__5.4.1 컵케이크 씬 생성 217
__5.4.2 컵케이크 스크롤 및 충돌 감지 221
__5.4.3 전역변수를 이용한 점수 관리 224
__5.4.4 타이머를 이용한 컵케이크 자동 생성 228
5.5 점수 화면 표시하기 237
__5.5.1 점수 표시 UI 씬 생성 237
__5.5.2 점수 실시간 업데이트 239
__5.5.3 CanvasLayer를 이용한 화면 표시 240
미니 챌린지 244 / 리플레이 245 / QUIZ 245
LEVEL 6 3D 이사 가는 날 만들기 247
6.1 실습 준비하기 248
__6.1.1 새 프로젝트 생성 248
__6.1.2 자료 다운로드 251
6.2 3D 환경 구성하기 252
__6.2.1 게임 해상도 변경 252
__6.2.2 메인 게임 씬 생성 253
__6.2.3 이사할 집 씬 생성 258
6.3 이삿짐 준비하기 269
__6.3.1 가구 씬 생성 269
__6.3.2 그 밖의 가구 씬 생성 274
6.4 게임 플레이 구현하기 277
__6.4.1 키보드 입력 설정 277
__6.4.2 하늘에서 가구 떨어트리기 구현 279
6.5 게임오버 구현하기 284
__6.5.1 점수 저장 284
__6.5.2 게임오버 화면 생성 288
__6.5.3 낙하 감지와 게임오버 화면 표시 301
6.6 게임 시작화면 구현하기 309
__6.6.1 시작화면 구성 309
__6.6.2 게임 시작 버튼 기능 구현 318
미니 챌린지 326 / 리플레이 327 / QUIZ 327
APPENDIX A 웹으로 배포하기 329
A.1 1단계: 프로젝트 빌드하기 330
A.2 2단계: itch.io 프로젝트 생성하기 333
A.3 3단계: 파일 업로드 및 웹 플레이 설정하기 337
A.4 4단계: 테스트 및 공개하기 339
엔딩 342
용어집 343
찾아보기 346