고도 (게임 엔진)

**고도**()는 MIT 라이선스 하에 배포되는 크로스 플랫폼, 자유 오픈 소스 게임 엔진이다. 처음에는 아르헨티나의 소프트웨어 개발자인 후안 리니에츠키(Juan Linietsky)와 아리엘 만주르(Ariel Manzur)가 부에노스아이레스에서 개발했으며, 2014년 공개 출시 전에는 라틴 아메리카의 여러 회사에서 사용되었다. 개발 환경은 많은 플랫폼에서 실행되며 더 많은 플랫폼으로 내보낼 수 있다. PC, 모바일, 웹, 가상현실, 증강현실, 확장현실 및 혼합 현실 플랫폼을 대상으로 하는 2D 및 3D 게임을 모두 제작할 수 있도록 설계되었으며 게임 외의 소프트웨어 개발에도 사용할 수 있다.

## 특징
고도를 사용하면 비디오 게임 개발자가 C++, C# 및 GDScript와 같은 여러 프로그래밍 언어를 사용하여 3D 및 2D 게임을 모두 제작할 수 있다. 노드 계층 구조를 사용하여 개발 경험을 용이하게 한다. 클래스는 노드 유형에서 파생되어 동작을 상속하는 더 전문화된 노드 유형을 생성할 수 있다. 노드는 재사용 가능하고, 인스턴스화 가능하며, 상속 가능하고, 중첩 가능한 노드 그룹인 "씬"(scene) 내부에 구성된다. 노드는 데이터 객체를 전송할 수 있는 신호(signal)로 연결된다. 스크립트 및 그래픽 자산을 포함한 모든 게임 리소스는 (데이터베이스가 아닌) 컴퓨터의 파일 시스템의 일부로 저장된다. 이 저장 솔루션은 소프트웨어 버전 관리 시스템을 사용하는 게임 개발 팀 간의 협업을 용이하게 하기 위한 것이다.

### 지원 플랫폼
이 엔진은 여러 플랫폼으로의 배포를 지원하며 각 플랫폼에 대한 텍스처 압축 및 해상도 설정을 지정할 수 있다. 웹사이트는 에디터 플랫폼용 바이너리만 제공하며, 다른 플랫폼으로의 프로젝트 내보내기는 고도 에디터 내에서 수행된다.

고도 게임 제작에 사용되는 고도 에디터는 다음 플랫폼을 지원한다.
* 고도 웹사이트, 스팀, 에픽, Itch에서 배포되는 데스크톱 플랫폼 리눅스, macOS, 윈도우.
* 웹 에디터가 있는 웹 플랫폼 HTML5, 웹어셈블리.
* 안드로이드 휴대폰 및 태블릿 (고도 3.6 이상 및 4.3 이상에서 사용 가능).

