기능 목록

이 페이지의 목표는 현재 Godot가 지원하는 모든 기능을 나열하는 것입니다.

참고

This page lists features supported by the current stable version of Godot (3.4). More features are available in the latest development version (4.0).

기능

플랫폼

에디터와 내보낸 프로젝트를 모두 실행할 수 있는 플랫폼:

  • Windows 7 이상 (64비트 및 32비트).

  • macOS 10.12 이상 (64비트, x86 및 ARM).

  • Linux (64비트 및 32비트, x86 및 ARM).

    • 바이너리는 정적으로 연결되어 있어서 아주 오래된 기본 배포에서 컴파일 된 경우라도 모든 배포에서 실행할 수 있습니다.

    • 공식 바이너리는 Ubuntu 14.04에서 컴파일됩니다.

  • 웹어셈블리(Firefox, Chrome, Edge, Opera)를 통한 HTML5.

내보낸 프로젝트를 실행할 수 있는 플랫폼:

Godot는 가능한 한 플랫폼 독립적이고 비교적 쉽게 새로운 플랫폼으로 이식할 수 있는 것을 목표로 합니다.

에디터

기능:

  • 씬 트리 에디터.

  • Built-in script editor.

  • Visual Studio Code나 Vim과 같은 외부 스크립트 에디터 지원.

  • GDScript 디버거.

    • 스레드 디버깅은 아직 지원하지 않습니다.

  • 성능 측정 툴.

  • 실시간 스크립트 리로딩.

  • 실시간 씬 편집.

    • 변경사항들은 에디터에 반영되며 프로젝트 실행을 중지한 이후에도 유지됩니다.

  • 원격 인스펙터.

    • 변경사항들은 에디터에 반영되지 않으며 프로젝트 실행을 멈춘 이후에 유지되지 않습니다.

  • 실시간 카메라 복제.

    • 에디터 안에서 카메라를 움직여 프로젝트 실행 중에 결과를 볼 수 있습니다.

  • 커뮤니티 참여로 지원되는 수십 가지 언어로 에디터를 사용할 수 있습니다.

플러그인:

2D 그래픽

두 가지 렌더러 사용 가능:

  • OpenGL ES 3.0 렌더러(데스크톱 플랫폼에서는 OpenGL 3.3 사용).

    • 하이엔드 비주얼. 데스크톱 플랫폼에 권장.

  • OpenGL ES 2.0 렌더러(데스크톱에서는 OpenGL 2.1 사용).

    • 모바일 또는 웹 플랫폼에 권장.

기능:

  • 스프라이트, 폴리곤 및 직선 렌더링.

    • Line2D, Polygon2D같은 직선이나 폴리곤을 그리는 고수준 툴.

  • 애니메이션 스프라이트 제작 도우미 AnimatedSprite.

  • 패럴랙스 레이어.

    • Pseudo-3D support including preview in the editor.

  • 노멀 맵을 통한 2D 라이팅.

    • 거칠거나 부드러운 그림자 표현.

  • 비트맵(BitmapFont)을 사용하거나, FreeType(DynamicFont)을 사용해 래스터라이징한 글꼴 렌더링.

    • 비트맵 글꼴은 BMFont와 같은 툴로 내보낼 수 있습니다.

    • DynamicFont는 색상이 있는 글꼴 (예: 이모지(emoji)) 뿐만 아니라 흑백 글꼴도 지원합니다. TTF와 OTF 형식을 지원합니다.

    • DynamicFont는 글꼴 윤곽선 두께 및 색상 조정을 지원합니다.

    • 더 높은 해상도에서도 글꼴이 선명하게 보이도록 글꼴 오버샘플링 지원.

  • GPU 기반 파티클과 커스텀 파티클 셰이더 지원.

  • CPU 기반 파티클.

2D 툴

  • 스무딩(smoothing)과 드래그 마진(drag margin)이 적용된 2D 카메라.

  • 2D 공간에서의 경로를 표현하는 Path2D 노드.

    • 에디터에서 그리거나 절차적으로 생성할 수 있습니다.

    • 노드가 Path2D 경로를 따라가도록 하는 PathFollow2D 노드.

  • 2D 기하 도우미 클래스.

  • 텍스처를 입힌 2D 선을 그리는 Line2D 노드.

