Godot Engine

 


[image]
'''개발사'''
OKAM
'''출시일'''
2014년 12월 15일
'''유형'''
게임 엔진
'''기반 언어'''
GDScript / C#(Mono 버전, Mono SDK 필요)
'''요금'''
무료 (MIT 허가서)
Godot Engine
1. 개요
2. 상세
2.1. 이름의 유래
2.2. 특징
2.2.1. 완전 무료
2.2.2. 작은 용량
2.2.3. 지원 언어
2.2.4. 씬과 노드와 리소스
2.2.5. 지원 OS
3. 버전
3.1. 2.x
3.2. 3.x
3.3. 4.x
4. 기타
5. 국내 출시 게임
6. 관련 사이트


1. 개요


[image]
godot engine 3.x 버전의 작업 공간
아르헨티나에 본사를 둔 OKAM이라는 회사에서 인하우스 툴로 사용하던 게임 엔진으로 이를 MIT라이선스하에 오픈소스로 배포하는 엔진이 현재의 고도 엔진''(Godot Engine)''이다.
아직은 제작자의 풀이 크지 않다. 워낙 마이너한 엔진이다 보니 국내에 이 엔진의 존재를 아는 사람도 극소수이다. 스팀에서도 다운받을 수 있다. #

2. 상세



2.1. 이름의 유래


사뮈엘 베케트의 연극 고도를 기다리며의 'Godot'를 따와 만든 이름이다. 고돗 혹은 고닷 엔진이라고 부르기도 하지만 굳이 말하면 '고도'가 맞는 표현이다. 그러나 'Godot'이라고 검색하면 고도 검사가 나오고, '고도'라고 검색하면 고도의 1번 문서가 먼저 검색된다. 현재는 이름이 유명해져서인지 고도 검사는 나오지는 않는다.

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

2.2. 특징



2.2.1. 완전 무료


Godot 엔진은 완전 무료이다. 상업적인 용도로 사용하더라도 라이센스 비용이나 로얄티를 지급할 필요가 전혀 없다. 그리고 앞으로도 항구적으로 무료로 유지하기 위해 이를 비영리 자선 기관인 Software Freedom Conservancy(소프트웨어 자유 보호단)가 법적으로 대리하고 있다. 엔진의 개발과 유지에 필요한 비용은 Patreon을 통해 정기적인 후원을 받거나 Paypal을 통해 직접 기부도 받고 있다.

2.2.2. 작은 용량


보통 게임 엔진을 다운받으면 설치 파일을 받고, 거기서 따로 설치 과정을 진행해야 한다. 하지만 Godot는 엔진 파일을 압축해서 zip 형식으로 준다. 파일 크기는 Windows용 3.2.3 버전 기준으로 Standard 64bit 버전은 27.4MB, C#을 지원하는 Mono 64bit 버전은 57.9MB만 차지한다. 압축을 풀면 실행파일 단 하나만 있고 파일 크기도 Standard 64bit 버전의 경우 61.9MB에 불과하다. 비록 게임을 배포하려면 200MB 정도의 내보내기 템플릿을 추가로 다운받아야 하지만...

2.2.3. 지원 언어


메인 언어는 GDScript, VisualScript이고 그 외로 C#이랑 C++을 지원하고 있다. 메인 언어는 Godot에 내장된 편집기에서 작성할 수 있는 반면 C#과 C++은 별도의 IDE에서 작업을 해야 한다.
GDScript는 파이썬에서 대부분의 문법을 따온 자체 스크립트 언어다. AtomVisual Studio Code에도 GDScript 관련 확장 기능이 있다. 자체 에디터에서 편집하는게 힘들다면 Atom을 쓰는 것이 좋다.
VisualScript는 언리얼 엔진 4의 블루프린트처럼 코딩 대신 '블럭과 연결'이란 방식으로 이루어진 언어로, 비프로그래머에게도 쉽게 다가갈 수 있을지도 모른다.
3.0 버전부터 C#을 사용할 수 있는 Mono 버전이 따로 배포된다.[1] 지원되는 플랫폼은 데스크탑과 안드로이드[2], 아이폰[3]이다. 한편 GDNative라는 이름으로 C++을 비롯한 컴파일 언어들을 지원하기 시작했다. Godot 자체가 C++로 만들어진 엔진이다보니 호환성도 좋다. 하지만 C++ 인터페이스는 공식적인 지원은 없다고 한다. C++ 이외에도 Rust처럼 다이나믹 라이브러리로 컴파일 할 수 있는 언어라면 모두 사용할 수 있다.
추가적으로 셰이딩 언어도 지원하므로 알아두는 편이 좋다.

2.2.4. 씬과 노드와 리소스


