
Godot 4.4 출시
요약
Godot 4.4 버전이 출시되어 에디터 개편과 다양한 편의 기능 개선을 선보였습니다. Jolt 물리 엔진의 공식 통합, 셰이더 스터터링을 방지하는 Ubershader 도입, 그리고 3D 물리 보간 기능 추가를 통해 게임 개발 경험을 대폭 향상시켰습니다.
핵심 포인트
- Jolt 물리 엔진이 엔진에 직접 통합되어 표준 물리 엔진으로 사용 가능 (Linux, Windows, Android 지원)
- Ubershader 기술 도입을 통해 셰이더 컴파일 시 발생하는 프리징 및 스터터링 현상 방지
- 3D 물리 보간(Physics Interpolation) 기능 추가로 물리 틱과 프레임 레이트 간의 지터(Jitter) 현상 감소
- OpenXR을 통한 XR 헤드셋 환경에서의 Android 에디터 지원 시작 (Meta Quest 시리즈)
- 에디터 내 인게임 인터랙티브 편집 및 임베디드 게임 창 기능 등 사용자 경험(QoL) 개선
Godot 4.4 출시
통합된 경험
이번 출시 버전에 숨겨진 수많은 편의성 (Quality of Life) 개선 사항들을 기대해 주세요. 더 빠른 로딩 속도, 감소된 스터터링 (Stutter), 간소화된 프로세스 등 — 백그라운드에 적용된 모든 최적화 사항들을 찾아내는 데는 시간이 좀 걸릴 것입니다.
그뿐만 아니라, 임베디드 게임 창 (Embedded game windows) 및 인게임 인터랙티브 편집 (Interactive in-game editing)과 같이 오랫동안 기다려온 편의 기능들은 시장의 다른 소프트웨어들과 더욱 일치하는 느낌을 줄 것이며, 소프트웨어 간의 전환을 더욱 매끄러운 경험으로 만들어 줄 것입니다. 결국, 이번 출시의 큰 비중은 에디터 개편 (Editor overhaul)이 차지하고 있습니다.
Jolt로 활력을 불어넣다
Jolt 확장 기능은 2022년 말 등장 이후 많은 Godot 개발자들 사이에서 사실상의 표준 (de facto) 물리 엔진으로 사용되어 왔기에, 이를 엔진에 직접 통합하는 것은 당연한 수순이었습니다. Jolt Physics 자체는 사실 독립적인 오픈 소스 물리 엔진이며, 그 제작자는 Godot 바인딩 (Bindings) 작업에 엄청난 도움을 주었습니다.
이번 PR (Pull Request)은 가장 엄격하게 테스트된 것 중 하나일 수 있지만, 저희는 이 기능에서
참고로 이 기능은 현재 Linux, Windows, Android에서만 작동합니다. 기술적인 이유로 macOS 지원을 위해서는 다른 접근 방식이 필요할 것입니다.
프로젝트 속으로 뛰어드세요
에디터가 실행 중이거나 일시 중지된 상태에서 게임을 수정하는 것이 그 어느 때보다 쉬워졌습니다. 이번 릴리스를 통해 씬 (Scene) 내의 요소들을 클릭하고 카메라를 이동할 수 있어, 이전에는 불가능했던 방식으로 게임 월드를 탐험할 수 있습니다.
VR로 게임을 만드세요!
Godot 에디터 자체도 다른 프로젝트와 마찬가지로 엔진으로 만들어진 프로젝트이기 때문에, 웹이나 모바일과 같은 더 이색적인 환경에서도 사용할 수 있습니다.
이번 릴리스를 통해, 기존 Android 에디터를 XR 헤드셋 환경으로 전송하기 위해 OpenXR을 사용하는 첫 단계가 마련되었습니다.
현재 Meta Quest 3, Quest 3S, 그리고 Quest Pro에서 지원됩니다.
엄청나게 흥미로운 소식!
Ubershader (우버셰이더)는 모든 기능을 포함하여 로드 시점에 사전 컴파일된 각 셰이더 (Shader)의 버전입니다.
새로운 오브젝트가 그려질 때마다 이 셰이더들이 폴백 (Fallback) 역할을 수행하므로, 백그라운드에서 더 전문화된 셰이더 파이프라인 (Shader Pipeline)이 컴파일될 때까지 기다리며 발생하던 프리징 (Freezing) 현상이 과거의 일이 됩니다. 따라서 이 기술은 셰이더 스터터 (Shader Stutter, 셰이더 끊김)를 완전히 방지합니다!
이 변경 사항으로 인한 개선은 별도의 콘텐츠 수정 없이도 대부분의 게임에서 눈에 띄게 나타날 것입니다. 다만, 일부 경우에는 우버셰이더가 작동하지 않을 수 있습니다. 간단한 해결 방법을 알아보려면 공식 문서의 셰이더 스터터에 대한 워크아라운드 (Workarounds)를 참조하십시오.
저희는 이미 이 새로운 인프라를 활용할 수 있도록 기존 셰이더들을 업데이트하는 과정을 진행 중입니다.
떨림(Jitters)을 느끼시나요?
Godot 4.3에서 2D 프로젝트를 위한 물리 보간 (Physics Interpolation)을 도입했습니다. 이번 릴리스에서는 오랫동안 기다려온 3D 대응 기능도 병합되었습니다! 프로젝트 설정에서 이 기능을 반드시 활성화하십시오.
물리 틱 (physics ticks)과 디스플레이 프레임 레이트 (display frame rates)를 분리함으로써, 물리 보간 (physics interpolation)은 마지막 물리 위치와 현재 위치 사이에 추가적인 프레임을 생성합니다. 이는 지터 (jitter)를 줄이고, 특히 높은 주사율을 가진 디스플레이에서 더욱 부드러운 외관을 만들어냅니다.
특히 모바일 게임의 경우, 부드러움을 해치지 않으면서도 틱 레이트 (tick rate)를 낮출 수 있기 때문에 이 변화의 혜택을 크게 누릴 수 있습니다.
새롭게 등장한 매력적인 기능
이 톤 매핑 (tone mapping) 알고리즘은 최근 많은 인기를 얻고 있습니다. Blender의 개발진은 기존의 “filmic” 톤 매퍼를 AgX로 교체하기까지 했습니다.
Godot의 구현 방식은 이와 매우 유사하지만, 실시간 (real time) 사용 사례에 더 적합하도록 의도적으로 단순화되었습니다.
AgX는 렌더링 결과물에 영화 같은 품질을 부여하며, 기존의 다른 옵션들보다 매우 밝은 장면을 더 잘 처리할 수 있습니다.
필요한 키 (Keys required)
여러분의 요청이 반영되었습니다!
타입 지정 딕셔너리 (Typed dictionaries)가 Godot에 도입됩니다. 이는 코어 엔진, GDScript, 그리고 Godot의 딕셔너리 (Dictionary) 타입과 인터페이스하는 모든 다른 스크립팅 언어에 영향을 미칩니다.
이에 맞춰 인스펙터 (Inspector) UX가 개선되어, 에디터에서 직접 올바른 키와 값을 할당할 수 있습니다.
더 강력하고, 더 빠르고, 더 나은 성능
이제 Godot 4의 핵심 기능 세트가 안정화됨에 따라, 기여자들은 전반적인 최적화 작업으로 노력을 전환했습니다.
연결된 많은 PR (Pull Requests)들이 4.3 릴리스 이전에 완료 및 테스트되었으나 머지 (merge) 마감 기한을 맞추지 못했고, 그 결과 여러분이 지금 즐길 수 있는 대규모 배치가 준비되었습니다.
CSG (Constructive Solid Geometry) 지원은 Godot 3.1부터 엔진에 포함되어 있었으며, 빠른 프로토타이핑 (rapid prototyping)을 위한 훌륭한 도구입니다.
그럼에도 불구하고, 내부 구현 방식은 안정성 문제와 기타 버그로 어려움을 겪었습니다. 이 부분은 엔진 내에서 전담 유지 관리자가 없는 영역 중 하나였기에, 동일한 기능을 가진 오픈 소스 라이브러리가 출시되었을 때 우리는 그 기회를 놓치지 않고 도입했습니다.
Manifold는 기존 구현을 완전히 대체하며, 이는 Godot가 내부적으로 CSG를 처리하는 방식에 있어 상당히 큰 변화이지만, 사용자 API에는 최소한의 영향만 미칩니다. 업그레이드 후 프로젝트를 확인해 주시고, 부정적인 결과가 있다면 저희에게 보고해 주세요. 그래야 문제를 해결할 수 있습니다!
Curve 값의 도메인을 정규화된 [0, 1] 범위를 넘어 확장함으로써, 우리는 이 보편적인 리소스에 함수와 데이터를 매핑하는 방식에 있어 더 큰 유연성을 제공하고자 합니다.
이 완전히 새로운 API를 통해 임시 파일과 디렉터리를 생성하고 폐기할 수 있습니다. 다시 말해, 사용자 데이터를 오염시킬 걱정 없이 디스크에 콘텐츠를 작성할 수 있다는 뜻입니다. 기본적으로 이 방식으로 생성된 모든 파일/디렉터리는 사용 후 자동으로 폐기됩니다.
특히 툴 개발자들은 이 새로운 기능을 살펴보아야 합니다!
모두를 위한 성능 향상
SceneTree 시스템의 작동 방식, 구체적으로 노드의 변경 사항을 처리하는 방식에 가해진 변화는 모든 프로젝트에서 에디터 성능 향상으로 이어집니다.
이제 복잡한 씬에서 노드를 이동하거나 이름을 변경하는 작업이 훨씬 더 빨라질 것입니다!
더 이상 깨진 경로 문제 없음
부분 고유 식별자 (Partial Unique Identifier, UID) 지원 — 변경되기 쉬운 사람이 읽을 수 있는 파일 경로에 의존하지 않고 리소스를 참조하는 방식 — 은 Godot 4.0부터 엔진에 존재해 왔지만, 많은 파일 유형이 아직 그 혜택을 받지 못했습니다. 이제 이 완전히 지원되는 워크플로우는 Godot를 파일 시스템 구성 변경에 더 강하게 만들어 주며, 따라서 더 큰 프로젝트에 더 적합하게 만듭니다.
Godot 4.3에서 프로젝트를 업그레이드하는 것을 더 쉽게 만들기 위해, 이번 릴리스에는 그리 간단하지 않은 과정을 자동화해 주는 UID 업그레이드 도구도 포함되어 있습니다.
스냅, 당신이 주인공입니다
에디터에서 3D 오브젝트를 배치할 때, 이제 다른 표면에 스냅(snap)할 수 있습니다.
이는 충돌 감지 레이(collision detection ray)를 통해 작동하며, 씬에서 오브젝트의 위치를 재조정하는 것을 더 쉽게 만들어 줍니다.
관점을 전환하세요
Camera3D를 조정하는 작업이 이제 훨씬 덜 번거로워졌습니다. 다른 뷰포트 (viewport)를 열거나 앞뒤로 전환할 필요 없이, 인스펙터 (inspector)에서 캡처된 모습을 직접 미리 볼 수 있습니다.
알고 계셨나요…
GDScript 에디터에서 함수 (functions), 변수 (variables), 클래스 (classes) 등에 마우스를 올리면, 통합 문서 (integrated documentation)의 추가 정보가 포함된 툴팁 (tooltip) 팝업이 나타납니다. 여기에는 새로운 문서 시스템을 사용하여 직접 작성한 노트도 포함됩니다.
UID는 마우스를 올렸을 때 사람이 읽을 수 있는 경로 (human-readable path)를 보여줍니다.
print 문 대체하기
새로운 표현식 평가기 (expression evaluator)가 에디터 하단 패널의 새로운 탭으로 추가되었습니다. 이를 통해 중단점 (breakpoint)에서 멈춰 있는 동안 로컬 상태 (local state)를 사용하여 표현식을 직접 평가할 수 있습니다.
둘 다. 둘 다 좋습니다.
이제 LightmapGI를 사용할 때 완전히 구워진 (fully baked) 그림자와 완전히 동적인 (fully dynamic) 그림자 사이에서 고민할 필요가 없습니다.
라이트맵 (lightmaps)을 굽는 동안 섀도우마스크 (shadowmasks)를 활성화하면, 멀리 있는 곳에는 정적 그림자 (static shadows)를 사용하고 가까운 곳에는 동적 그림자 (dynamic shadows)를 사용하는 것이 가능해집니다. 멀리 있는 낮은 해상도는 귀중한 리소스를 절약하는 동시에, 플레이어와 가까운 곳의 디테일 수준 (level of detail)은 영향을 받지 않습니다.
이와 같이 동적 그림자의 범위를 줄이는 것은 특히 모바일 애플리케이션을 위해 매우 중요한 최적화 (optimization)를 제공합니다.
하던 작업에서 바로 계속하기
이는 대형 모니터나 다중 모니터 설정을 사용하는 모든 사람을 위한 삶의 질 (quality of life) 개선 사항입니다.
Godot 에디터는 이제 전체 화면 (fullscreen) 모드인지 창 모드 (windowed mode)인지, 어떤 화면에 있는지, 그리고 크기와 위치가 어떠한지 등의 창 상태 (window state)를 기억합니다.
이 설정들은 프로그램을 다시 열 때 자동으로 복원됩니다.
작지만 강력한
이번 릴리스에서는 비주얼 셰이더 (visual shader) 에디터가 개선되었습니다:
- 머티리얼 미리보기 (material previews) 및 그에 맞는 새로운 사이드 독 (side dock)
- 메시 (meshes)를 비주얼 셰이더 영역으로 드래그 앤 드롭하여 메시 이미터 (mesh emitters)를 자동으로 생성하는 기능
에디터 로드 속도가 다시 한번 향상되었습니다. 대규모 프로젝트의 경우 최대 3배의 속도 향상을 기대할 수 있습니다!
이는 프로젝트 시작과 파일 시스템을 스캔하는 모든 작업 모두에 이점을 제공합니다.
게임을 실행하는 동안 — 씬 (Scene) 로딩의 처음 몇 초를 놓치지 않고 — 프로파일링 (Profiling) 데이터를 캡처하고 싶다면, 이 새로운 체크박스가 매우 유용할 것입니다.
이 옵션을 사용하면 프로젝트를 실행할 때 직접 게임에서 탭 아웃 (Tab out) 하여 설정할 필요 없이, 모든 프로파일러 (Profiler)가 자동으로 시작됩니다.
버전 관리 시스템 (Version Control System)에서 프로젝트를 새로 임포트 (Import) 한 후 에러의 벽에 부딪히고 싶은 사람은 아무도 없습니다.
이전에는 .godot 폴더를 프로젝트를 처음 열 때 자동으로 생성하므로 저장소 (Repository)에 푸시 (Push) 할 필요가 없었기 때문에 이런 일이 발생하곤 했습니다. 그 후에는 깨진 참조 (Reference)로 인해 발생하는 모든 에러를 제거하기 위해 에디터를 재시작해야 했지만, 이제는 더 이상 그럴 필요가 없습니다!
시작부터 끝까지 모바일에서 유지하기
Godot 에디터는 이미 한동안 Android 기기에서 사용할 수 있었지만, 지금까지는 다양한 플랫폼 바이너리 (Platform Binaries)를 생성하기 위해 다른 OS로 전환해야만 했습니다.
이제 그럴 필요가 없습니다. Android 기기에 내보내기 템플릿 (Export Templates)을 다운로드하여 그 자리에서 바로 프로젝트를 마무리하세요.
페이스 조절하기 (Pace yourself)
Swappy로도 알려진 Android 프레임 페이싱 (Frame Pacing) 라이브러리는 게임이 Android에서 부드러운 렌더링 (Rendering)과 정확한 프레임 페이싱을 달성할 수 있도록 도와줍니다. 이 라이브러리는 기기에서 지원하는 경우 여러 재생률 (Refresh Rates)을 처리하므로, 게임이 프레임을 표시하는 데 더 많은 유연성을 제공합니다.
개발자로서 이러한 이점을 누리기 위해 별도로 할 일은 없습니다. 프로젝트를 업그레이드하면 자동으로 적용됩니다.
매치매치 (Matchy-matchy)
사용자의 시스템 테마 (System Theme)와 일치시키기 위해, 이제 내보내기 시 앱에 단색 아이콘 (Monochrome Icon)을 제공할 수 있으며, 그러면 사용자에게 맞춰 자동으로 색상이 재지정됩니다. 이는 앱의 네이티브 (Native) 느낌을 향상시키는 간단한 방법입니다.
이제 우리가 당신을 볼 수 있습니다!
Godot 4.4 이전에는 기기의 카메라에 접근하는 기능이 macOS 및 iOS 기기에서만 지원되었습니다.
이제 Linux 지원도 마침내 병합되었습니다.
다른 플랫폼의 경우, 여전히 기여자들이 작업을 맡아주기를 기다리고 있습니다 — 당신이 그 주인공이 될 수 있을까요?
우회 방식(workarounds)의 제거
Metal은 Vulkan이나 D3D12와 유사한 저수준 그래픽 API (low-level graphics API)로, 이들은 모두 Godot에서 지원되지만 macOS 및 iOS에서는 사용할 수 없습니다. 지금까지 Godot는 Metal 위에서 Vulkan을 실행하기 위해 MoltenVK라는 라이브러리를 사용해 왔습니다.
이번 직접 구현 방식은 더 효율적이며, 향후 기능 및 성능 트레이드오프 (performance trade-offs)에 대해 더 큰 제어권을 제공합니다. 초기 결과에 따르면 이 백엔드 (backend)는 최소한 Vulkan만큼 빠르며, 많은 경우 Apple 하드웨어에서 훨씬 더 빠른 성능을 보여주었습니다.
이 새로운 백엔드와 관련하여, 이제 기존 업스케일러 (upscaler)의 대안으로 MetalFX 업스케일링 (upscaling)을 사용할 수 있는 옵션이 제공됩니다.
Metal 지원은 현재 Apple Silicon (ARM) 기기로 제한된다는 점에 유의하십시오.
macOS와 iOS 간의 코드를 더욱 통일하기 위해, 두 플랫폼에서 게임 컨트롤러가 작동하는 방식을 전면 개편했습니다. 이 과정에서 수많은 버그가 수정되었습니다.
컨트롤러 탐색 (discovery)의 신뢰성과 럼블 모터 (rumble motors) 조작의 개선 사항을 확인하실 수 있을 것입니다.
업그레이드할 시간입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Game Dev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기