기능 목록

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

참고

이 페이지는 현재 stable 버전 Godot (3.3)이 지원하는 기능들을 나열하고 있으며, latest development 버전(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는 가능한 한 플랫폼 독립적이고 비교적 쉽게 새로운 플랫폼으로 이식할 수 있는 것을 목표로 합니다.

에디터

기능:

  • 씬 트리 에디터.

  • 스크립트 에디터.

  • Visual Studio Code나 Vim과 같은 외부 스크립트 편집기 지원.

  • GDScript 디버거.

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

  • 성능 측정 툴.

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

  • 실시간 씬 편집.

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

  • 원격 인스펙터.

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

  • 실시간 카메라 복제.

    • 편집기 내 카메라를 움직여 프로젝트 실행 중에 결과를 볼 수 있습니다.

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

플러그인:

  • 편집기 기능 확장을 위한 플러그인은 애셋 라이브러리에서 다운로드받을 수 있습니다.

  • GDScript로 여러분만의 플러그인을 만들어 새로운 기능을 추가하거나 워크플로를 빠르게 만들 수 있습니다.

  • 프로젝트 매니저(Project Manager)의 애셋 라이브러리(Asset Library)에서 프로젝트를 다운로드받거나 직접 불러올 수 있습니다.

2D 그래픽

두 가지 렌더러 사용 가능:

  • OpenGL ES 3.0 렌더러(데스크톱 플랫폼에서는 OpenGL 3.3 사용).
    • 하이엔드 비주얼. 데스크톱 플랫폼에 권장.

  • OpenGL ES 2.0 렌더러(데스크톱에서는 OpenGL 2.1 사용).
    • 모바일 또는 웹 플랫폼에 권장.

기능:

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

    • Line2D, Polygon2D같이 직선이나 폴리곤을 그리기 위해 사용하는 고수준 도구.

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

  • 패럴랙스 레이어.

    • 레이어를 여러 번 자동으로 복제해 의사 3D 지원.

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

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

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

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

    • DynamicFont는 색상이 있는 글꼴뿐만 아니라 흑백 글꼴도 지원합니다. 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).

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

콜리전 감지:

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

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

3D 그래픽

두 가지 렌더러 사용 가능:

  • OpenGL ES 3.0 렌더러(데스크톱 플랫폼에서는 OpenGL 3.3 사용).
    • 하이엔드 비주얼. 데스크톱 플랫폼에 권장.

    • sRGB를 사용한 HDR 렌더링.

  • OpenGL ES 2.0 렌더러(데스크톱에서는 OpenGL 2.1 사용).
    • 모바일 또는 웹 플랫폼에 권장.

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

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

카메라:

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

물리 기반 렌더링

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

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

  • 노멀 매핑.

  • GLES3: 거리 기반 자동 세부 수준 패럴랙스(parallax)/릴리프(relief) 매핑.

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

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

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

  • 디더링은 픽셀 기반 또는 오브젝트 기반으로 판별합니다.

실시간 라이팅:

  • 디렉셔널(방향성) 라이트(directional lights) (태양 또는 달). 씬에 최대 4개까지 가능.

  • 옴니디렉셔널(전방위) 라이트(Omnidirectional lights).

  • 원뿔 모양의 각도와 감쇠가 조절 가능한 스포트라이트.

그림자 매핑

  • 방향성 라이트(DirectionalLight): 직교 (가장 빠름), PSSM 2-split 및 4-split. 스플릿 간에 블렌딩 가능합니다.

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

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

간접 라이팅을 통한 글로벌 일루미네이션:

  • 라이트맵 굽기(빠르지만 실행시간 중에 갱신할 수 없습니다).

    • 라이트맵은 CPU로 구울 수 있습니다.

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

반사

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

  • 미리 구운 빠른 반사 또는 ReflectionProbe를 이용한 느린 실시간 반사. 시차 보정을 옵션으로 활성화할 수 있습니다.

  • GLES3: 스크린 공간 반사.

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

하늘:

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

  • 절차적 하늘.

안개:

  • 조절 가능한 감쇠 커브를 이용한 깊이 안개(depth fog).

  • 감쇠 조절 가능한 높이 안개(height fog)(바닥 또는 천장).

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

  • 투과율(transmittance) 옵션을 통해 빛이 안개에서도 더 보일 수 있게 할 수 있습니다.