엔진 내에서 대부분의 게임 요소는 트리 구조의 씬(Scene)으로 만들어진다. 장면, 게임오브젝트, 캐릭터 등이 하나 혹은 여러개의 씬으로 작동한다. 이 씬은 노드(Node)의 집합으로 이루어지며, 노드는 리소스(Resource)의 집합으로 이루어진다. 게임에 필요한 기능 대부분은 이 노드에서 찾을 수 있다. 예를 들어 버튼을 만들기 위한 'Button' 노드가 있고 타일맵을 만들기 위한 'TileSet'과 이를 사용하는 'TileMap' 노드가 있다. 그렇기에 많은 노드가 있고 이를 구성하는 리소스는 더 많다. 씬도 인스턴스를 통해 다른 씬의 노드의 형태로 들어갈 수 있다. 이렇게 여러 노드와 씬이 중첩되어서 캐릭터가 되고, 아이템이 되고 노드끼리 시그널을 주고 받으면서 게임을 만드는 것이 Godot의 핵심이다.(#)

2.2.5. 지원 OS


공식으로는 Windows, macOS, Linux에서 작업이 가능하고, 비공식적으로 FreeBSD, OpenBSD, Haiku으로 포팅을 하는 모양이다. 당연히 Windows, macOS, Linux로 게임을 출시할 수 있으며, 모바일로는 Android와 iOS, 웹으로는 WebAssembly를 통해 게임을 출시할 수 있다. 아쉽게도 현재 공식적인 콘솔 지원은 없다. 여기를 참고.

3. 버전


버전은 2.x 버전과 3.x 버전으로 나뉜다. Godot 엔진이 3.x으로 업데이트가 되면서 이전 고도 엔진 2.x버전의 프로젝트가 호환이 되지 않는다.

3.1. 2.x


현재 최신 버전은 2.1.6이다. 다운로드 페이지에서 아래로 내려가보면 다운로드 링크가 있다. 기존 2.1.x 사용자를 위해 만든 마지막 레거시 버전으로, 대부분의 에셋이나 프로젝트 파일이 3.x 버전과 호환이 되지 않기 때문에 만들게 되었다. 그리고 OpenGL ES 2.0을 지원하는 휴대용 기기에 포팅하려면 이 버전을 사용해야만 했으나, 3.1 버전부터 OpenGL ES 2.0을 지원하면서 모바일 게임을 개발하기 위해 이 버전을 쓸 이유가 없어졌다.

3.2. 3.x


현재 최신 버전은 3.2.3 이다. 기존의 Standard 버전(혹은 Classic 버전)과 C#을 지원하는 Mono 버전으로 나뉜다. 컴퓨터가 OpenGL 2.1과 OpenGL ES 2.0을 호환해야 한다. Mono 버전의 경우, Visual Studio 2019용 Build Tools 또는 MonoSDK를 통해 MSBuild가 설치되어 있어야 한다.

3.3. 4.x


현재 4.0 버전이 개발 중에 있다. Vulkan API가 도입될 예정이다.

4. 기타


  • 3D 작업물은 COLLADA(*.dae) 형식으로 가져온다. Blender 2.7x에서 작업한 파일을 가져오려면 공식 홈페이지에서 제공하는 애드온을 사용하는 편이 좋다. (밑의 Better Collada Exporter 참고) blender 2.8 이후로는 Better Collada 애드온이 업데이트 되지 않고 있으며 블렌더 기본 Collada로 임포트 하면 에니메이션 축이 제대로 넘어 오지 않는다.[4] blender 2.8x 이후로는 glTF 2.0 포멧으로 3D 작업물을 가져오는게 대세가 되어서 Better Collada 에드온의 버전업은 아마 없을 것이라고 한다. NLA로 에니메이션 관리만 잘하면 다중 에니메이션도 잘 넘어 온다.
  • 2.1 버전부터 다국어 환경을 지원하고 한국어 UI가 추가 되었다. 용어상 다른 부분이 있을 수도 있으므로 이 점을 유의 해야 한다. 고해상도 작업 환경을 위해 UI를 백터로 만들었다. 자체 한글 폰트도 지원해서 이제 한글이 안보이거나 하는 문제는 없다. UI 작업 처럼 폰트를 지정해줘야 하는 작업은 여전히 폰트를 해당 언어를 지원하는 폰트가 있어야 한다. 비트맵 폰트 이외에도 벡터 타입의 폰트도 사용 가능하다.
  • 씬의 트리구조는 위에서 아래로 처리되는 방식으로 포토샵 레이어처럼 밑에서 위로 쌓는 방식과 반대이다. 가령 Viewport[5]노드로 3D 오브젝트를 렌더링해서 Sprite 노드에 텍스쳐를 연결해줄 때 Sprite가 Viewport보다 선행되면 실행에는 문제가 없지만 약간의 오류가 생긴다.
  • Godot Engine의 Mono 버전은 이의 개발에 대해 마이크로소프트가 자금을 후원하였다. Godot Engine 4.0에서는 그래픽 향상을 위해 에픽 게임즈가 자금을 후원했다.

5. 국내 출시 게임



6. 관련 사이트



[1] 게임 개발에서 C#의 범용성을 생각하면 GDscript는 메인 스크립트 언어에서 밀려나 2군으로 전락할 가능성이 있다.[2] C# support on Android, Ignacio Roldán Etcheverry[3] 3.2.2 beta 3 버전부터. C# Support for iOS Platform(neikeq)[4] 블렌더와 고도엔진의 3차원 축이 다르기 때문이다. *.fbx 임포트도 지원 하지만 정상적으로 데이터가 넘어 오지 않기 때문에 논외[5] 3d 오브젝트를 렌더링해서 실시간 택스쳐로 출력한다. 게임내의 모든 Viewport는 하나의 씬으로 취급하므로 카메라 레이어로 구분해주지 않으면 보이는 모든 오브젝트를 출력한다.