본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 05. 20. 02:02

Godot 4.3 출시

요약

Godot 4.3 버전이 500명 이상의 기여자들의 참여 속에 정식 출시되었습니다. 이번 업데이트는 동적 음악 시스템을 위한 새로운 오디오 리소스, 화면 지터를 줄여주는 물리 보간 기능, 그리고 완전히 개편된 비주얼 셰이더 에디터를 포함하여 게임 개발의 편의성을 대폭 향상시켰습니다.

핵심 포인트

  • AudioStreamInteractive 등 새로운 리소스를 통한 동적 음악 시스템 구축 지원
  • 물리 보간(Physics interpolation) 도입으로 고주사율 디스플레이 및 모바일 환경에서의 시각적 매끄러움 개선
  • 가독성과 작업 효율을 높이기 위해 바닥부터 완전히 개편된 비주얼 셰이더 에디터
  • TileMapLayer 노드 도입을 통한 타일맵 레이어 관리 방식의 간소화 및 직관성 강화

Godot 4.3 출시

공동의 노력

500명 이상의 기여자(Contributors)가 작성한 3,500개 이상의 커밋(Commits)과 함께, 최신 Godot Engine 릴리스는 새로운 기능과 개선 사항으로 가득 채워졌습니다.

이번 버전에 들어간 수많은 피와 땀, 눈물을 돌이켜볼 때, 모든 사용자에게 유용한 무언가가 반드시 포함되어 있다고 거의 확신할 수 있습니다.

아래의 릴리스 개요에서 새로운 노드(Node) 유형, 편의성 개선(Quality of life changes), 그리고 물론 수많은 버그 수정 사항을 확인해 보세요.

커밋 (Commits)

기여자 (Contributors)

새로운 리소스인 AudioStreamInteractive, AudioStreamPlaylist, 그리고 AudioStreamSynchronized를 통해 복잡하고 레이어드된 음악과 전환(Transitions)을 생성할 수 있습니다.

이를 통해 게임의 맥락에 반응하는 자신만의 동적 음악 시스템을 구축할 수 있습니다.

우리가 '매끄럽다'라고 부르는 것

물리 보간(Physics interpolation)은 물리 틱(Physics ticks)과 디스플레이 프레임 속도(Display frame rates)를 분리하는 데 사용됩니다. 이는 마지막 물리 위치와 현재 위치 사이에 추가 프레임을 생성합니다. 이를 통해 지터(Jitter)를 줄여 전반적으로 더욱 매끄러운 외관을 효과적으로 만들어 줍니다.

이는 두 가지 측면에서 유용합니다:

  • 높은 재생률(High refresh rate)을 가진 디스플레이에서 게임이 더 좋아 보입니다.
  • 모바일 게임을 만드는 경우, 낮은 틱 속도(Tick rate)는 개발 대상 하드웨어에 부담을 덜 주지만, 보통은 매끄러움을 타협해야 함을 의미했습니다. 이제 더 이상 그렇지 않습니다!

이 PR(Pull Request)에서 볼 수 있듯이, 3D 물리 보간(3D physics interpolation)도 이미 제작 중입니다.

비주얼 셰이더 에디터(Visual shader editor)는 시각적으로 더 매력적으로 만들고, 크고 복잡한 셰이더 그래프(Shader graphs)의 가독성을 높이기 위해 바닥부터 완전히 개편되었습니다.

이제 노드(Nodes)는 카테고리에 따라 색상이 지정되며, 연결선의 색상도 눈이 편안하도록 조정되었습니다. 노드를 클릭하면 가시성을 높이기 위해 강조 표시됩니다.

두 가지 새로운 노드 유형인 리라우트 노드(Reroute node)와 프레임 노드(Frame node)가 추가되었습니다.
두 노드 모두 셰이더 코드(Shader code)에 영향을 주지는 않지만, 작업 공간(Workspace)을 정리하는 데 유용합니다.

노드 사이의 기존 연결 어디에나 리라우트 노드를 추가하고 자유롭게 이동할 수 있습니다. 프레임 노드는 관련된 노드들을 시각적으로 하나로 묶는 데 사용됩니다.

