최근 수정 시각 : 2024-04-19 02:06:15

Godot Engine


||<-2><tablebordercolor=#000,#fff><tablealign=center><tablewidth=100%><tablebgcolor=#fff,#1c1d1f><bgcolor=#000,#fff> 게임 엔진 ||
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-5px -1px -11px"
메이저 상용 게임 엔진
파일:언리얼 엔진 로고.svg파일:언리얼 엔진 로고 화이트.svg 파일:유니티 로고.svg파일:유니티 로고 화이트.svg
언리얼 엔진 유니티
기타 엔진 목록 }}}}}}}}}

Godot Engine
고도 엔진
파일:Godot Engine 로고.svg
<colbgcolor=#fff,#1f2023><colcolor=#478CBF> 개발사 OKAM
출시일 2014년 12월 15일
최신버전 4.2.2
유형 게임 엔진
기반 언어 GDScript | C++ | C#[1]
플랫폼 PC
Windows | macOS | Linux
모바일
Android | iOS
요금 무료 (MIT 허가서)
홈페이지 Godot Engine

1. 개요2. 특징
2.1. 완전 무료2.2. 아담한 엔진2.3. 지원 언어2.4. 씬과 노드와 리소스2.5. 지원 플랫폼
2.5.1. Official Support2.5.2. 콘솔 미지원
3. 공식 배포 버전
3.1. 3.0
3.1.1. 3.5 LTS (2022년 8월 5일 출시)
3.2. 4.0
3.2.1. 4.0 (2023년 3월 1일 출시)3.2.2. 4.1 (2023년 7월 6일 출시)3.2.3. 4.2 (2023년 11월 30일 출시)3.2.4. 4.3
4. 논란5. 여담
5.1. 이름의 유래
6. Made with 고도 엔진
6.1. Game6.2. Apps & Tools
7. 관련 사이트

[clearfix]

1. 개요

width=100%
Godot Engine 3.X 버전의 작업 공간

아르헨티나의 개발자인 후안 리니에츠키(Juan Linietsky)와 아리엘 만수르(Ariel Manzur)가 개발한 게임 엔진.

본래 인하우스 툴로 사용하던 게임 엔진을 MIT 라이선스하에 오픈소스로 배포하는 엔진이 현재의 고도 엔진(Godot Engine)이다.

워낙 마이너한 엔진이다 보니 국내에 이 엔진의 존재를 아는 사람도 소수이다. 스팀에서도 다운받을 수 있다. 로열티 없는 오픈 소스 엔진이라는 메리트 때문에 유니티 파동 이후 인디 게임 개발자들 사이에선 하나둘 고도엔진으로 넘어가려고 시도하는 움직임이 있다.

2. 특징

2.1. 완전 무료

구성적으로 오픈소스를 취하고 있음에도 불구하고 세부적인 계약조건으로 수익을 제한하는 언리얼 엔진 같은 다른 엔진과는 다르게 코드와 엔진 자체가 통째로 MIT 허가서에 기반해서 무료로 제공되기 때문에 사용자는 수익을 빼앗길 염려를 전혀 하지 않아도 되며 엔진 개발비용은 전부 Patreon 등의 후원을 통해서 충당한다.

2.2. 아담한 엔진

IDE를 포함한 대부분의 요소가 아무리 커도 150MB정도로 매우 컴팩트하며 별도의 설치도 필요 없을정도로 가볍다. 또한 추가적인 설치를 필요로 하는 요소 또한 없기 때문에[2] 엔진을 설치하고 준비하는 과정이 그렇게 길지 않다는 것 또한 장점이다.[3]

에디터에서 실행 시에는 불필요하나, 내보내기(export)를 할 때 필요한 export 템플릿(70~757 MB 가량)을 추가로 설치해야 한다.

2.3. 지원 언어

메인 언어는 GDScript이고 그 외로 C#이랑 C++을 지원하고 있다.
메인 언어는 Godot에 내장된 편집기에서 작성할 수 있는 반면 C#과 C++은 별도의 IDE에서 작업을 해야 한다.

GDScript는 파이썬에서 대부분의 문법을 따온 자체 스크립트 언어다.[4]

GDScript 문법 치트시트

내장 에디터에서 함수나 변수를 Ctrl클릭하면 정의된 곳이나 문서 도움말로 갈 수 있다.