파티클

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

  • CPU 기반 파티클.

포스트 프로세싱

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

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

  • GLES3: 가깝거나 먼 피사계 심도.

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

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

  • bicubic 업스케일 옵션을 통한 글로우/블룸 및 몇몇 블렌딩 모드를 사용할 수 있습니다(스크린, 소프트 라이트, Add, Replace).

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

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

텍스처 필터링:

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

텍스처 압축:

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

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

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

  • GLES3: S3TC (모바일/웹 플랫폼은 지원하지 않음).

안티 앨리어싱:

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

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

이 효과들의 대부분은 더 나은 성능 또는 더 나은 품질을 위해 조절할 수 있습니다. Godot를 오프라인 렌더링에 사용할 때 유용합니다.

3D 도구

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

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

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

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

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

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

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

3D 물리(Physics)

물리 물체:

  • 정적 물체(static bodies).

  • 강체(rigid bodies).

  • 동적 물체(kinematic bodies).

  • 차체 (Vehicle bodies, 시뮬레이션이 아닌 오락용 물리입니다).

  • 관절(Joints).

  • 연체 (Soft bodies).

  • 래그돌(Ragdoll).

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

콜리전 감지:

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

  • 어느 메시든 편집기에서 삼각형 콜리전을 생성합니다.

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

셰이더

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

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

  • Text-based shaders using a shader language inspired by GLSL.

  • 비주얼 셰이더 편집기.

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

스크립팅(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에서의 도플러 효과를 선택적으로 지원.

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

  • 3D 공간에서 카메라와 다른 위치에서의 소리를 듣기 위한 Listenr3D 노드.

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

  • MIDI 입력.

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

사용된 API 목록:

  • Windows: WASAPI.

  • macOS: CoreAudio.

  • Linux: PulseAudio 또는 ALSA.

불러오기

형식:

  • 이미지: 이미지 불러오기 를 참고하세요.

  • 오디오:

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

    • Ogg Vorbis.

    • MP3.

  • 3D 씬:

    • glTF 2.0 (권장).

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

    • FBX (실험 기능).

    • Collada (.dae).

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

입력

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

    • 입력 축 값은 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 열기.

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

모바일

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

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

  • Android에서 subview 임베딩 지원.

XR 지원 (AR 및 VR)

  • iOS의 ARKit을 기본 지원.

  • OpenXR 및 OpenVR API 지원.

  • 플러그인 지원 덕분에 오큘러스 퀘스트나 HTC Vive와 같은 유명한 VR 헤드셋들이 지원됩니다.

GUI 시스템

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

노드(Node)

  • 버튼.

  • 체크박스, 체크버튼, 라디오버튼.

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

  • PopupMenu 및 OptionButton을 사용한 Dropdown 메뉴.

  • 스크롤바.

  • 레이블.

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

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

  • 컨테이너 (수평, 수직, 그리드, center, margin, draggable splitter, ...).

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

사이징:

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

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

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

  • 앵커와 expand 늘리기 비율을 이용하여 어느 종횡비라도 지원 가능.

테마:

  • 내장 테마 편집기.

    • 현재 편집기 테마 세팅에 기반하여 테마 생성 가능.

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

    • 둥근 모서리와 굽은 모서리, 그림자 및 테두리당 너비 지원.

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

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

애니메이션

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

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

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

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

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

형식

  • 씬과 리소스는 텍스트 기반 또는 바이너리 형식으로 저장할 수 있습니다.

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

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

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

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

  • JSON 파일 읽고 쓰기.

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

    • 벡터, 컬러를 포함한 모든 Godot 데이터 타입을 (역)직렬화할 수 있습니다.

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

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

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

기타(Miscellaneous)

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

  • 자동화를 위한 명령줄 인터페이스.

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

    • 완성된 스크립트는 Bash, zsh 그리고 fish에서 사용할 수 있습니다.

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

  • C++03으로 작성된 엔진과 편집기.

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

    • Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible.

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

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

더 보기

The Godot proposals repository lists features that have been requested by the community and may be implemented in future Godot releases.