이전 버전에서는 TileMap에 레이어 (layers)를 추가하려면 인스펙터 (inspector)에서 직접 추가해야 했습니다. 우리는 기존 방식을 완전히 대체하기 위해 새로운 TileMapLayer 노드를 생성하여 이 과정을 간소화했습니다.

사용하기 더 직관적일 뿐만 아니라, 이는 이제 Godot Engine의 전반적인 설계 철학 (design philosophy)과도 더 잘 부합합니다.

사용자의 편의를 위해, 에디터 (editor)에서 클릭 한 번으로 기존의 TileMap 노드를 TileMapLayer 노드로 변환할 수 있습니다. 만약 기존 방식을 선호하신다면, 지원 중단 예정 (deprecated)인 노드 타입도 당분간은 계속 지원됩니다.

Godot 3는 싱글 스레드 (single-threaded) 및 멀티 스레드 (multi-threaded) Web 내보내기 (exports)를 모두 지원했습니다. Godot 4를 출시했을 당시, 우리는 브라우저 기술이 곧 멀티 스레드에만 집중할 수 있을 정도로 충분히 발전할 것이라고 가정했습니다. 하지만 그렇게 되지 않았기에, 싱글 스레드 애플리케이션을 내보낼 수 있는 옵션을 다시 추가합니다.

이를 통해 더 나은 브라우저 호환성을 달성하여, 게임을 Web 플랫폼에 더 쉽고 빠르게 업로드할 수 있게 되었습니다. 또한 이는 사용자들이 이전에 경험했던 복잡한 서버 측 설정 (server-side configurations) 및 기타 제한 사항들을 제거해 줍니다.

엔진 내부 컴포넌트 (Internal engine components)들이 전반적인 멀티 스레딩 (multi-threading) 성능을 향상시키기 위해 재작업되었습니다.

데드락 (deadlocks)을 유발하는 예외 케이스 (edge cases)의 가능성을 줄임으로써, 이제 리소스 (resources) 로딩이 전반적으로 훨씬 더 안정적이 되었습니다. 이 효과는 리소스와 의존성 (dependencies)의 복잡도와 상관없이 런타임 (runtime) 중에도 눈에 띄게 나타납니다!

AnimationMixer가 새로운 뼈대 (bones)를 갖추게 되었습니다. 이번 출시 이전에는 스크립트 (script)를 통해 뼈대를 움직이는 것이 까다로웠습니다. 새로운 SkeletonModifier3D 노드는 이 과정을 이해하기 더 쉽게 만들 뿐만 아니라 전반적으로 더 유연하게 만들어 줍니다.

주의할 점: 이것은 추상 노드 (abstract node)이므로, 프로젝트에 직접 추가할 수는 없습니다. 대신 스크립트에서 커스텀 기능 구현을 위해 이를 @extend 할 수 있습니다.

이 새로운 임포트 (import) 옵션들은 애니메이션 세트 (animation sets), 특히 .fbx 형식을 사용하는 애니메이션의 리타겟팅 (retargeting)을 도와줍니다.

보유하고 있는 모든 스켈레톤 (skeletons)을 완전히 활용할 수 있도록, 이제 휴식 포즈 (rest poses)를 설정하거나 사용자 정의 템플릿 (templates)을 사용하는 등의 작업이 가능합니다.

이제 .fbx 파일 형식을 네이티브로 지원하므로, 캐릭터 (characters)와 애니메이션 (animations)을 임포트 (importing)할 때 걱정을 덜 수 있습니다. 이는 외부 컨버터 (converter)를 다운로드할 필요가 없도록 내부적인 ufbx 임포터 (importer)를 통해 이루어집니다.

이 업계 표준을 지원함으로써 여러분의 3D 워크플로 (workflows)가 개선되기를 바랍니다. 이번 릴리스에는 엔진의 이 분야에 대한 몇 가지 일반적인 개선 사항도 포함되어 있습니다.

프로젝트 매니저 (project manager)의 디자인이 개편되었습니다. 이제 언어, 인터페이스 테마 (interface theme), 디스플레이 스케일 (display scale), 새로운 네트워크 모드 (network mode), 디렉토리 명명 규칙 (directory naming conventions)과 같은 일부 에디터 설정 (editor settings)에 여기서 직접 접근할 수 있습니다.