AtomVisual Studio Code에도 GDScript 관련 확장 기능이 있다.
자체 에디터에서 편집하는게 힘들다면 Code를 쓰는 것이 좋다.[5]

VisualScript는 언리얼 엔진 4의 블루프린트처럼 코딩 대신 '블럭과 연결'이란 방식으로 이루어진 언어로, 비프로그래머에게도 쉽게 다가갈 수 있을지도 모른다. 하지만 4.0에서 지원 중단되었다. Godot 4.0 will discontinue VisualScript

3.0 버전부터 C#을 사용할 수 있는 Mono 버전이 따로 배포된다.[6][7]

4.0 버전 이후로 Mono 런타임은 더 이상 사용되지 않으며, .NET으로 전환되었다. 이에 따라 Mono를 통한 안드로이드와 iOS 앱 빌드가 막혔지만, 대신 .NET Native를 사용해 빌드하는 것이 가능해졌다. Current state of C# platform support in Godot 4.2

한편 GDNative라는 이름으로 C++을 비롯한 컴파일 언어들을 지원하기 시작했다. Godot 자체가 C++로 만들어진 엔진이다보니 호환성도 좋다.

하지만 C++ 인터페이스는 공식적인 지원은 없다고 한다. C++ 이외에도 Rust처럼 다이나믹 라이브러리로 컴파일 할 수 있는 언어라면 모두 사용할 수 있다.

추가적으로 셰이딩 언어도 지원하므로 알아두는 편이 좋다.

2.4. 씬과 노드와 리소스

엔진 내에서 대부분의 게임 요소는 트리 구조의 씬(Scene)으로 만들어진다. 장면, 게임오브젝트, 캐릭터 등이 하나 혹은 여러개의 씬으로 작동한다.

이 씬은 노드(Node)의 집합으로 이루어지며, 노드는 리소스(Resource)의 집합으로 이루어진다.[8]

게임에 필요한 기능 대부분은 이 노드에서 찾을 수 있다. 예를 들어 버튼을 만들기 위한 'Button' 노드가 있고, 타일맵을 만들기 위한 'TileSet'과 이를 사용하는 'TileMap' 노드가 있다. 그렇기에 많은 노드가 있고 이를 구성하는 리소스는 더 많다.