2D 물리

물리 물체:

  • 정적 물체(static bodies).

  • 강체(rigid bodies).

  • 동적 물체(kinematic bodies).

  • 관절(Joints).

  • 물체가 들어오거나 나가는 것을 감지하는 영역.

콜리전(Collision) 감지:

  • 기본 모양: 선, 박스, 원, 캡슐.

  • 콜리전 폴리곤(에디터에서 직접 그리거나 스프라이트로부터 생성될 수 있습니다).

3D 그래픽

두 가지 렌더러 사용 가능:

  • OpenGL ES 3.0 렌더러(데스크톱 플랫폼에서는 OpenGL 3.3 사용).

    • 하이엔드 비주얼. 데스크톱 플랫폼에 권장.

    • Optional HDR rendering with sRGB (enabled by default).

    • Uses an optional depth prepass (enabled by default) to reduce the cost of overdraw, which speeds up complex scene rendering.

  • OpenGL ES 2.0 렌더러(데스크톱에서는 OpenGL 2.1 사용).

    • 모바일 또는 웹 플랫폼에 권장.

    • 더 나은 호환성의 LDR 렌더링.

    • 모든 기능을 사용할 수 있는 건 아닙니다. 아래 GSES3으로 표시된 기능들은 OpenGL ES 3.0 렌더러로만 사용 가능합니다.

카메라:

  • 투시(perspective), 직교(orthographic) 및 프러스텀 오프셋(frustum-offset) 카메라.

Physically-based rendering (built-in material features):

  • 디즈니의 PBR 모델을 따릅니다.

  • Supports Lambert, Lambert Wrap (half-Lambert), Oren-Nayar and Toon diffuse shading modes.

  • Supports Schlick-GGX, Blinn, Phong, Toon and Disabled specular shading modes.

  • ORM 텍스처를 지원하는 러프니스-메탈릭(roughness-metallic) 워크플로를 사용합니다.

  • Uses horizon specular occlusion (Filament model) to improve material appearance

  • 노멀 매핑.

  • Detail mapping for the albedo and normal maps.

  • 투명 파이프라인을 통과하는 것을 피하기 위해 알파 블렌딩이나 디더링(dithering)을 사용할 수 있는 디스턴스 페이드(distance face).

  • 디더링은 픽셀 또는 객체별로 적용할 수 있습니다.

  • GLES3: 거리 기반 자동 세부 수준 시차(parallax) 매핑/릴리프(relief) 매핑.

  • GLES3: 서브서피스 스캐터링(sub-surface scattering) 및 투과(transmittance).

  • GLES3: Refraction with support for material roughness (resulting in blurry refraction). On GLES2, refraction is still functional but lacks support for material roughness.

  • GLES3: 근접(Proximity) 페이드(가벼운 파티클).

실시간 조명:

  • 방향성 조명(directional lights) (태양 또는 달). 씬에 최대 4개까지 가능.

  • 전방위 조명(Omnidirectional lights).

  • 원뿔 모양의 각도와 감쇠(attenuation)를 조정할 수 있는 스포트라이트.

  • Specular energy can be adjusted on a per-light basis.

  • GLES3: Lighting is done with a single-pass forward approach. By default, up to 32 omni light and 32 spot lights can be displayed per mesh resource. If needed, this limit can be increased at the cost of increased shader compilation times and lower performance. GLES2 uses a multi-pass forward approach to lighting, which doesn't have a limit on the number of lights but is slower with many lights.

그림자 매핑

  • 방향성 조명(DirectionalLight): 직교 (가장 빠름), PSSM 2-split 및 4-split. 스플릿 간 블렌딩을 지원합니다.

  • 옴니 라이트(OmniLight): 쌍포물선(빠름) 또는 큐브맵(느리지만 정확). 색이 있는 프로젝터 텍스처를 파노라마 형태로 사용할 수 있습니다.

  • 스포트라이트: 단일 텍스처.