또한, 새로운 Godot 버전이 출시되었을 때 알려주는 업데이트 확인기 (update checker)를 추가했습니다. 이것이 자동으로 작동하려면 네트워크 모드 (network mode)를 활성화해야 합니다!

패럴랙스 (Parallax)는 2D 게임에서 플레이어에게 깊이감을 주는 착시를 제공하기 위해 사용되는 시각 효과입니다. 이는 배경 요소를 서로 다른 속도로 움직임으로써 구현됩니다.

이미 게임에 패럴랙스 효과를 추가할 수는 있었지만, 기존의 Parallax2D 구현에는 제한 사항이 있었습니다. 예를 들어, 여기 영상에서 보이는 것과 같은 오버레이 효과 (overlaying effects)를 적용하는 것은 이전에는 불가능했습니다.

다시 한번, 기존 씬 (scenes)을 위한 컨버터 (converter)도 내장하였습니다.

다음과 같은 현상이 발생하고 있었습니다: 변환 (transformations)을 표면에 스냅 (snapping)할 때, 사용자들로부터 틈새가 생기거나 픽셀이 잘못 배치된다는 보고가 있었습니다. 이는 해당 변환 내에서 이전에는 정교하지 못했던 계산으로 인해 발생했습니다. 이는 스냅을 해제 (unsnapping)하는 방식으로만 우회할 수 있었는데, 이는 이상적인 해결책이 아니었습니다.

아래 영상에서 볼 수 있듯이 이 문제는 이제 해결되었습니다. 왼쪽의 빨간색 표시를 주목하고 오른쪽의 올바른 변환 (transforms)과 비교해 보세요. 이번에는 오브젝트들이 제대로 스냅 (snap)되는 것을 확인할 수 있습니다.

Premultiplied alpha (전처리 알파)는 3D 재질 (materials)을 위한 새로운 블렌드 모드 (blend mode)입니다. 이를 통해 더 보기 좋은 화염과 불꽃놀이를 만들 수 있는데, 이제 동일한 파티클 (particle)이 화염을 위한 가산 혼합 (additive blending) 속성과 연기(smoke)를 위한 혼합 (mix blending) 속성을 동시에 가질 수 있기 때문입니다.

비디오를 통해 왼쪽 통의 화염(가산 혼합 사용)에는 연기가 보이지 않는 반면, Premultiplied alpha 블렌딩을 사용하는 다른 통의 화염에는 연기가 보이는 것을 확인해 보세요.

Compositor 효과 (Compositor effects)를 사용하면 사용자가 Godot의 내장 렌더링 파이프라인 (rendering pipeline)에 연결하여 커스텀 렌더링 코드를 추가할 수 있습니다. 이는 렌더링이 어떻게 작동하는지에 대한 깊은 지식을 요구하는 고급 기능입니다. 하지만 이를 통해 전문가들이 다양한 효과를 더욱 효율적으로 제작할 수 있습니다.

이미 초기 사용자들로부터 이 기능을 활용해 빛줄기 (god rays)를 만들거나 모션 블러 (motion blur)를 구현하는 등 멋진 사례들이 나오고 있습니다!

우리는 이 분야의 고질적인 버그들을 완전히 제거하기 위해 RenderingDevice, 특히 디바이스 컨텍스트 (device contexts)를 관리하는 방식을 리팩터링 (refactored)했습니다.

보너스로, 이를 통해 필요할 때마다 새로운 렌더링 디바이스 (rendering devices)를 생성할 수 있게 되었으며, 이는 마침내 Compatibility 렌더러 (Compatibility renderer, 현재 저사양 기기 및 Web 플랫폼을 타겟팅할 때 권장됨)에서 라이트맵 (lightmaps)을 베이크 (baking)할 수 있는 길을 열어주었습니다.

깊이 기반 안개 (depth-based fog)를 사용하면 안개가 어디서 시작되고 언제 완전히 불투명 (opaque)하게 전환될지를 결정할 수 있습니다.

지수형 안개 (exponential fog) 모드와 비교하면 덜 사실적으로 보일 수 있지만, 이제 고전적인 호러 게임에 어울리는 분위기를 조성할 수 있는 도구를 갖추게 되었습니다.