씬도 인스턴스를 통해 다른 씬의 노드의 형태로 들어갈 수 있다. 이렇게 여러 노드와 씬이 중첩되어서 캐릭터가 되고, 아이템이 되고 노드끼리 시그널을 주고 받으면서 게임을 만드는 것이 Godot의 핵심이다.(#)

Player
+------------------+
|            Scene |
| +------+         |
| | Node |         |
| +------+         |
|     |            |
|     |  +------+  |
|     +--| Node |  |
|     |  +------+  |
|     |  +------+  |
|     +--| Node |  |
|        +------+  |
+------------------+


씬의 트리구조는 위에서 아래로 처리되는 방식으로 포토샵 레이어처럼 밑에서 위로 쌓는 방식과 반대이다. 가령 Viewport[9] 노드로 3D 오브젝트를 렌더링해서 Sprite 노드에 텍스처를 연결해줄 때 Sprite가 Viewport보다 선행되면 실행에는 문제가 없지만 약간의 오류가 생긴다.

2.5. 지원 플랫폼

2.5.1. Official Support

공식으로는 Windows, macOS, Linux에서 작업이 가능하고, 비공식적으로 FreeBSD, OpenBSD, Haiku로 포팅을 하는 모양이다.

당연히 Windows, macOS, Linux로 게임을 출시할 수 있으며[10], 모바일로는 Android와 iOS, 웹으로는 WebAssembly를 통해 게임을 출시할 수 있다.

2.5.2. 콘솔 미지원

아쉽게도 현재 공식적인 콘솔 지원은 없다.

고도 엔진이 자유-오픈 소스 소프트웨어 프로젝트이다 보니, 독점 소프트웨어인 콘솔별 개발 툴 혹은 라이브러리를 포함하여 공개할 수 없다.

현재 콘솔 포팅을 위한 가장 쉬운 방법은 고도 엔진을 콘솔로 포팅하는 퍼블리셔와 협력(계약)하는 것이다.[11]
2.5.2.1. Third-party

여기여기를 참고.

Third-party support
2.5.2.2. W4 Consoles

W4 Games는 고닷 엔진의 베테랑인 후안 리니에트스키, 레미 베르셸데, 파비오 알레산드렐리, 베테랑 사업가 니콜라 파로나토가 설립한 회사로 관련 제품으로 W4 Consoles이라는 기술 레이어 역할을 하는 미들웨어 소프트웨어로, 여러 대상 플랫폼(Nintendo Switch™, Xbox Series X|S™, PlayStation®5)에서 게임을 원활하게 이식할 수 있도록 지원하며, 효율적인 게임 포팅을 위한 표준화된 프레임워크를 제공한다고 한다.

W4 Games Announces Pricing Model for Console Ports


3. 공식 배포 버전

공식 버전은 3.X 버전과 4.X 버전으로 나뉜다. 고도 엔진 3.X 버전과 4.X 버전의 프로젝트가 호환이 되지 않는다.

3.1. 3.0

3.1.1. 3.5 LTS (2022년 8월 5일 출시)

2023년 9월 26일, 현재 최신 버전은 3.5.3로 장기 지원(LTS:Long Term Support) 버전이다. 기존의 Standard 버전(혹은 Classic 버전)과 C#을 지원하는 Mono 버전으로 나뉜다. 컴퓨터가 OpenGL 2.1과 OpenGL ES 2.0을 호환해야 한다.

Mono 버전의 경우, Visual Studio 2019용 Build Tools 또는 MonoSDK를 통해 MSBuild가 설치되어 있어야 한다.

3.2. 4.0

3.2.1. 4.0 (2023년 3월 1일 출시)

2023년 8월 3일: Godot 4.0.4 업데이트

Godot 4.0 sets sail: All aboard for new horizons

2023년 3월 1일 정식 릴리즈 버전이 공개되었다.

4.X 버전은 3.X 버전의 프로젝트 파일과 호환이 되지 않는다고 한다. 참고해두자.

또, 클래스 명칭과 GDScript의 문법이 3.X와 다르고 Tilemap 시스템이 새로 개편되었다.

VulkanDirectX 12를 지원하기 시작했다.

3.2.2. 4.1 (2023년 7월 6일 출시)

Release Management Post Godot 4.0
2023년 4월 20일 공식 사이트에 게시된 뉴스에 의하면 릴리스 주기를 단축하여, 3, 4, 5월 병합 단계를 거쳐(3개월의 기능 통합과 1개월의 버그 수정 단계), 6월 말 Godot 4.1를 출시할 예정으로 변경됐다.

2023년 7월 6일: Godot 4.1 출시
이후 한 달 늦어진 2023년 7월 6일, 고도 4.1 정식 버전이 출시되었다.
  • 향상된 AI 네비게이션 회피 기능
  • 코드 편집기 창 분리
  • 노드에 대한 순차적 혹은 병렬 처리 제어 가능한 새로운 프로퍼티
  • 씬에 대한 실험적인 멀티스레딩 기능
  • GDScript: 정적 변수
  • GDScript: 인라인 독스트링(documentation string)

2023년 7월 17일: Godot 4.1.1 업데이트

2023년 10월 4일: Godot 4.1.2 업데이트

3.2.3. 4.2 (2023년 11월 30일 출시)

2023년 11월 30일: Godot 4.2 출시
  • 파일을 선택 시 Godot 자체 파일 탐색기(FileDialog 노드) 대신 외부 탐색기 지원.

2023년 12월 12일: Godot 4.2.1 유지 관리 릴리즈

3.2.4. 4.3

dev 1에서 새로운 Direct3D 12 렌더링 드라이버가 포함되었다. 하지만 사유 소프트웨어를 배포하는 것이 Godot 프로젝트의 사명에 어긋난다고 주장하며, 이 때문에 별도로 컴파일을 하여야 사용 가능하다.

dev 3에서는 Direct3D 12 드라이버의 지원이 공식 빌드에 포함되었다. 단 DirectX 셰이더 컴파일러를 통해 현재 실행 중인 아키텍처에 맞게 dxil.dll을 에디터나 내보낸 프로젝트에 복사하여야 D3D12 백엔드가 활성화가 가능하다.

4. 논란

고도 엔진의 前 메인테이너가 쓴 내부 고발에 따르면 기여자들의 의견을 묵살하거나 집단 괴롭힘, 극단적 친러 발언에 대한 반발에도 도리어 가해자를 감싸주고 피해자를 밴하는 사례가 있다고 한다. 커뮤니티가 마치 종교처럼 리드 개발자를 추종하고 약속한 것들을 제대로 이행하지도 않아 아예 오픈소스계의 거대한 스캠이 아니냐는 비난도 나오고 있다. #

내부고발 문서에 저자 이외에 다른 사람들의 의견들도 올라와 있다. #

5. 여담

  • 3D 작업물은 COLLADA(*.dae) 형식으로 가져온다. Blender 2.7x에서 작업한 파일을 가져오려면 공식 홈페이지에서 제공하는 애드온을 사용하는 편이 좋다. (밑의 Better Collada Exporter 참고) Blender 2.8 이후로는 Better Collada 애드온이 업데이트 되지 않고 있으며 블렌더 기본 Collada로 임포트 하면 에니메이션 축이 제대로 넘어 오지 않는다.[12] Blender 2.8x 이후로는 glTF 2.0 포멧으로 3D 작업물을 가져오는게 대세가 되어서 Better Collada 에드온의 버전업은 아마 없을 것이라고 한다. NLA로 에니메이션 관리만 잘하면 다중 에니메이션도 잘 넘어 온다.
  • 2.1 버전부터 다국어 환경을 지원하고 한국어 UI가 추가 되었다. 3.4 이전까지는 용어상 상용 엔진의 한국어 번역과 다른 부분이 있을 수도 있었으나 한 번역가에 의해 Godot 엔진의 주요 용어가 언리얼 엔진의 용어를 바탕으로 변경되었다.[13] 고해상도 작업 환경을 위해 UI를 백터로 만들었으며 이를 위해 국내 오픈소스 프로젝트인 토르 벡터 그래픽스 엔진을 탑재하였다.자체 한글 글꼴도 지원해서 이제 한글이 안 보이거나 하는 문제는 없다. UI 작업처럼 글꼴를 지정해줘야 하는 작업은 여전히 글꼴을 해당 언어를 지원하는 글꼴이 있어야 한다. 비트맵 글꼴 이외에도 벡터 타입의 글꼴도 사용 가능하다.
  • 자금
    • 웹소켓, 웹어셈블리와 웹GL 2.0 지원을 위해 모질라가 모질라 오픈 소스 지원의 미션 파트너로 자금을 후원했다.
    • Godot Engine의 스크립트 엔진으로 C# 향상을 위해 미겔 데 이카사의 지원으로 Microsoft가 자금을 후원하였다.
    • Godot Engine 4.0에서는 그래픽 렌더링과 GDScript 향상을 위해 에픽게임즈가 자금을 후원했다.
    • XR 작업을 위해 메타의 리얼리티 랩으로부터 자금을 두 번 후원받았다.
  • Lorien은 GDScript로 개발한 드로잉 프로그램이다.
파일:godette engine.png
* 2021년 4월 1일현 엔진 이름을 고데트로 바꾼다는 드립을 올린적 있었는데[14] 이게 큰 반향을 가져와서 3D 모델링이 만들어지는 등 유니티쨩과 비슷한 위치를 가져가게 되었는데, 별개로 해당 만우절 농담은 고돗이 비전문적인 엔진이라는 선입견에 맞춰 장난기를 더한 농담이었는데 이 농담에서 "비전문적"이라는 부분을 진지하게 받아들이는 유저들이 나와서 이에 대해 사과하는 사과문이 같이 올라오게 되었다.
  • 유니티 엔진이 정액제 정책을 정량제 정책으로 바꾼다는 발표 이후로 대체 엔진 중 하나로 급부상했다. 오픈소스를 지향하고 있으며 이용료도 완전 무료기 때문이다. 이에 개발자는 원래 유니티와 척을 둘 이유가 없어 딱히 마이그레이션을 지원하지 않았으나 상황이 바뀌었다고 이 사태에 대해서 입장을 표명했다.#

5.1. 이름의 유래

사뮈엘 베케트의 연극 고도를 기다리며의 'Godot'를 따와 만든 이름이다.

고돗 혹은 고닷 엔진이라고 부르기도 하지만 굳이 말하면 '고도'가 맞는 표현이다. 프랑스어는 마지막 자음[15]을 발음을 하지 않는 경향이 있다.[16] 그러나 'Godot'이라고 검색하면 고도 검사[17]가 나오고, '고도'라고 검색하면 고도의 1번 문서가 먼저 검색된다.

현재는 이름이 유명해져서인지 고도 검사는 나오지는 않는다.


해외에서도 생각하는 것은 똑같다. 실제 '고도를 기다리며' 연극의 '고도'를 발음하는 방법도 크게 Go-dot[고닷]과 Guh-dough[고도]로 나뉘었다. 때문에 몇몇 사람들은 엔진 이름을 바꿔야 한다고 주장하기도 한다.

6. Made with 고도 엔진

Godot Official Showcase

6.1. Game




Unofficial list of games that are made with Godot Engine
스팀에 출시된 고도엔진으로 만든 게임 리스트[18]

6.2. Apps & Tools


7. 관련 사이트


[1] .NET 버전, .NET SDK 필요[2] 만약 모노 버전을 사용한다면 모노/닷넷 SDK를 깔 필요가 있지만 Windows 환경이라면 닷넷 SDK는 일반적으로 컴퓨터에 기본 포함되어 있는 경우가 많다.[3] 플랫폼 별로 실행 파일 1~2개가 포함된 압축 파일로 제공된다.[4] 파이썬에 익숙하다면 쉽게 익힐 수 있다. 추가되거나 바뀐 키워드(var, func)와 Qt의 signal과 같은 몇 가지 차이점만 고려하면 된다.[5] 시그널 연결 상태는 확인할 수 없다.[6] 게임 개발에서 C#의 범용성을 생각하면 GDScript는 메인 스크립트 언어에서 밀려나 2군으로 전락할 가능성이 있다.[7] 추가 기능이 GDScript로 우선 제공되므로, C#에 대한 우선도가 밀린다.[8] 씬은 유니티(게임 엔진)에 있는 Prefab나 언리얼 엔진에 있는 블루프린트와 비슷하다. 그런데, 씬 별로 별개의 탭을 열어 편집하는 방식은 언리얼 엔진에 블루프린트 편집 방식에 가깝다.[9] 3D 오브젝트를 렌더링해서 실시간 텍스처로 출력한다. 게임 내의 모든 Viewport는 하나의 씬으로 취급하므로 카메라 레이어로 구분해주지 않으면 보이는 모든 오브젝트를 출력한다.[10] Linux 기반 스팀덱도 공식적으로 지원한다.[11] Steam 등으로 PC 게임 시장에 우선 출시하여 히트하면, 콘솔 대상 퍼블리셔가 연락할 듯 하다.[12] 블렌더와 고도 엔진의 3차원 축이 다르기 때문이다. *.fbx 임포트도 지원하지만 정상적으로 데이터가 넘어 오지 않기 때문에 논외[13] 단, 가져오기(Import), 내보내기(Export), 매개변수(Parameter), 목록(List), 물리(Physics), 방출기(Emitter), 변형(Transform), 속성(Property), 실시간(Live): 언리얼 엔진에서도 실시간이라는 용어를 사용하기도 한다. 요소(Element), 이름 바꾸기(Rename): 언리얼 엔진에서는 이름 변경으로 번역되었다, 재설정(Reset), 조명(Lighting), 참조(Reference)라는 용어는 한국어로 번역되었다.[14] 이미지에 나온 고데트 이미지는 현 Godot 엔진의 로고 제작자가 3.0 버전 출시를 기념으로 만든 캐릭터로 원래는 만우절 농담을 위해 만들어진게 아닌 별개의 창작물이었다.[15]C, F, L, R, B, K, Q 제외. 또한 BKQ로 끝나는 단어는 드물기에 보통 CRFL정도만 생각하면 된다.[16] 가끔 예외가 아닌데도 발음하는 경우가 있는데 대부분 다른 언어에서 온 표현이거나 고유명사인 경우다. 하지만 절대적인건 아니라 각 단어별, 이름별로 확인해보는게 제일 정확하다.[17] 이쪽도 이름의 기원이 똑같은 고도를 기다리며기도 하다.[18] 실제 3000 개 정도 된다고 한다[19] 정확히는 이식한 업체가 Godot Engine 3를 기반으로 자체 개량한 엔진인 Blind Squirrel Engine을 통해 리마스터 및 이식했다.[20] Godot 3.2 버전으로 제작