간접 조명을 통한 전역 조명(Global illumination):

  • 베이크된 라이트맵(빠르지만 실행 중 갱신할 수 없습니다).

    • 간접 조명만 베이킹(baking)과 직접 및 간접 조명 베이킹을 지원합니다. 하이브리드 조명 베이킹 설정을 허용하도록 베이크(bake) 모드를 조명별로 조정할 수 있습니다.

    • 자동화된 옥트리(octree) 기반 시스템을 사용해 동적 객체 조명을 지원합니다. 수동 프로브 배치가 필요없습니다.

    • 라이트맵은 CPU로 베이크할 수 있습니다.

  • GLES3: GI 프로브 (느리지만 준실시간). 반사를 지원합니다.

반사(Reflections)

  • Fast baked reflections or slow real-time reflections using ReflectionProbe. Parallax box correction can optionally be enabled.

  • 반사 기술은 더 높은 정확도를 위해 혼합해서 사용할 수 있습니다.

  • GLES3: 복셀 기반 반사 (GI 프로브 사용중에만 가능).

  • GLES3: 스크린 공간 반사.

하늘:

  • 파노라마 하늘(HDRI 사용).

  • 절차적 하늘.

안개:

  • 조정 가능한 감쇠 곡선(attenuation curve)을 이용한 깊이 안개(depth fog).

  • 감쇠를 조정할 수 있는 높이 안개(height fog)(바닥 또는 천장).

  • (태양의 색상과 맞추기 위해) 자동으로 카메라 방향에 따른 깊이 안개 색상 지원.

  • 투과율(transmittance) 옵션으로 안개 속에서도 빛을 더 잘 볼 수 있게 할 수 있습니다.

파티클

  • GLES3: GPU 기반 파티클과 커스텀 파티클 셰이더 지원.

  • CPU 기반 파티클.

포스트 프로세싱

  • 톤 매핑(선형, Reinhard, 필름, ACES).

  • GLES3: 뷰포트 밝기에 기초한 자동 노출 보정.

  • GLES3: 가깝거나 먼 피사계 심도(DOF: Depth Of Field).

  • GLES3: 스크린 공간 앰비언트 어클루전(ambient occlusion).

  • GLES3: 컬러 밴딩(color banding)을 피하기 위한 디밴딩(HDR 렌더링이 활성화된 경우 효과적입니다).

  • 선택적인 bicubic 업스케일링을 통한 글로우(glow)/블룸(bloom) 및 몇몇 사용가능한 블렌딩 모드(스크린, 소프트 라이트, Add, Replace).

  • 1차원 램프를 사용한 색상 교정.

  • 밝기, 대비 및 채도 조정.

텍스처 필터링:

  • 근접, 이중선형, 삼중선형 또는 비등방성 필터링.

텍스처 압축:

  • Lossless or lossy WebP (does not save VRAM; only reduces storage size).

  • S3TC (only supported on desktop platforms).

  • ETC1 (GLES2 렌더러에 적합).

  • GLES3: 고품질 압축을 위한 BPTC (macOS에서는 지원하지 않음).

  • GLES3: ETC2 (macOS에서는 지원하지 않음).

안티 앨리어싱:

  • 다중 샘플링 안티앨리어싱 (MSAA).

  • 고속 근사 안티앨리어싱 (FXAA).

Performance:

  • Occlusion culling with rooms and portals. Supports gameplay notifications with primary and secondary visibility to disable AI/physics processing for nodes that don't need it.

  • Real-time occluder spheres. Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up.

참고

Most of the effects listed above can be adjusted for better performance or to further improve quality. This can be helpful when using Godot for offline rendering.

3D 툴

  • 기본 메시: 육면체, 원통/원뿔, (반)구, 각기둥, 평면, 사각형.

  • 절차적 기하 생성을 위한 툴.

  • 구조적 입체기하학(프로토타이핑을 위해 의도됨).

  • 3D 공간에서의 경로를 나타내는 Path3D 노드.

    • 에디터에서 그리거나 절차적으로 생성할 수 있습니다.

    • 노드가 Path3D 경로를 따라가도록 하는 PathFollow3D 노드.

  • 3D 기하 도우미 클래스.

  • Support for exporting the current scene as a glTF 2.0 file from the editor.

3D 물리(Physics)

