1강게임 엔진이 대체 뭘 해주는가
엔진이 없으면 무엇을 직접 해야 하는지부터 본다.
이 강의 목차 (7)
- 게임 엔진이 대신 해주는 일이 무엇인지 목록으로 말할 수 있다.
- Godot을 설치하고 프로젝트를 만들어 검은 창을 띄운다.
- 프로젝트 폴더에 무엇이 생겼는지 안다.
게임은 사실 "그림 한 장을 아주 빨리 다시 그리는 일"이다#
게임 화면은 움직이는 것처럼 보이지만, 실제로는 정지된 그림을 1초에 60번 다시 그리는 것입니다. 영화 필름이나 플립북과 같습니다. 다른 점은 딱 하나입니다. 필름은 다음 장이 이미 정해져 있지만, 게임은 다음 장을 그 순간에 계산해서 만든다는 것입니다.
그래서 게임을 만든다는 건 결국 이 세 가지를 1초에 60번 반복하는 프로그램을 짜는 일입니다.
- 지금 플레이어가 뭘 눌렀는지 확인한다 (입력)
- 그에 따라 세상의 상태를 조금 바꾼다 (갱신)
- 바뀐 상태를 화면에 그린다 (렌더)
엔진이 없으면 무엇을 직접 해야 하나#
이 세 줄이 쉬워 보이지만, 엔진 없이 맨바닥에서 하려면 아래를 전부 직접 만들어야 합니다.
| 해야 할 일 | 직접 하면 |
|---|---|
| 창 띄우기 | 운영체제마다 다른 API를 각각 호출 |
| 그림 그리기 | 그래픽 카드에 보낼 명령을 직접 작성 |
| 이미지 읽기 | PNG 파일 포맷을 해석하는 코드 작성 |
| 소리 내기 | 오디오 장치를 열고 샘플을 밀어 넣기 |
| 입력 받기 | 키보드·패드·터치를 장치별로 처리 |
| 시간 재기 | 프레임 간격을 직접 측정하고 보정 |
| 충돌 판정 | 도형끼리 겹쳤는지 수학으로 계산 |
| 물리 | 중력·마찰·반발을 매 프레임 적분 |
| 빌드 | 윈도우·안드로이드·웹용으로 각각 포장 |
게임 엔진은 이 목록을 전부 대신해 주는 도구 모음입니다. 그래서 여러분은 "이 캐릭터는 초당 몇 픽셀로 걷는다" 같은 게임의 규칙에만 집중할 수 있습니다.
엔진은 이미 무대·조명·음향이 설치된 극장입니다. 극장을 직접 지을 수도 있지만, 여러분이 하고 싶은 건 연극(게임)이지 건축(엔진 제작)이 아닙니다. 엔진을 쓴다는 건 "무대는 빌리고, 대본과 연기에 집중하겠다"는 선택입니다.
왜 Godot인가#
이 강좌는 Godot 4.x를 씁니다. 이유는 세 가지입니다.
- 가볍다. 설치 파일 하나(100MB 남짓)를 받아 압축을 풀면 끝입니다. 계정 가입도 없습니다.
- 2D가 진짜 2D다. 많은 엔진이 3D 엔진에 2D를 얹은 형태지만, Godot은 2D 렌더러가 따로 있습니다. 픽셀 좌표를 그대로 씁니다.
- 웹으로 바로 내보낸다. 완성한 게임을 링크 하나로 공유할 수 있습니다(26강).
다른 엔진과 비교하면
- Unity — 상용 게임 점유율이 가장 높고 자료가 많습니다. 대신 무겁고, 2D도 내부적으로는 3D 위에 올려둔 구조입니다. 회사에서 쓴다면 언젠가 만나게 됩니다.
- Unreal — 3D 대작 중심. 2D 기초를 배우기에는 과합니다.
- Godot — 배우기 가장 빠르고, 여기서 익힌 개념(노드, 델타 타임, 물리 프레임, 레이어 마스크)은 엔진을 옮겨도 그대로 통합니다. 이름만 바뀔 뿐입니다.
이 강좌가 가르치려는 건 Godot 사용법이 아니라 2D 게임이 돌아가는 원리입니다.
설치하기#
- godotengine.org/download 접속
- Godot Engine 4.x — Standard 버전 내려받기 (.NET 버전은 C#을 쓸 때 필요합니다. 이 강좌는 GDScript를 쓰므로 Standard로 받으세요.)
- 압축을 풀면 실행 파일 하나가 나옵니다. 설치 과정이 없습니다. 그대로 실행하세요.
갤럭시 폴드 메인 화면(펼친 상태) 에서는 Play 스토어의 Godot Engine 공식 앱으로 실제 편집과 실행이 가능합니다. 블루투스 키보드를 붙이면 코드 작성까지 무리가 없습니다. 커버 화면(접은 상태)에서는 이 강좌를 읽는 용도로 쓰고, 실습은 펼치거나 PC에서 하세요.
첫 프로젝트 만들기#
Godot을 실행하면 프로젝트 매니저가 뜹니다.
+ Create(새 프로젝트) 클릭- Project Name —
hello-godot - Project Path — 빈 폴더를 하나 지정
- Renderer — Compatibility 선택 ← ★ 중요
Create & Edit
Godot 4는 렌더러가 세 가지입니다.
- Forward+ — 가장 화려하지만 Vulkan이 필요합니다. 웹에서 안 돕니다.
- Mobile — 모바일용 Vulkan.
- Compatibility — OpenGL / WebGL2 기반. 웹과 구형 기기에서 돕니다.
이 강좌는 마지막에 웹으로 배포하므로 처음부터 Compatibility로 시작합니다. 나중에 바꾸면 셰이더나 조명이 통째로 깨질 수 있어서, 지금 정해두는 게 훨씬 쌉니다.
화면 구조 익히기#
에디터가 열리면 영역이 넷입니다. 지금은 이름만 알아두면 됩니다.
- 좌상단 씬(Scene) 독 — 지금 만들고 있는 화면의 부품 목록. 트리 모양입니다.
- 좌하단 파일시스템(FileSystem) 독 — 프로젝트 폴더 안의 실제 파일들.
- 가운데 뷰포트 — 게임 화면을 미리 보고 배치하는 곳.
- 우측 인스펙터(Inspector) — 선택한 부품의 속성값. 여기서 숫자를 바꿉니다.
- 씬 독의
2D Scene을 눌러 빈 씬을 만듭니다. Ctrl+S로 저장 — 이름은main.tscn.F5(또는 우상단 ▶) 를 눌러 실행합니다.- 처음 실행하면 "메인 씬을 정하라"고 묻습니다. 방금 만든
main.tscn을 고르세요.
검은 창이 뜨면 성공입니다. 아무것도 없지만, 이 창은 지금 1초에 60번 "아무것도 안 그리는" 일을 성실하게 반복하는 중입니다. 게임 루프가 이미 돌고 있는 겁니다.
폴더에 뭐가 생겼나#
파일 탐색기로 프로젝트 폴더를 열어보면 이렇습니다.
hello-godot/
├─ project.godot ← 프로젝트임을 알리는 설정 파일
├─ main.tscn ← 방금 만든 씬
├─ icon.svg ← 기본 아이콘
└─ .godot/ ← 캐시. 지워도 다시 생긴다기억할 점 두 가지입니다.
project.godot이 프로젝트의 뿌리입니다. 이 파일이 있는 폴더가 곧 프로젝트이고, 코드에서 쓰는 경로res://는 이 폴더를 가리킵니다..godot/은 캐시입니다. 형상관리(git)에 올리지 않습니다.
- 개발자 —
res://는 프로젝트 루트,user://는 세이브 파일이 저장되는 사용자 폴더입니다. 둘을 헷갈리면 배포 후 저장이 안 됩니다(21강에서 다룹니다). - 기획자 — 씬(Scene)은 앞으로 "화면"이 아니라 재사용 가능한 부품을 뜻합니다. 적 한 마리도 씬, UI 버튼 하나도 씬입니다. 이 단어의 뜻을 지금 바꿔 두세요.
- 디자이너 — 리소스는 반드시 프로젝트 폴더 안에 넣어야 인식됩니다. 바깥 경로를 참조할 수 없습니다. 폴더 규칙을 첫날 정해두면 나중에 안 갈아엎습니다.
"실행했더니 아무 창도 안 뜬다"
→ 메인 씬이 지정되지 않았습니다. 프로젝트 → 프로젝트 설정 → Application → Run → Main Scene 확인.
"실행 창이 열렸다가 바로 닫힌다" → 스크립트에 문법 오류가 있는 경우가 대부분입니다. 에디터 하단 출력(Output) 패널을 보세요. 빨간 줄에 파일명과 줄 번호가 찍혀 있습니다.
"프로젝트 매니저에 내 프로젝트가 안 보인다"
→ Import 로 project.godot 파일을 직접 지목하면 목록에 추가됩니다.
- Godot 4.x가 실행된다
- Compatibility 렌더러로 프로젝트를 만들었다
-
F5로 검은 창이 뜬다 -
project.godot파일이 어디 있는지 안다
여기까지 되면 충분합니다. 아직 코드는 한 줄도 안 썼습니다.
다음 강의 — 검은 화면에 캐릭터를 올립니다. 그리고 Godot의 핵심 사고방식인 노드와 씬을 익힙니다.