Forward+Mobile 렌더링 백엔드 (rendering backends)를 구동하는 엔진의 부분인 RenderingDevice는 방향성 비순환 렌더 그래프 (directed acyclic render graph)의 도입을 통해 개선되었습니다.

최신 GPU API (Vulkan, D3D12, Metal)가 개발자에게 그래픽 카드에 대한 더 직접적인 접근 권한을 부여함에 따라, 모든 것이 올바르게 작동하도록 보장해야 하는 부담은 사용자에게 돌아갑니다. 비순환 그래프 (acyclic graph)를 통해 엔진은 모든 작업이 올바른 순서로 수행되도록 보장하면서, 그래픽 API의 오버헤드 (overhead)를 최소화하기 위해 명령 (commands)의 순서를 재정렬하고 최적화할 수 있습니다.

3D 씬 (scene)에 아무런 변경을 가하지 않고도, 5%에서 15% 사이의 프레임 레이트 (frame rate) 향상을 기대할 수 있습니다 (GPUParticles를 많이 사용하는 경우에는 그 이상일 수 있습니다)!

이번 릴리스 사이클 동안 Compatibility 렌더링 백엔드 (rendering backend)가 많은 관심을 받았습니다. 이제 기능적으로 완성된 (feature complete) 것으로 간주됩니다.

이번 릴리스에서 주목해야 할 키워드는 다음과 같습니다:

  • MSAA
  • 해상도 스케일링 (Resolution scaling)
  • 글로우 (Glow)
  • ReflectionProbes
  • LightmapGI
  • Adjustments
  • 색 보정 (Color correction)

Windows에서는 Direct3D를 선호하기 때문에, 이 새로운 렌더링 드라이버의 추가는 모든 Microsoft 플랫폼과의 호환성을 향상시킵니다. 또한, 최근 Windows가 ARM으로 출시됨에 따라, 이제 해당 장치에서 Godot Engine을 사용할 수 있을 뿐만 아니라 게임을 해당 장치용으로 내보내기 (export) 할 수도 있습니다.

지금까지 Direct3D 12를 사용하려면 직접 커스텀 Godot 버전을 빌드하고 프로젝트에 DXIL.dll 라이브러리를 포함해야 했습니다. 이러한 복잡함은 해당 파일이 독점적 (proprietary)이었기 때문에 Godot Engine과 함께 번들로 제공할 수 없었던 데서 기인했습니다. 지난달 Microsoft가 DXIL 검증기 (validator) 해시를 오픈 소스로 공개한 덕분에, 이는 더 이상 문제가 되지 않으며 공식 빌드에서 Direct3D 12 렌더링 드라이버를 직접 지원할 수 있게 되었습니다.

이 기능은 현재 실험적 (experimental) 단계이며 사용자가 직접 선택 (opting in) 해야 합니다.

Wayland는 Linux 및 일부 BSD 파생 운영 체제에서 사용할 수 있는 현대적인 디스플레이 서버 프로토콜 (display server protocol)입니다. 이는 X11 윈도우 시스템 프로토콜 및 아키텍처를 대체하는 것을 목표로 합니다. 내장된 Wayland 지원을 통해, 개발자들이 훨씬 더 깔끔한 API와 출시되는 새로운 Wayland 기능들에 접근할 수 있도록 지원합니다.

렌즈 왜곡 (lens distortion)을 보정하기 위해, 3D 공간의 비주얼은 XR 컴포지터 (compositor)에 의해 수정되어야 합니다. 이러한 추가적인 처리는 2D 콘텐츠, 특히 사용자 인터페이스 (UI)에서 발견되는 작은 텍스트를 약간 흐릿하게 만들고 읽기 어렵게 만들 수 있습니다.

UI를 OpenXRCompositionLayer 노드에 배치함으로써, XR 컴포지터가 뷰포트 (viewport)를 직접 렌더링하도록 강제할 수 있으며, 이를 통해 더 선명하고 깨끗한 2D 콘텐츠를 얻을 수 있습니다.

이번 릴리스에서는 XR 핸드 트래킹 (hand tracking)을 위한 새로운 표준화된 시스템을 도입했습니다. 이를 통해 개발자는 단 한 종류의 노드(및 코드)를 사용하여 여러 XR 생태계에서 작동하는 핸드 트래킹 경험을 제작할 수 있습니다. 이는 현재 OpenXR과 WebXR 모두에서 지원됩니다.