물리 물체:

  • 정적 물체(static bodies).

  • 강체(rigid bodies).

  • 동적 물체(kinematic bodies).

  • 차체(Vehicle bodies, 시뮬레이션이 아닌 오락용 물리를 위한 물체).

  • 관절(Joints).

  • 연체(Soft bodies).

  • 래그돌(Ragdoll).

  • 물체가 들어오거나 나가는 것을 감지하는 영역.

콜리전(Collision) 감지:

  • 기본 모양: 직육면체, 구, 캡슐, 원통.

  • 어느 메시든지 에디터에서 삼각형 콜리전을 생성합니다.

  • 어느 메시든지 에디터에서 하나 이상의 컨벡스 콜리전 모양을 생성합니다.

셰이더

  • 2D: 커스텀 버텍스, 프래그먼트, 라이트 셰이더.

  • 3D: 커스텀 버텍스, 프래그먼트, 라이트 및 하늘 셰이더.

  • GLSL에서 영감을 얻은 셰이더 언어 <doc_shading_language>를 사용한 텍스트 기반 셰이더.

  • 비주얼 셰이더 에디터.

    • 비주얼 셰이더 플러그인 지원.

스크립팅(Scripting)

일반:

  • 노드를 확장하는 스크립트를 통한 객체 지향 디자인 패턴.

  • 시그널과 그룹을 이용한 스크립트 간 통신.

  • 교차 언어 스크립팅 지원.

  • 벡터나 트랜스폼 같은 다양한 2D 및 3D 선형대수 데이터 타입 지원.

GDScript:

C#:

  • 파일 크기를 줄이고 의존성을 낮추기 위해 별도의 바이너리로 패키징했습니다.

  • Mono 6.x 버전을 사용합니다.

    • C# 7.0의 구문과 기능을 모두 지원합니다.

  • 모든 플랫폼을 지원합니다.

  • IDE 기능을 활용하려면 외부 에디터 사용을 권장합니다.

VisualScript:

GDNative (C, C++, Rust, D, ...):

  • 고성능이 필요하거나 서드파티 통합을 해야 할 경우 네이티브 바이너리에 연결할 수 있습니다.

    • 성능이 적합하다면 게임 스크립트로는 GDScript나 C#을 사용할 것을 권장합니다.

  • 공식 C, C++언어 바인딩.

    • 여러분이 사용하는 어느 빌드 시스템이나 언어든 사용할 수 있습니다.

  • 커뮤니티에 의해 유지되는 D, Kotlin, Python, Nim, Rust 바인딩.

오디오

기능:

  • 모노, 스테레오, 5.1 그리고 7.1채널 출력.

  • 2D와 3D에서의 위치/비위치 플레이백.

    • 2D와 3D에서의 도플러 효과를 선택적으로 지원.

  • 수십 개의 효과가 포함되고 재 라우팅 가능한 오디오 버스 및 효과 지원.

  • Listener2D and Listener3D nodes to listen from a position different than the camera.

  • AudioEffectCapture 클래스를 이용한 실시간 마이크로폰 오디오 입력.

  • MIDI 입력.

    • MIDI 출력은 아직 지원하지 않습니다.

사용된 API 목록:

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio 또는 ALSA.

가져오기

형식:

  • 이미지: 이미지 가져오기 를 참고하세요.

  • 오디오:

    • IMA-ADPCM 압축 옵션을 포함한 WAV.

    • Ogg Vorbis.

    • MP3.

  • 3D 씬:

    • glTF 2.0 (권장).

    • ESCN (Blender에서 바로 내보내기).

    • FBX (experimental, static meshes only).

    • Collada (.dae).

    • Wavefront OBJ (정적 씬에서만 가능, 메시로 직접 로드할 수 있습니다).

  • 3D meshes use Mikktspace to generate tangents on import, which ensures consistency with other 3D applications such as Blender.