내보내기가 지원되는 프로젝트는 다음과 같다.
* 데스크톱 플랫폼 리눅스, macOS, 윈도우
* 모바일 플랫폼 안드로이드, iOS
* 웹 플랫폼 HTML5, 웹어셈블리 (C#은 아직 웹에서 사용할 수 없음)
* HTC 바이브, 밸브 인덱스, 오큘러스 리프트, 오큘러스 고, 오큘러스/메타 퀘스트, 모든 윈도우 믹스트 리얼리티 헤드셋, 애플 ARKit을 포함한 가상 현실 및 증강 현실 플랫폼.

고도 엔진은 콘솔에서 실행할 수 있지만, 엔진의 오픈 소스 라이선스와 호환되지 않기 때문에 인기 있는 콘솔은 공식적으로 지원되지 않는다. 게임은 고도 코더들이 설립한 상업 회사인 W4 게임즈를 포함한 타사 회사를 통해 콘솔로 포팅될 수 있다. CPU 아키텍처의 경우 고도는 모든 데스크톱 플랫폼에서 x86을 공식적으로 지원하며(32비트 및 64비트 모두 가능), macOS, 리눅스, 모바일 플랫폼 및 독립형 메타 플랫폼에서 공식 ARM을 지원한다(32비트 및 64비트 모두 가능).

고도는 또한 호라이즌 OS를 실행하는 메타 퀘스트 장치용 모바일 XR 포트를 지원하여 개발자가 기존 컴퓨터 없이 헤드셋에서 직접 몰입형 애플리케이션을 만들 수 있도록 한다.

### 스크립팅
섬네일|306x306px|고도 3.4의 내장 스크립트 에디터를 사용하여 GDScript 파일을 편집하는 스크린샷
고도는 통합 언어인 GDScript, C++, C#을 포함하여 게임 제작을 위한 다양한 프로그래밍 언어를 지원한다. 또한 엔진에는 다른 언어와의 바인딩을 생성하기 위한 기능인 GDNative(고도 4.x부터 GDExtension)가 포함되어 있다. 공식적으로 지원되는 GDNative/GDExtension 언어에는 C와 C++가 있다. 커뮤니티 지원 언어에는 러스트, 님, 자바스크립트가 있다. 비주얼 코딩은 원래 GDScript의 시각적 등가물로 설계된 내장 언어인 비주얼스크립트(VisualScript)에 의해 지원되었다. 비주얼스크립트는 고도 4.0의 코어 엔진에서 제거되었다. 브라우저에서 실행되는 고도 게임은 브라우저의 자바스크립트 코드와 인터페이스할 수 있다.

고도 에디터에는 자동 들여쓰기, 구문 강조 및 코드 완성, 코드 접기 기능이 있는 텍스트 에디터가 포함되어 있다. 또한 디버거도 제공한다.

#### GDScript

고도는 자체 내장 스크립트 언어인 GDScript를 가지고 있으며, 이는 구문적으로 파이썬과 유사한 고수준, 점진적 타입 프로그래밍 언어이다. 파이썬과 달리 GDScript는 고도의 씬 기반 아키텍처에 최적화되어 있으며 변수의 엄격한 타이핑을 지정할 수 있다. 고도 개발자들은 사용자 정의 언어를 사용하면 뛰어난 최적화와 에디터 통합이 가능하다고 판단하기 전에 루아, 파이썬, 스쿼럴과 같은 많은 대체 타사 스크립트 언어를 테스트했다고 밝혔다.

GDScript는 지속적으로 진화하는 스크립트 언어이며, 고도의 각 주요 새 릴리스마다 변경 및 추가 사항이 구현되었다. 타입이 지정된 배열과 타입이 지정된 딕셔너리는 각각 4.0과 4.4에 추가되었다. 선택적 정적 타입은 C++ 백엔드가 최적화를 적용할 수 있게 하여 성능을 눈에 띄게 향상시킨다. 정적 타입이 지정된 GDScript는 릴리스 빌드에서 40% 이상 더 빠르게 실행되는 것으로 관찰되었다.

간단한 "Hello world" 프로그램은 다음과 같이 작성할 수 있다.

```gdscript
func _ready():
	print("Hello World")
```


간단한 변수는 다음과 같이 작성할 수 있다.

```gdscript
var Hello = 12
    var bye = 13
```

그리고 상수는 다음과 같이 작성할 수 있다.

```gdscript
const HELLO = 12
    const BYE = 13
```


피보나치 수열을 생성하는 더 복잡한 프로그램의 예는 다음과 같다.

```gdscript
func _ready():
	var nterms = 5
	print("Fibonacci sequence:")
	for i in range(nterms):
		print(fibonacci(i))

func fibonacci(n):
	if n <= 1:
		return n
	else:
		return fibonacci(n - 1) + fibonacci(n - 2)
```


### 렌더링
고도 3.x의 그래픽 엔진은 OpenGL ES를 사용하거나 최신 버전에서는 벌칸이 지원된다. 애플 플랫폼에서는 메탈 지원도 존재한다. 엔진은 노멀 매핑, 반사성, 그림자 맵을 사용한 동적 그림자, 베이크된 및 동적 전역 조명, 블룸, 피사계 심도, HDR 렌더링, 감마 보정과 같은 전체 화면 후처리 효과를 지원한다. GLSL과 유사한 단순화된 셰이딩 언어도 통합되어 있다. 셰이더는 재질 및 후처리에 사용할 수 있다. 또는 비주얼 에디터에서 노드를 조작하여 만들 수 있다.

고도는 또한 3D 엔진과 독립적으로 작동할 수 있는 별도의 2D 그래픽 엔진을 포함하고 있지만, 2D와 3D 사이의 복잡한 혼합을 만들기 위해 동일한 디스플레이에서 동시에 작동할 수도 있다. 2D 엔진은 조명, 그림자, 셰이더, 타일셋, 패럴랙스 스크롤링, 폴리곤, 애니메이션, 물리 및 파티클과 같은 기능을 지원한다. '뷰포트 노드'를 사용하여 2D와 3D를 혼합하는 것도 가능하다.

UI 및 2D 벡터 그래픽스 자산 지원을 위해 고도는 제3자 라이브러리인 ThorVG를 통합했다.

### 기타 기능
고도에는 골격 애니메이션, 블렌딩, 애니메이션 트리, 모핑, 실시간 컷신을 위한 GUI가 있는 애니메이션 시스템이 포함되어 있다. 게임 엔터티에 정의되거나 생성된 거의 모든 변수를 애니메이션화할 수 있다. 고도는 자체 사내 물리 엔진을 가지고 있으며, 고도 4.x부터는 제3자가 GDExtension을 통해 자체 물리를 통합할 수 있다. 고도 3.x에는 불렛 물리 엔진이 포함되어 있으며 기본적으로 사용된다. 고도 4.4에서는 졸트(Jolt) 물리 엔진이 추가되었지만 기본 엔진으로 사용되지는 않는다.

## 역사
### 비공개 소스 시대 (2001~2014)
후안 'reduz' 리니에츠키와 아리엘 'punto' 만주르는 1999년 게임 개발 컨설팅 회사인 코데닉스(Codenix)를 공동 설립했다. 2001년부터 그들은 당시 코드명 "라보토"(Larvotor)라는 엔진 작업을 시작했으며, 이는 아르헨티나의 타사 회사에 라이선스가 부여되었다. 이후 10년 동안 엔진의 이름은 "레거시"(Legacy), "NG3D", "라비타"(Larvita), 그리고 마지막으로 "고도"(Godot)로 변경되었다. "고도"라는 이름은 사뮈엘 베케트의 희곡 《고도를 기다리며》를 참조하여 선택되었으며, 엔진에 새로운 기능을 추가하려는 끝없는 소망을 나타낸다. 이는 철저한 제품에 가까워지게 하겠지만, 결코 그렇게 되지는 않을 것이라는 의미이다. 리니에츠키와 만주르는 오캄(OKAM)에 합류했고 회사는 스퀘어 에닉스를 포함한 비공개 소스 시대의 여러 스튜디오와 협력했다. 그러나 리니에츠키는 당시 아르헨티나의 정치적, 경제적 불안정으로 인해 작업이 방해를 받았다고 밝혔다.

### 자유 및 오픈 소스 시대 (2014~현재)
2014년까지 리니에츠키는 아르헨티나를 떠날 계획이었으며, 그는 MIT 라이선스 하에 깃허브에 고도의 소스 코드를 대중에게 공개했다. 고도는 2015년 11월 4일 소프트웨어 자유 보존(SFC)에 합류했다. 2016년 6월 22일, 고도는 웹소켓, 웹어셈블리 및 WebGL 2.0 지원을 추가하는 데 사용하기 위해 20,000달러의 모질라 오픈 소스 지원(MOSS) "미션 파트너" 상을 받았다.

고도의 3.0 업데이트는 비공개 소스 시대에는 상업적으로 불가능했던 엔진의 주요 리팩토링이 필요한 긴 기능 목록을 해결하는 것을 포함했다. 미겔 데 이카자의 지원으로 고도는 2017년 마이크로소프트로부터 고도에서 C#을 스크립팅 언어로 구현하기 위해 24,000달러의 기부금을 받았다. 패트리온이 시작되어 리니에츠키와 베르셸데가 프로젝트에 전념할 수 있게 되었다. 3.0 버전은 2018년에 출시되었다. 3.1 업데이트는 모바일 하드웨어를 겨냥한 OpenGL ES 2.0 렌더러를 추가했는데, 당시 제조사들의 ES 3.0 모바일 지원이 제한적이었기 때문이다.

2019년에 두 개의 팀이 구성되었는데, 리니에츠키의 팀은 벌칸 브랜치(나중에 4.0으로 출시됨)에 집중하고 베르셸데의 팀은 3.x 브랜치에 대한 추가 업데이트를 다루었다. 리니에츠키는 문제의 일부가 3.x 브랜치가 단일 코어 프로세서와 같은 오래된 아키텍처 원칙을 염두에 두고 구축되었다는 점이라고 밝혔다. 따라서 의도는 4.0을 위해 핵심 아키텍처를 재개발하고 현대적 원칙을 고려하는 것이었다. 2020년, 고도는 그래픽 렌더링과 엔진의 내장 게임 개발 언어인 GDScript를 개선하기 위해 25만 달러의 에픽게임즈 상을 받았다. 이 상금은 2년 동안 리니에츠키와 조지 마르케스에게 지급되었고 기부금은 다른 목적으로 사용할 수 있게 되었다. 4.0 브랜치는 2022년 초 알파 형태로 출시되었으며, 한 해 동안 다듬어졌다.
그해 8월, 리니에츠키와 고도 팀의 다른 여러 멤버들은 엔진 기반의 상용 서비스를 제공하기 위해 W4 게임즈를 설립했다. 여기에는 오픈 소스 코드베이스에 포함될 수 없는 콘솔 포팅이 포함된다. 11월, 고도는 SFC에서 새로 설립된 자체 고도 재단으로 전환할 계획을 발표했다.

벌칸 지원이 포함된 4.0 업데이트의 정식 출시는 2023년에 이루어졌으며, 에픽게임즈 스토어에 고도 엔진이 출시되기도 했다. 에픽 버전은 콘텐츠와 라이선스 측면에서 다른 버전과 동일하며, 스토어프론트는 단순히 배포 및 업데이트 수단으로 사용된다. 그러나 엔진의 .NET/C# 지원 버전은 에픽게임즈 스토어는 물론 Itch와 스팀에서도 사용할 수 없다. 9월, 유니티 테크놀로지스는 유니티 게임 설치 시 사용자에게 요금을 부과하는 "런타임 수수료" 추가를 포함하여 유니티 엔진 라이선스에 대한 주요 변경 사항을 발표했다. 그 결과 일부 개발자들은 유니티에서 고도로 전환했고, 리-로직은 고도에 10만 달러를 기부했으며 유니티의 오픈 소스 대안을 지원하기 위해 앞으로 매달 1,000달러를 기부할 것이라고 발표했다. 2년 후, 고도 재단의 에밀리오 코폴라는 이러한 변화의 결과로 기부금이 "두 배"로 늘어났다고 밝혔다.

2025년, 고도 재단은 기존 자산 라이브러리를 대체하기 위한 고도 에셋 스토어의 초기 베타 버전을 출시했다.

## 버전 역사

고도는 2014년 12월 15일에 버전 1.0에 도달하여 첫 번째 안정 릴리스와 라이트매핑, 내비메시 지원 및 더 많은 셰이더가 추가되었음을 알렸다. 버전 1.1은 2015년 5월 21일에 출시되었으며, 코드 에디터의 자동 완성 기능 개선, 비주얼 셰이더 에디터, 화면 및 창 관리를 위한 운영 체제에 대한 새로운 API, 개선된 2D 물리 및 재작성된 2D 엔진, 더 나은 블렌더 콜라다 지원, 새로운 다크 테마가 추가되었다.

고도 2.0은 2016년 2월 23일에 출시되었으며, 더 나은 씬 인스턴스화 및 상속, 새로운 파일 시스템 브라우저, 다중 씬 편집 및 향상된 디버거가 추가되었다. 이어 2016년 8월에는 자산 데이터베이스, 프로파일러 및 플러그인 API를 도입한 버전 2.1이 출시되었다.

; 고도 3
버전 3.0은 2018년 1월 29일에 출시되었으며, OpenGL ES 3.0으로 구현된 새로운 PBR 렌더러, 가상 현실 호환성 및 마이크로소프트의 24,000달러 기부 덕분에 모노를 통한 C# 지원이 추가되었다. 버전 3.0은 또한 엔진의 내장 3D 물리 백엔드 외에 불렛 물리 엔진을 추가했으며 데비안에 포함된 고도의 첫 번째 버전이었다.

고도 3.1은 2019년 3월 13일에 출시되었으며, 가장 주목할 만한 기능은 정적 타입이 지정된 GDScript 추가, GDScript용 스크립트 클래스 시스템 및 OpenGL ES 2.0 렌더러이다. 고도 3.2는 2020년 1월 29일에 출시되었으며, 가장 주목할 만한 기능은 대규모 문서 개선, 크게 개선된 C# 지원 및 glTF 2.0 파일 지원이다.

수석 개발자 후안 리니에츠키는 나중에 4.0을 위해 마스터에 병합될 별도의 벌칸 브랜치 작업에 대부분의 시간을 보냈기 때문에 3.2 작업은 대부분 다른 기여자들에 의해 수행되었다. 3.2 작업은 1년 동안 장기 지원 릴리스로 계속되었으며, OpenGL ES 2.0 배치 및 iOS용 C# 지원과 같은 기능을 추가한 대규모 패치 릴리스인 고도 3.2.2가 2020년 6월 26일에 포함되었다. 2021년 3월 17일, 버전 관리 전략이 시맨틱 버저닝을 더 잘 반영하도록 변경되어 3.3 안정 브랜치와 미래 3.4 릴리스로 기능을 백포팅하기 위한 3.x 브랜치가 생겼다.

고도 3.3은 2021년 4월 21일에 출시되었으며, macOS의 ARM 지원, 안드로이드 앱 번들 지원, MP3 지원, 오토데스크 FBX 지원, WebXR 지원 및 웹 에디터와 같은 기능이 포함되었다.

고도 3.4는 6개월간의 개발 끝에 2021년 11월 6일에 출시되었으며, 고도 3로 2D 및 3D 게임을 퍼블리싱하는 데 중요한 누락된 기능이나 버그 수정을 구현하고 기존 기능을 더 최적화되고 안정적으로 만들었다.

고도 3.5는 9개월간의 개발 끝에 2022년 8월 5일에 출시되었다. 고도 3.4와 마찬가지로 고도 3로 만든 2D 및 3D 비디오 게임에 중요한 누락된 기능이나 버그 수정을 구현하는 데 중점을 두었다. 기능에는 3D 물리 보간, 비동기 셰이더 컴파일 등이 포함된다.

고도 3.x는 4.0 베타의 초기 배포 시 훨씬 느린 일정으로 배치되었으며, 이에 따라 고도 3.6은 2년의 개발 끝에 2024년 9월 9일에 출시되었다. 새 릴리스에는 2D 물리 보간 및 계층적 컬링, 3D 메시 병합, LOD, 더 엄격한 그림자 컬링, ORM 재질 등이 추가되었다.

; 고도 4
고도 4는 2023년 3월 1일에 출시되었다. 렌더링 시스템을 개편하고, 벌칸 그래픽 API 지원을 추가하고, GDScript 성능과 사용성을 개선하고, 물리 및 애니메이션 시스템을 향상시키고, 기타 많은 기능과 버그 수정을 도입한 주요 업데이트이다. 고도 4의 개발은 2019년 리니에츠키가 벌칸을 사용하도록 렌더러를 재작성하면서 시작되었다. 2020년에는 여러 기여자가 개발팀에 합류하여 GDScript 개선, 물리 엔진 개편, 애니메이션 시스템 재작성, 에디터 사용성 향상 등 고도 4의 다양한 측면을 작업했다.

고도 4의 첫 번째 알파 버전은 2022년 1월 얼리 어답터들의 테스트를 위해 출시되었다. 여기에는 SDF 기반 전역 조명, GPU 기반 파티클, 동적 소프트 그림자와 같은 새로운 기능이 포함되었다. 2022년 9월, 고도 4는 베타 단계에 도달했다. 또한 WebXR 지원, 안드로이드 및 iOS용 C# 지원, 새로운 오디오 기능이 추가되었다. 2023년 3월 1일, 고도 4는 여러 베타 빌드와 버그 수정 후 공식적으로 안정 버전으로 출시되었다. 그래픽 품질, 렌더링 최적화 기술을 향상시키고 접근성 기능을 추가했다.

이어 2023년 후반에 고도 4.1이 출시되어 실험적인 씬 멀티스레딩, 에디터 향상, C# 개선 사항이 추가되었다. 고도 4.2는 2023년 11월 30일에 출시되어 애니메이션 도구 및 파티클 시스템 재작업, 가져오기 파이프라인 개선, FSR 2.2 지원이 구현되었다.

고도 4.3은 2024년 8월 15일에 출시되었으며, 비순환 그래프를 통한 GPU 동기화, 렌더 파이프라인 합성기 효과, 개선된 3D 애니메이션 리타겟팅이 추가되었다.

고도 4.4는 2025년 3월 5일에 출시되었으며 졸트 물리 엔진과의 통합이 도입되었다. 이어 2025년 9월에 고도 4.5가 출시되어 스텐실 버퍼 지원, 가능한 경우 배치된 셀 모양을 더 큰 충돌 모양으로 병합하는 타일맵레이어(TileMapLayer) 충돌 시스템 재작업과 같은 여러 기능이 도입되었다.

### 릴리스 역사

## 사용
오캄 스튜디오의 많은 게임이 고도를 사용하여 제작되었으며, 여기에는 에스코리아 어드벤처 게임 확장을 사용하는 《The Adventures of Dog Mendonça & Pizzaboy》가 포함된다. 또한 비프로그래머도 사용하기 쉽고 기존 학습 자료가 풍부하여 웨스트버지니아주의 고등학교 커리큘럼에 사용되었다. 《배틀필드 6》는 사용자 생성 콘텐츠 제작 플랫폼인 "*배틀필드 포털*"에 고도를 사용한다.

### 고도로 제작된 주목할 만한 비디오 게임

## 같이 보기
* 비디오 게임 개발

## 각주

### 주요 출처
본문에서 이 참조 앞에는 이중 칼표(‡)가 붙습니다.

## 외부 링크
* 
* 
* 고도로 제작된 게임 

분류:2014년 소프트웨어
분류:크로스 플랫폼 소프트웨어
분류:C로 작성된 자유 소프트웨어
분류:게임 엔진
분류:비디오 게임 IDE