그 외에도 신체 및 얼굴 트래킹 (body and face tracking)을 위한 완전히 새로운 시스템을 도입했습니다. 이 시스템들 또한 동일한 표준화된 방식으로 구축되었으나, 현재는 Meta Quest 헤드셋의 OpenXR에서만 지원됩니다.

엔진의 이 부분에 이루어진 수많은 개선 덕분에, 이제 XR 애플리케이션이 더욱 안정적이고 성능이 뛰어납니다.

주요 하이라이트는 다음과 같습니다:

  • 트래킹 데이터의 타이밍 개선
  • MobileForward+ 렌더러 (renderers)에서 포비에이티드 렌더링 (Foveated rendering) 조정
  • 안경 기반 AR 및 패스스루 (passthrough) 기반 AR 통합

XR 게임 개발의 복잡한 문제 중 하나는 애플리케이션을 헤드셋에서 반복적으로 테스트해야 한다는 점이며, 특히 헤드셋이 스탠드얼론 (standalone) VR 기기인 경우(즉, 컴퓨터에 연결되지 않은 경우) 더욱 그렇습니다.

Meta XR Simulator는 대신 시뮬레이션된 Quest 헤드셋에서 XR 애플리케이션을 테스트할 수 있는 무료 도구입니다. 이를 기기에 다운로드하고 설치한 후, 이제 Godot 에디터 내에서 직접 작동하도록 구성할 수 있습니다. 이 기능은 시뮬레이터 자체가 현재 Linux를 지원하지 않기 때문에 Windows 및 macOS로 제한됩니다.

증강 현실 (Augmented reality)은 주변 세계와 상호작용할 수 있도록 주변 환경에 대한 지식을 필요로 합니다. Meta는 '씬 디스커버리 (scene discovery)' 기능을 통해 이러한 종류의 정보를 제공하며, 이제 Godot에서도 이를 지원합니다. 이를 통해 주변 세계의 메쉬 (mesh)나 방 안의 주요 요소들의 위치를 파악할 수 있습니다.

개발자는 헤드셋이 세션 전반에 걸쳐 추적하고 기억할 수 있도록 고유한 공간 앵커 (Spatial Anchors)를 추가할 수 있습니다. 이를 사용하여 예를 들어 게임 오브젝트에 영구적인 위치를 할당하거나, 가상 화면을 한 곳에 고정하는 등의 작업을 수행할 수 있습니다.

이론적으로 이 기능은 향후 유사한 기능을 구현하는 모든 헤드셋에 맞게 재용도화될 수 있습니다.

Web 플랫폼에서 오디오 샘플 (audio samples)을 지원함으로써, API를 활용하여 끊김 없이 낮은 지연 시간 (low-latency)과 고품질 오디오를 제공합니다.

이 기능은 싱글 스레드 (single-threaded) Web 빌드를 내보낼 때 발생하던 지속적인 오디오 문제를 해결하기 위해 필요했습니다.

스플래시 화면 (splash screen) 기능은 다른 모든 플랫폼에서 이미 안정적으로 자리 잡았으며, 이제 Web에서도 사용할 수 있습니다. 언제나 그렇듯, 스플래시 화면을 설정하는 것은 전적으로 선택 사항이며, 원하는 대로 자유롭게 커스터마이징할 수 있습니다.

또한, Web 진행률 표시줄 (progress bar)이 재작업되었습니다. 저희는 가짜 시간 추정치 (fake time estimation)를 추가하는 것은 지양했습니다.

.cs 스크립트를 포함하는 노드 (nodes) 및 리소스 (resources)의 인스펙터 (inspector)는 코드에 변경 사항을 만들었지만 아직 프로젝트를 다시 빌드 (rebuild)하지 않았을 때 경고를 표시하게 됩니다.

이 변경 사항이 적용되기 전에는 이러한 불일치를 나타내는 가시적인 표시가 없어, 왜 변경 사항이 업데이트되지 않는지에 대해 혼란을 야기했습니다. 이 경고가 소중한 시간을 절약하는 데 도움이 되기를 바랍니다!

AI 자동 생성 콘텐츠

본 콘텐츠는 HN Game Dev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0