입력

  • 하드코딩된 입력 이벤트 또는 다시 매핑할 수 있는 입력 액션을 이용한 입력 매핑 시스템.

    • 입력 축 값은 deadzone을 설정하여 두 개의 다른 액션으로 매핑할 수 있습니다.

    • 같은 코드로 키보드와 게임패드 둘 다 지원 가능합니다.

  • 키보드 입력.

    • "실 기기" 모드로 키를 매핑하여 키보드 레이아웃에 독립적이게 할 수 있습니다.

  • 마우스 입력.

    • 마우스 커서를 보이게 하거나 숨길 수 있고 입력을 캡쳐하거나 윈도우 영역 안으로 강제할 수도 있습니다.

    • 입력이 캡쳐되는 경우 Windows나 Linux에서는 OS의 마우스 가속 설정에 맞춰 입력의 로우값을(raw input) 사용하게 됩니다.

  • 게임패드 입력(최대 8개 컨트롤러까지 동시 입력 가능).

  • 펜/태블릿의 압력에 의한 입력 지원.

  • Android에서도 게임패드, 키보드, 마우스 입력 지원이 가능합니다.

네트워킹(Networking)

  • StreamPeer와 TCP_Server를 사용한 저수준 TCP 네트워킹.

  • PacketPeer와 UDPServer를 이용한 저수준 UDP 네트워킹.

  • HTTPClient를 사용한 저수준 HTTP 요청.

  • HTTPRequest를 사용한 고수준 HTTP 요청.

    • 번들된 인증서를 사용한 HTTPS 기본 지원.

  • UDP와 ENet을 사용한 고수준 멀티플레이어(High level multiplayer) API.

    • 원격 프로시저 호출(RPCs)을 사용한 자동 레플리케이션.

    • 신뢰/비신뢰/순차적 전송 지원.

  • 모든 플랫폼에서 WebSocket 클라이언트 및 서버 사용 가능.

  • 모든 플랫폼에서 WebRTC 클라이언트 및 서버 사용 가능.

  • NAT 안에서 서버 운영시 포트 포워딩을 사용하기 위한 요구사항인 UPnP 지원.

현지화(Internationalization)

  • 이모지를 포함한 Unicode 전체 지원.

  • CSV 또는 gettext를 이용해 현지화 문자열 저장.

  • GUI 요소에서 자동으로 또는 tr() 함수로 프로젝트에서 현지화된 문자열을 사용.

  • 오른쪽에서 왼쪽으로 쓰는 텍스트 설정 및 텍스트 성형은 Godot 4.0에서 지원 예정.

윈도우화 및 운영체제 통합

  • 프로젝트에서 생성한 창 이동, 크기 조정, 최소화 및 최대화.

  • 창 제목 및 아이콘 변경.

  • 주의 요청 (대부분의 플랫폼의 제목표시줄에 깜빡임 발생).

  • 전체 화면 모드.

    • 전용 전체화면을 사용하는 것이 아니기 때문에 이 방법으로는 화면 해상도가 바뀌지 않습니다. 대신에 Viewport를 다른 해상도로 설정해보세요.

  • 테두리 없는 창 (전체 화면 또는 창 화면).

  • 창을 항상 앞에 두기.

  • 픽셀 단위 투명도를 이용한 반투명 윈도우.

  • macOS의 글로벌 메뉴 통합.

  • 블로킹 또는 논블로킹으로 명령 실행 가능.

  • 기본 또는 (시스템에 등록된) 커스텀 프로토콜 처리를 사용한 파일 위치 및 URL 열기.

  • 맞춤형 명령줄 인수 파싱.

  • Headless/server binaries can be downloaded for Linux and compiled for macOS. Any binary can be used without a window using the --no-window command line argument.

모바일

  • 안드로이드 및 iOS 인앱 결제 지원.

  • 서드파티 모듈을 사용한 광고 지원.

  • Android에서 subview 임베딩 지원.

XR 지원 (AR 및 VR)

  • iOS의 ARKit을 기본 지원.

  • OpenXR API 지원.

    • Meta Quest나 Valve Index와 같은 유명한 기기들에 대한 지원을 포함합니다.

  • OpenVR API 지원.

GUI 시스템

Godot의 GUI는 Godot로 게임을 만들 때 사용하는 것과 같은 동일한 컨트롤 노드를 이용해 만들어졌습니다. 에디터 UI는 add-on을 사용하여 다양한 방법으로 확장하기 쉽습니다.

