[[분류:게임 개발 도구]][[분류:게임 엔진]] [include(틀:게임 엔진)] ||<-2>
'''{{{+1 Godot Engine}}} [br]고도 엔진''' || ||<-2> [[파일:Godot Engine 로고.svg|width=100%]] || || '''개발사''' ||OKAM || || '''출시일''' ||[[2014년]] [[12월 15일]] || || '''최신버전''' ||4.1.2 || || '''유형''' ||[[게임 엔진]] || || '''기반 언어''' ||GDScript | [[C++]] | [[C##]][* .NET 버전, .NET SDK 필요]|| || '''플랫폼''' ||'''PC''' [br] [[Microsoft Windows|[[파일:Windows 로고.svg|height=16&theme=light]][[파일:Windows 로고 화이트.svg|height=16&theme=dark]]]] | [[macOS|[[파일:macOS 로고.svg|height=16&theme=light]][[파일:macOS 로고 화이트.svg|height=16&theme=dark]]]] | [[Linux|[[파일:Linux 로고.svg|height=16&theme=light]][[파일:Linux 로고 화이트.svg|height=16&theme=dark]]]] [br] '''모바일''' [br] [[안드로이드(운영체제)|[[파일:안드로이드(운영체제) 로고.svg|height=16&theme=light]]]][[안드로이드(운영체제)|[[파일:안드로이드(운영체제) 로고 화이트.svg|height=16&theme=dark]]]] | [[iOS|[[파일:iOS 로고.svg|height=16&theme=light]][[파일:iOS 로고 화이트.svg|height=16&theme=dark]]]] || || '''요금''' ||무료 ([[MIT 허가서]]) || || '''홈페이지''' ||[[https://godotengine.org/|Godot Engine]] || [목차] [clearfix] == 개요 == || [[파일:external/https://godotengine.org/storage/app/media/3.1/FileSystem%20dock/newlayout.png|width=100%]] || || Godot Engine 3.X 버전의 작업 공간 || [[아르헨티나]]의 개발자인 후안 리니에츠키(Juan Linietsky)와 아리엘 만수르(Ariel Manzur)가 개발한 [[게임 엔진]]. 본래 인하우스 툴로 사용하던 게임 엔진을 [[MIT 허가서|MIT 라이선스]]하에 오픈소스로 배포하는 엔진이 현재의 '''고도 엔진(Godot Engine)'''이다. 워낙 마이너한 엔진이다 보니 국내에 이 엔진의 존재를 아는 사람도 소수이다. [[Steam|스팀]]에서도 [[https://store.steampowered.com/app/404790/Godot_Engine/|다운받을 수 있다.]] 로열티 없는 오픈 소스 엔진이라는 메리트 때문에 [[유니티 엔진 요금제 개편 논란|유니티 파동]] 이후 인디 게임 개발자들 사이에선 하나둘 고도엔진으로 넘어가려고 시도하는 움직임이 있다. == 특징 == === 완전 무료 === 구성적으로 오픈소스를 취하고 있음에도 불구하고 세부적인 계약조건으로 수익을 제한하는 [[언리얼 엔진]] 같은 다른 엔진과는 다르게 코드와 엔진 자체가 통째로 [[MIT 허가서]]에 기반해서 무료로 제공되기 때문에 사용자는 수익을 빼앗길 염려를 전혀 하지 않아도 되며 엔진 개발비용은 전부 [[Patreon]] 등의 후원을 통해서 충당한다. === 아담한 엔진 === IDE를 포함한 대부분의 요소가 아무리 커도 150MB정도로 매우 컴팩트하며 별도의 설치도 필요 없을정도로 가볍다. 또한 추가적인 설치를 필요로 하는 요소 또한 없기 때문에[* 만약 모노 버전을 사용한다면 모노/닷넷 SDK를 깔 필요가 있지만 Windows 환경이라면 닷넷 SDK는 일반적으로 컴퓨터에 기본 포함되어 있는 경우가 많다.] 엔진을 설치하고 준비하는 과정이 그렇게 길지 않다는 것 또한 장점이다.[* 플랫폼 별로 실행 파일 1~2개가 포함된 압축 파일로 제공된다.] 에디터에서 실행 시에는 불필요하나, '''내보내기(export)'''를 할 때 필요한 export 템플릿(70~757 MB 가량)을 추가로 설치해야 한다. === 지원 언어 === 메인 언어는 GDScript이고 그 외로 C#이랑 C++을 지원하고 있다. 메인 언어는 Godot에 내장된 편집기에서 작성할 수 있는 반면 C#과 C++은 별도의 IDE에서 작업을 해야 한다. GDScript는 [[파이썬]]에서 대부분의 문법을 따온 자체 스크립트 언어다.[* 파이썬에 익숙하다면 쉽게 익힐 수 있다. 추가되거나 바뀐 키워드(var, func)와 [[Qt]]의 signal과 같은 몇 가지 차이점만 고려하면 된다.] [[Atom(에디터)|Atom]] 및 [[Visual Studio Code]]에도 GDScript 관련 확장 기능이 있다. 자체 에디터에서 편집하는게 힘들다면 Code를 쓰는 것이 좋다.[* 시그널 연결 상태는 확인할 수 없다.] VisualScript는 [[언리얼 엔진 4]]의 블루프린트처럼 코딩 대신 '블럭과 연결'이란 방식으로 이루어진 언어로, 비프로그래머에게도 쉽게 다가갈 수 있을지도 모른다. 하지만 4.0에서 지원 중단되었다. [[https://godotengine.org/article/godot-4-will-discontinue-visual-scripting|Godot 4.0 will discontinue VisualScript]] 3.0 버전부터 C#을 사용할 수 있는 Mono 버전이 따로 배포된다.[* 게임 개발에서 C#의 범용성을 생각하면 GDScript는 메인 스크립트 언어에서 밀려나 2군으로 전락할 가능성이 있다.][* 추가 기능이 GDScript로 우선 제공되므로, C#에 대한 우선도가 밀린다.] 한편 GDNative라는 이름으로 C++을 비롯한 컴파일 언어들을 지원하기 시작했다. Godot 자체가 C++로 만들어진 엔진이다보니 호환성도 좋다. 하지만 C++ 인터페이스는 공식적인 지원은 없다고 한다. C++ 이외에도 [[Rust(프로그래밍 언어)|Rust]]처럼 다이나믹 라이브러리로 컴파일 할 수 있는 언어라면 모두 사용할 수 있다. 추가적으로 셰이딩 언어도 지원하므로 알아두는 편이 좋다. === 씬과 노드와 리소스 === 엔진 내에서 대부분의 게임 요소는 트리 구조의 씬(Scene)으로 만들어진다. 장면, 게임오브젝트, 캐릭터 등이 하나 혹은 여러개의 씬으로 작동한다. 이 씬은 노드(Node)의 집합으로 이루어지며, 노드는 리소스(Resource)의 집합으로 이루어진다.[* 씬은 [[유니티(게임 엔진)]]에 있는 Prefab나 [[언리얼 엔진]]에 있는 블루프린트와 비슷하다. 그런데, 씬 별로 별개의 탭을 열어 편집하는 방식은 [[언리얼 엔진]]에 블루프린트 편집 방식에 가깝다.] 게임에 필요한 기능 대부분은 이 노드에서 찾을 수 있다. 예를 들어 버튼을 만들기 위한 'Button' 노드가 있고, 타일맵을 만들기 위한 'TileSet'과 이를 사용하는 'TileMap' 노드가 있다. 그렇기에 많은 노드가 있고 이를 구성하는 리소스는 더 많다. 씬도 인스턴스를 통해 다른 씬의 노드의 형태로 들어갈 수 있다. 이렇게 여러 노드와 씬이 중첩되어서 캐릭터가 되고, 아이템이 되고 노드끼리 시그널을 주고 받으면서 게임을 만드는 것이 Godot의 핵심이다.([[https://docs.godotengine.org/ko/latest/getting_started/step_by_step/godot_design_philosophy.html#object-oriented-design-and-composition|#]]) {{{ Player +------------------+ | Scene | | +------+ | | | Node | | | +------+ | | | | | | +------+ | | +--| Node | | | | +------+ | | | +------+ | | +--| Node | | | +------+ | +------------------+ }}} 씬의 트리구조는 위에서 아래로 처리되는 방식으로 포토샵 레이어처럼 밑에서 위로 쌓는 방식과 반대이다. 가령 Viewport[* 3D 오브젝트를 렌더링해서 실시간 텍스처로 출력한다. 게임 내의 모든 Viewport는 하나의 씬으로 취급하므로 카메라 레이어로 구분해주지 않으면 보이는 모든 오브젝트를 출력한다.] 노드로 3D 오브젝트를 렌더링해서 Sprite 노드에 텍스처를 연결해줄 때 Sprite가 Viewport보다 선행되면 실행에는 문제가 없지만 약간의 오류가 생긴다. === 지원 플랫폼 === ==== [[https://docs.godotengine.org/ko/stable/tutorials/platform/consoles.html#official-support|Official Support]] ==== 공식으로는 [[Windows]], [[macOS]], [[Linux]]에서 작업이 가능하고, 비공식적으로 [[FreeBSD]], [[OpenBSD]], [[하이쿠(운영체제)|Haiku]]로 포팅을 하는 모양이다. 당연히 Windows, macOS, Linux로 게임을 출시할 수 있으며[* Linux 기반 [[스팀덱]]도 공식적으로 지원한다.], 모바일로는 Android와 iOS, 웹으로는 [[WebAssembly]]를 통해 게임을 출시할 수 있다. ==== 콘솔 미지원 ==== 아쉽게도 현재 공식적인 콘솔 지원은 없다. 고도 엔진이 [[FOSS|자유-오픈 소스 소스트웨어]] 프로젝트이다 보니, 독점 소프트웨어인 콘솔별 개발 툴 혹은 라이브러리를 포함하여 공개할 수 없다. 현재 콘솔 포팅을 위한 가장 쉬운 방법은 고도 엔진을 콘솔로 포팅하는 퍼블리셔와 협력(계약)하는 것이다.[* [[Steam]] 등으로 PC 게임 시장에 우선 출시하여 히트하면, 콘솔 대상 퍼블리셔가 연락할 듯 하다.] [[https://docs.godotengine.org/ko/latest/tutorials/platform/consoles.html#doc-consoles|여기]]와 [[https://godotengine.org/article/godot-consoles-all-you-need-know|여기]]를 참고. == 공식 배포 버전 == 공식 버전은 3.X 버전과 4.X 버전으로 나뉜다. 고도 엔진 3.X 버전과 4.X 버전의 프로젝트가 호환이 되지 않는다. === 3.0 === ==== 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 버전의 경우, [[https://visualstudio.microsoft.com/ko/downloads/?q=build+tools&rr=https%3A%2F%2Fgodotengine.org%2Fdownload%2Fwindows|Visual Studio 2019용 Build Tools]] 또는 [[https://www.mono-project.com/download/stable/|MonoSDK]]를 통해 MSBuild가 설치되어 있어야 한다. === 4.0 === ==== 4.0 (2023년 3월 1일 출시) ==== [[https://godotengine.org/article/maintenance-release-godot-4-0-4/|2023년 8월 3일: Godot 4.0.4 업데이트]] [[https://godotengine.org/article/godot-4-0-sets-sail/|Godot 4.0 sets sail: All aboard for new horizons]] 2023년 3월 1일 정식 릴리즈 버전이 공개되었다. 4.X 버전은 3.X 버전의 프로젝트 파일과 호환이 되지 않는다고 한다. 참고해두자. 또, 클래스 명칭과 GDScript의 문법이 3.X와 다르고 Tilemap 시스템이 새로 개편되었다. [[Vulkan(API)|Vulkan]]과 [[DirectX]] 12를 지원하기 시작했다. ==== 4.1 (2023년 7월 6일 출시) ==== [[https://godotengine.org/article/release-management-4-1/|Release Management Post Godot 4.0]] 2023년 4월 20일 공식 사이트에 게시된 뉴스에 의하면 릴리스 주기를 단축하여, 3, 4, 5월 병합 단계를 거쳐(3개월의 기능 통합과 1개월의 버그 수정 단계), 6월 말 Godot 4.1를 출시할 예정으로 변경됐다. [[https://godotengine.org/article/godot-4-1-is-here/|2023년 7월 6일: Godot 4.1 출시]] 이후 한 달 늦어진 2023년 7월 6일, 고도 4.1 정식 버전이 출시되었다. * 향상된 AI 네비게이션 회피 기능 * 코드 편집기 창 분리 * 노드에 대한 순차적 혹은 병렬 처리 제어 가능한 새로운 프로퍼티 * 씬에 대한 실험적인 멀티스레딩 기능 * GDScript: 정적 변수 * GDScript: 인라인 독스트링(documentation string) [[https://godotengine.org/article/maintenance-release-godot-4-1-1/|2023년 7월 17일: Godot 4.1.1 업데이트]] [[https://godotengine.org/article/maintenance-release-godot-4-1-2/|2023년 10월 4일: Godot 4.1.2 업데이트]] ==== 4.2 ==== 4.1 출시가 예정대로 6월 말까지 순조롭게 진행된다면, 10월말 출시를 목표로 4.2 출시가 진행될 예정이라고 한다. 그러나, 4.1 출시가 늦어지면 4.2 출시는 그만큼 늦어진다고 한다. == 여담 == * 3D 작업물은 COLLADA(*.dae) 형식으로 가져온다. [[Blender]] 2.7x에서 작업한 파일을 가져오려면 공식 홈페이지에서 제공하는 애드온을 사용하는 편이 좋다. ([[https://godotengine.org/download/windows|밑의 Better Collada Exporter 참고]]) Blender 2.8 이후로는 Better Collada 애드온이 업데이트 되지 않고 있으며 블렌더 기본 Collada로 임포트 하면 에니메이션 축이 제대로 넘어 오지 않는다.[* 블렌더와 고도 엔진의 3차원 축이 다르기 때문이다. *.fbx 임포트도 지원하지만 정상적으로 데이터가 넘어 오지 않기 때문에 논외] Blender 2.8x 이후로는 glTF 2.0 포멧으로 3D 작업물을 가져오는게 대세가 되어서 Better Collada 에드온의 버전업은 아마 없을 것이라고 한다. NLA로 에니메이션 관리만 잘하면 다중 에니메이션도 잘 넘어 온다. * 2.1 버전부터 다국어 환경을 지원하고 한국어 UI가 추가 되었다. 3.4 이전까지는 용어상 상용 엔진의 한국어 번역과 다른 부분이 있을 수도 있었으나 한 번역가에 의해 Godot 엔진의 주요 용어가 [[언리얼 엔진]]의 용어를 바탕으로 변경되었다.[* 단, 가져오기(Import), 내보내기(Export), 매개변수(Parameter), 목록(List), 물리(Physics), 방출기(Emitter), 변형(Transform), 속성(Property), 실시간(Live): 언리얼 엔진에서도 실시간이라는 용어를 사용하기도 한다. 요소(Element), 이름 바꾸기(Rename): 언리얼 엔진에서는 이름 변경으로 번역되었다, 재설정(Reset), 조명(Lighting), 참조(Reference)라는 용어는 한국어로 번역되었다.] 고해상도 작업 환경을 위해 UI를 백터로 만들었으며 이를 위해 국내 오픈소스 프로젝트인 [[https://www.thorvg.org|토르 벡터 그래픽스]] 엔진을 탑재하였다.자체 한글 글꼴도 지원해서 이제 한글이 안 보이거나 하는 문제는 없다. UI 작업처럼 글꼴를 지정해줘야 하는 작업은 여전히 글꼴을 해당 언어를 지원하는 글꼴이 있어야 한다. 비트맵 글꼴 이외에도 벡터 타입의 글꼴도 사용 가능하다. * 자금 * 웹소켓, 웹어셈블리와 웹GL 2.0 지원을 위해 모질라가 모질라 오픈 소스 지원의 미션 파트너로 자금을 후원했다. * Godot Engine의 스크립트 엔진으로 C# 향상을 위해 미겔 데 이카사의 지원으로 Microsoft가 자금을 후원하였다. * Godot Engine 4.0에서는 그래픽 렌더링과 GDScript 향상을 위해 [[에픽게임즈]]가 자금을 후원했다. * XR 작업을 위해 메타의 리얼리티 랩으로부터 자금을 두 번 후원받았다. * 특이하게 [[테슬라]]에서 Web UI쪽으로 [[https://www.tesla.com/careers/search/job/software-engineerenergymobilewebui-72387|Godot Engine 경험자를 찿고 있는 중이다]]. 재미있게도 [[https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b|게임 엔진이 GUI 개발]]하는데 있어서 사용하기 좋은 모양이다. * [[https://github.com/mbrlabs/Lorien|Lorien]]은 GDScript로 개발한 드로잉 프로그램이다. [[파일:godette engine.png|width=300]] * 2021년 [[만우절|4월 1일]]에 [[https://godotengine.org/article/godot-has-been-renamed-godette-engine|현 엔진 이름을 고데트로 바꾼다]]는 드립을 올린적 있었는데[* 이미지에 나온 고데트 이미지는 현 Godot 엔진의 로고 제작자가 [[https://twitter.com/reduzio/status/958305883976536064|3.0 버전 출시를 기념으로 만든 캐릭터]]로 원래는 만우절 농담을 위해 만들어진게 아닌 별개의 창작물이었다.] 이게 큰 반향을 가져와서 [[https://cloud.blender.org/p/gallery/60b7a091e781884330b23588|3D 모델링]]이 만들어지는 등 [[유니티쨩]]과 비슷한 위치를 가져가게 되었는데, 별개로 해당 만우절 농담은 고돗이 비전문적인 엔진이라는 선입견에 맞춰 장난기를 더한 농담이었는데 이 농담을 진지하게 받아들이는 유저들이 나와서 이에 대해 사과하는 사과문이 같이 올라오게 되었다. * [[유니티 엔진]]이 정액제 정책을 정량제 정책으로 바꾼다는 발표 이후로 대체 엔진 중 하나로 급부상했다. 오픈소스를 지향하고 있으며 이용료도 완전 무료기 때문이다. 이에 개발자는 원래 유니티와 척을 둘 이유가 없어 딱히 마이그레이션을 지원하지 않았으나 상황이 바뀌었다고 이 사태에 대해서 입장을 표명했다.[[https://www.thisisgame.com/webzine/news/nboard/4/?n=176340|#]] === 이름의 유래 === [[사뮈엘 베케트]]의 연극 [[고도를 기다리며]]의 'Godot'를 따와 만든 이름이다. 고돗 혹은 고닷 엔진이라고 부르기도 하지만 굳이 말하면 '고도'가 맞는 표현이다. 프랑스어는 마지막 자음[* 단 '''C, F, L, R''', B, K, Q 제외. 또한 BKQ로 끝나는 단어는 드물기에 보통 CRFL정도만 생각하면 된다.]을 발음을 하지 않는 경향이 있다.[* 가끔 예외가 아닌데도 발음하는 경우가 있는데 대부분 다른 언어에서 온 표현이거나 고유명사인 경우다. 하지만 절대적인건 아니라 각 단어별, 이름별로 확인해보는게 제일 정확하다.] 그러나 'Godot'이라고 검색하면 [[고도 검사]][* 이쪽도 이름의 기원이 똑같은 고도를 기다리며기도 하다.]가 나오고, '고도'라고 검색하면 [[고도]]의 1번 문서가 먼저 검색된다. 현재는 이름이 유명해져서인지 고도 검사는 나오지는 않는다. [youtube(DcjbtsVnTxA)] 해외에서도 생각하는 것은 똑같다. 실제 '고도를 기다리며' 연극의 '고도'를 발음하는 방법도 크게 Go-dot[고닷]과 Guh-dough[고도]로 나뉘었다. 때문에 몇몇 사람들은 엔진 이름을 바꿔야 한다고 주장하기도 한다. == Made with 고도 엔진 == [[https://godotengine.org/showcase/|Godot Official Showcase]] === Game === [youtube(UAS_pUTFA7o)] [youtube(xF3QiQfQxeQ)] [[https://store.steampowered.com/curator/41324400-Is-it-made-with-Godot/#browse|Unofficial list of games that are made with Godot Engine]] [[https://steamdb.info/tech/Engine/Godot/|스팀에 출시된 고도엔진으로 만든 게임 리스트]][* 실제 3000 개 정도 된다고 한다] * [[https://play.google.com/store/apps/details?id=com.davin.moai|랜덤 모아이 디펜스]] ([[https://apps.apple.com/kr/app/%EB%9E%9C%EB%8D%A4-%EB%AA%A8%EC%95%84%EC%9D%B4-%EB%94%94%ED%8E%9C%EC%8A%A4/id1495531699|iOS]]) * [[https://play.google.com/store/apps/details?id=com.cat_bar|샛별과 고양이]] * [[소닉 컬러즈 얼티밋]][* 정확히는 이식한 업체가 Godot Engine 3를 기반으로 자체 개량한 엔진인 Blind Squirrel Engine을 통해 리마스터 및 이식했다.] * [[https://play.google.com/store/apps/details?id=com.NaNStdio.DPang |디펜스팡]][* Godot 3.2 버전으로 제작] * [[Brotato]] * [[Cruelty Squad]] * [[Endoparasitic]] * [[Dome Keeper]] * [[Halls of Torment]] * [[ProtoCorgi]] === Apps & Tools === [youtube(9kKp0oguzr8)] * [[https://ash-k.itch.io/textreme-2|Textreme 2]] 텍스트 에디터 * [[https://gdquest.mavenseed.com/courses/learn-to-code-from-zero-with-godot|Learn GDScript From Zero]] 고도 엔진 인터랙티브 강의 앱 * [[https://sparseal.com/cozyblanket/|CozyBlanket]] iPad용 모델 최적화 도구 * [[https://pixelover.io/|PixelOver]] 픽셀 아트 애니메이션 소프트웨어 * [[https://ph.eirteam.moe/|Project Heartbeat Chart Editor]] 리듬 게임 에디터 * [[https://www.rpginabox.com/|RPG in a Box]] 3D 그리드 기반 복셀 RPG 메이커 * [[https://www.materialmaker.org/|Material Maker]] 머티리얼 저작 도구 * [[https://arcaneenergy.itch.io/whiteboard|Whiteboard]] 화이트보드 * [[https://intakeovr.itch.io/shaderblocks|Shaderblocks]] 셰이더 제작 도구 * [[https://www.madcookies.games/game.php?id=5|Mad Productivity]] 생산성 도구 * [[https://risunz.itch.io/gazo-tuber|Gazo Tuber]] 포트레이트 제작 도구 * [[https://chunkydev.itch.io/world-maker|World Maker]] 월드 빌딩/관리 도구 * [[https://github.com/kidando/gkanban|G-Kanban]] 칸반 프로젝트/태스크 관리 도구 * [[https://icterusgames.itch.io/turpial|Turpial Music Player]] 음악 플레이어 == 관련 사이트 == * [[https://www.godotengine.org/|홈페이지]] * [[https://github.com/godotengine/godot|GitHub]] * [[http://docs.godotengine.org/en/latest/|문서(최신)]] / [[http://docs.godotengine.org/en/stable/|문서(안정)]] * [[https://hosted.weblate.org/languages/ko/godot-engine/|Godot 한국어 번역 참여하기]] / [[http://docs.godotengine.org/ko/stable/|문서의 한국어 번역(안정)]] * [[https://godotengine.org/qa/|자체 QnA 사이트]] * [[https://okamgames.com/|OKAM Studio]] * [[https://twitter.com/godotengine|트위터]] * [[https://steamcommunity.com/app/404790|스팀 커뮤니티]] * [[https://godotengine.org/community|홈페이지의 커뮤니티 메뉴]]에서 위 링크들을 포함한 각종 커뮤니티 좌표를 확인할 수 있다. * [[https://cafe.naver.com/godotk|고도엔진 한국 사용자 모임]] 네이버 카페 * [[https://gall.dcinside.com/godot|고도엔진 갤러리]] * [[https://arca.live/b/godotengine4|고도엔진 채널]] * [[https://discord.gg/XK8Emsf|고도엔진 코리아 디스코드]] * [[https://www.thorvg.org|토르 벡터 그래픽스]]