노드(Node)

  • 버튼(Button).

  • 체크박스(Checkboxe), 체크버튼(CheckButton), 라디오버튼.

  • LineEdit(한 줄)과 TextEdit(여러 줄)을 사용한 문자 입력 지원.

  • 팝업 메뉴(PopupMenu) 및 옵션 버튼(OptionButton)을 사용한 드롭다운(Dropdown) 메뉴.

  • 스크롤바(Scrollbar).

  • 레이블(Label).

  • BBCode로 형식화된 텍스트를 위한 RichTextLabel.

  • 트리(Tree) (테이블을 표현할 때에도 사용 가능).

  • Color picker with RGB and HSV modes.

  • Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).

  • 컨트롤(Control)은 회전하거나 크기를 키울 수 있습니다.

사이징:

  • GUI 요소들을 특정 코너 또는 모서리, 중앙에 고정시키는 앵커.

  • 일정한 규칙에 따라 GUI 요소들을 자동으로 배치하는 컨테이너.

  • 2d 또는 viewport 늘이기 모드를 이용한 다중 해상도 스케일.

  • 앵커와 expand 늘이기 비율을 이용해 모든 종횡비 지원.

테마:

  • 내장 테마 에디터.

    • 현재 에디터 테마 세팅에 기반해 테마 생성 가능.

  • StyleBoxFlat를 사용한 벡터 기반 절차적 테마.

    • Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing.

  • StyleBoxTexture를 사용한 텍스트 기반 테마.

Godot의 작은 배포 크기는 Electron이나 Qt같은 프레임워크의 적절한 대안이 될 수 있습니다.

애니메이션

  • 직접 운동학(direct kinematics)과 역 운동학(inverse kinematics).

  • Tween node to easily perform procedural animations by code.

  • 모든 속성(property)에 대해 보간법을 커스터마이즈할 수 있는 애니메이팅 지원.

  • 애니메이션 트랙에서 메서드 호출 지원.

  • 애니메이션 트랙에서 음향 지원.

  • 애니메이션에서 베지에 곡선(Bézier curves) 지원.

파일 형식

  • 씬과 리소스는 텍스트 기반 또는 바이너리 형식으로 저장 가능.

    • 텍스트 기반 형식은 사람이 읽을 수 있고, 버전 관리 친화적입니다.

    • 바이너리 형식은 큰 씬 또는 리소스에 대해 저장과 불러오기가 빠릅니다.

  • File을 이용해 텍스트나 바이너리 파일을 읽고 쓰기.

    • 압축하거나 암호화할 수 있습니다.

  • JSON 파일 읽고 쓰기.

  • ConfigFile을 이용해 INI 스타일 설정 파일 읽고 쓰기.

    • Can (de)serialize any Godot datatype, including Vector2/3, Color, ...

  • XMLParser을 이용한 XML 파일 읽기.

  • 게임 데이터를 PCK 파일(빠른 검색에 최적화된 전용 포맷), ZIP 파일, 또는 직접 실행 가능한 한 개의 파일 안에 압축.

  • 모드와 DLC를 지원하기 위해 엔진이 읽을 수 있는 추가적인 PCK 파일 내보내기.

기타(Miscellaneous)

  • 필요할 때 씬 트리의 오버헤드를 무시할 수 있는 서버에 대한 낮은 수준의 접근.

  • Command line interface for automation.

    • 지속적인 통합 플랫폼을 사용해 프로젝트를 내보내고 배포합니다.

    • Shell completion scripts are available for Bash, zsh and fish.

  • 엔진 바이너리와 정적으로 연결된 C++ 모듈 지원.

  • C++03으로 작성된 엔진과 에디터.

    • GCC, Clang과 MSVC를 사용해 컴파일될 수 있습니다. MinGW 또한 지원됩니다.

    • 패키저(packagers) 친화적입니다. 대부분의 경우 시스템 라이브러리를 Godot가 제공하는 라이브러리 대신 사용할 수 있습니다. 빌드 시스템은 아무것도 다운로드하지 않습니다. 빌드는 완전히 재현할 수 있습니다.

    • Godot 4.0은 C++17로 작성될 것입니다.

  • 라이선스는 MIT 라이선스입니다.

더 보기

고도 제안 저장소 에는 커뮤니티가 요청한 기능과 향후 Godot 릴리스에서 구현될 수 있는 기능 목록이 있습니다.