본문으로 건너뛰기

© 2026 Molayo

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

Godot 4.3 Dev Snapshot 6 업데이트

요약

Godot 4.3의 기능 구현이 완료되었음을 알리는 마지막 개발 스냅샷 6 업데이트 소식입니다. 이번 업데이트는 650개의 커밋을 포함하며, 2D 물리 보간 기능 도입과 TileMap 레이어의 노드화 등 주요 개선 사항을 담고 있습니다.

핵심 포인트

  • Godot 4.3의 기능 구현(Feature Complete) 완료 및 곧 베타 1 단계 진입 예정
  • 2D 물리 보간(Physics Interpolation) 기능 구현을 통한 화면 떨림(Jitter) 현상 해결
  • TileMap 레이어가 개별 TileMapLayer 노드로 노출되어 API 단순화 및 디자인 패턴 일치
  • 회귀 문제 해결 및 엔진 전반의 버그 수정과 안정성 강화에 집중

이것은 Godot 4.3이 베타 단계(beta phase)에 진입하기 전 마지막 개발 스냅샷(dev snapshot)이며, 이는 이제 4.3의 기능 구현이 완료(feature complete)되었음을 의미합니다!

이번 스냅샷은 650개의 커밋(commit)이 포함되어 특히 기능이 풍부합니다(이전 스냅샷보다 두 배 더 큼). 이는 우리가 일부 새로운 변경 사항으로 인해 발생한 회귀(regressions) 및 호환성 문제(compatibility breakages)를 해결하는 데 시간을 할애했기 때문입니다. 따라서 일부 기여자(contributors)들이 이러한 회귀 문제를 수정하는 데 집중하는 동안, 다른 이들은 엔진의 모든 영역에서 많은 개선 사항과 버그 수정(bugfixes)을 마무리하고 병합(merge)할 충분한 시간을 가질 수 있었습니다.

평소와 마찬가지로, 가까운 시일 내에 4.3 beta 1을 출시하면 테스터(testers)의 수가 크게 증가할 것으로 예상합니다. 따라서 이미 우리의 4.3 개발 스냅샷을 테스트하고 있는 용감한 사용자분들은, 우리가 가능한 한 원활한 베타 출시를 목표로 할 수 있도록 발견하는 모든 중대한 문제(breaking issue)를 반드시 보고해 주시기 바랍니다.

각 개발 스냅샷이 일반적인 테스트를 수행하기에 충분히 안정적이도록 노력하고 있지만, 이것은 정의상 프리릴리스(pre-release) 소프트웨어라는 점을 명심하십시오. 데이터 손상이나 손실에 대비하여 프로젝트를 보존할 수 있도록 빈번하게 백업을 수행하거나 Git과 같은 버전 관리 시스템(version control system)을 사용하십시오.

Downloads 섹션으로 이동하여 지금 바로 실행해 보거나, 이번 릴리스(release)의 개선 사항에 대해 더 자세히 알아보려면 계속 읽어주세요. 이번 릴리스의 Web editor 또는 Android editor를 사용해 볼 수도 있습니다. 후자에 관심이 있다면, 프리릴리스 빌드(pre-release builds)에 접근할 수 있도록 저희 테스트 그룹에 가입 요청을 해주시기 바랍니다.

커버 일러스트는 Godot 4.3 dev 5로 제작된 Bippinbits의 Ludum Dare 55 제출작인 Tristram의 것입니다. 이 게임에서 당신은 Diablo 1의 Tristram 시장 역할을 맡아 도시와 부를 찾는 영웅들의 꾸준한 공급을 관리하게 됩니다.

주요 하이라이트 (Highlights)

이 스냅샷은 6주 이상의 추가 개발을 거쳐 새로운 기능과 중요한 수정 사항들을 가득 담고 있습니다.

참고로, 이 섹션은 이전 4.3 dev 5 스냅샷 이후에 이루어진 변경 사항만을 다룹니다. 4.2와 비교하여 Godot 4.3에서 무엇이 새로워졌는지에 대한 더 포괄적인 개요를 확인하려면, 첫 번째 베타 릴리스를 기다리거나 당사의 대화형 변경 로그 (interactive changelog)를 참조해야 합니다.

2D 물리 보간 (2D physics interpolation)

고정 타임스텝 (Fixed timestep), 즉 물리 보간 (physics interpolation) 기능이 2D에 구현되었습니다 (GH-88424). 이는 작년에 Godot 3.6용으로 병합된 버전에서 포워드 포트 (forward-ported)된 것입니다 (GH-76252).

이는 2D 게임에서 위치/카메라가 떨리는 현상 (jitter)을 해결하는 데 도움이 될 것이며, 4.3 dev 4 스냅샷에서 이루어진 픽셀 아트 (pixel-art) 중심의 변경 사항들을 보완할 것입니다.

노드로서의 TileMap 레이어 (TileMap layers as nodes)

이제 TileMap 레이어가 개별적인 TileMapLayer 노드로 노출됩니다 (GH-89179). 이는 인스펙터 (inspector)의 복잡도를 줄이고, 더 단순한 API를 제공하며, 일반적인 Godot 디자인 패턴과도 더 일치함을 의미합니다.

이러한 변경으로 인해 발생할 수 있는 작은 단점들을 피하기 위해, 우리는 새로운 에디터 기능들을 추가했습니다. 예를 들어, 현재 편집 중인 씬 (scene)의 모든 레이어를 선택할 수 있는 기능 등이 있습니다. TileMap 노드 자체는 사용 중단 예정 (deprecated)으로 표시되었지만, 당분간은 유지될 것입니다 (단, 새로운 기능은 추가되지 않습니다).

전환을 돕기 위해, 에디터의 드롭다운 메뉴 항목을 통해 TileMap 노드를 일련의 TileMapLayer 노드 세트로 자동 변환할 수 있습니다. 스크립트를 업데이트해야 하겠지만, 걱정하지 마세요. API가 매우 유사합니다.

base64 인코딩으로 저장되는 PackedByteArrays

Godot의 텍스트 기반 씬/리소스 포맷 (tscn / tres)에서 흔히 겪는 불편함 중 하나는 PackedByteArray 속성의 직렬화 (serialization)가 너무 많은 공간을 차지하여 파일 크기가 커지고, 디프 (diff) 결과가 지저분해진다는 점입니다. 이를 해결하기 위해, PackedByteArrays의 직렬화 방식이 base64 인코딩을 사용하도록 변경되었습니다. 이는 특히 더 큰 배열의 경우 훨씬 더 압축적입니다 (GH-89186).

하지만 이 변경 사항은 이전 Godot 릴리스(releases)에서는 파싱(parsing)할 수 없는 방식으로 씬(scene) 형식이 변경되었음을 의미합니다. 이러한 전환을 완화하기 위해, Godot 4.3은 PackedByteArray를 포함하는 경우에만 이 새로운 형식을 사용하여 씬과 리소스를 저장하도록 만들었습니다 (GH-90889). 또한, 사용자가 필요할 경우 해당 버전들로 롤백(roll back)할 수 있도록, 곧 출시될 Godot 4.2.3 및 4.1.5 릴리스에 새로운 형식을 파싱하는 지원 기능을 백포트(backporting)하고 있습니다 (GH-91250).

마지막으로, 각 Godot 마이너 버전(minor version)에 특화되도록 에디터 설정(Editor Settings) 설정 파일의 이름도 변경했습니다 (GH-90875). 이를 통해 약간 호환되지 않는 Godot 브랜치(branches) 사이를 오갈 때 설정이 손실되는 것을 방지할 수 있습니다. 새로운 Godot 마이너 브랜치(예: 4.3)를 처음 사용하는 경우 이전 버전(예: 4.2)에서 설정을 가져오지만, 그 이후부터는 두 설정 파일이 분리되어 유지됩니다.

엔진 업데이트 자동 확인

드디어 프로젝트 매니저(project manager)에 새로운 Godot 버전을 확인하는, 오랫동안 요청되어 온 기능을 구현했습니다 (GH-75916). 이는 이번과 같은 프리릴리스(pre-release) 버전을 테스트할 때 beta 1이나 향후 릴리스가 게시되면 알림을 받을 수 있어 편리할 뿐만 아니라, 안정적인 브랜치(stable branches)의 새로운 유지보수 또는 기능 릴리스를 확인하는 데에도 유용합니다.

사용자의 개인정보 보호를 위해 이 기능은 기본적으로 활성화되어 있지 않지만, 프로젝트 매니저 설정에서 “Online” 네트워크 모드를 활성화하여 쉽게 전환할 수 있습니다.

깊이 버퍼(depth buffer)를 위한 Reverse Z

광범위한 논의 끝에, 렌더링 팀은 일반적인 Reverse Z 깊이 버퍼(depth buffer) 기술을 Godot에 구현하기로 결정했습니다. 이는 4.0 버전까지는 완료할 수 없었으며, 지금 구현하는 것은 셰이더(shaders)의 호환성 파괴(compatibility breakage)를 의미하지만, 팀은 이 변경 사항의 영향을 정말로 제한하기 위한 조치를 취했습니다. 대부분의 셰이더와 3D 씬은 영향을 받지 않아야 하지만, 일부 특정 시나리오에서는 약간의 수정이 필요할 것입니다.

변경 사항에 대한 자세한 내용과 영향을 받는 셰이더에서 호환성 파괴를 처리하는 방법은 이 블로그 포스트를 참조하십시오.

그리고 더 많은 내용들!

  • 애니메이션 (Animation): Skeleton3D를 수정할 수 있는 노드들을 위한 리팩토링(refactoring)으로서 베이스 클래스인 SkeletonModifier3D를 구현함 (GH-87888).
  • 오디오 (Audio): 오디오 리미터 효과의 재작업으로서 AudioEffectHardLimiter를 추가함 (GH-89088).
  • 코어 (Core): 바이너리 직렬화 (binary serialization)를 위한 타입 지정 배열 (typed array) 지원을 추가함 (GH-78219).
  • 코어 (Core): OS 종료 코드가 기본적으로 EXIT_SUCCESS가 되도록 리팩토링함 (GH-89229).
  • 코어 (Core): 서버 스레드 (Server threads)에 WorkerThreadPool을 사용함 (GH-90268).
  • C#: 변수를 캡처하는 델리게이트 (delegates)의 직렬화 (serialization) 문제를 수정함 (GH-83217).
  • C#: 내보내기 (exporting) 중 솔루션 파일이 누락된 경우 예외 (exception)를 발생시킴 (GH-87829).
  • C#: Variant 문자열에 InvariantCulture를 구현함 (GH-89547).
  • C#: ArrayDictionary를 위한 DebugView를 추가함 (GH-90060).
  • C#: C# 타입 리로딩 (reloading) 시 연산 순서를 변경함 (GH-90837).
  • 에디터 (Editor): 독 (docks)을 닫거나 열 수 있도록 허용함 (GH-89017).
  • GDExtension: PDB 파일이 차단되는 것을 방지하기 위해 PDB 파일 이름 변경 기능을 추가함 (GH-87117).
  • GDScript: 글로벌 스크립트를 이름 변경/이동/삭제할 때 발생하는 오류를 수정함 (GH-90186).
  • GUI: GraphFrame을 구현하고 이를 VisualShader에 통합함 (GH-88014).
  • GUI: TabBarTabContainer에 텍스트 툴팁 (text tooltip)을 추가함 (GH-89247).
  • 임포트 (Import): 고급 임포트 설정 (Advanced Import Settings) 대화 상자의 환경 설정을 조정함 (GH-75787).
  • 임포트 (Import): 3D 고급 임포트 설정에 보조 광원 (secondary light)을 추가함 (GH-76140).
  • 네비게이션 (Navigation): 2D 네비게이션 메쉬 베이킹 (navigation mesh baking) 시 모든 TileMapLayers를 파싱하도록 수정함 (GH-85856).
  • 네비게이션 (Navigation): AStar에 부분 경로 반환 (partial path return) 옵션을 추가함 (GH-88047).
  • 네비게이션 (Navigation): 2D 네비게이션 메쉬 베이킹 시 부동 소수점 좌표 (floating point coordinates)를 사용하도록 변경함 (GH-89929).
  • 네비게이션 (Navigation): 네비게이션 경로 단순화 (navigation path simplification) 기능을 추가함 (GH-90434).
  • 네비게이션 (Navigation): 네비게이션 메쉬 소스 지오메트리 (navigation mesh source geometry) 파서 및 콜백 (callbacks)을 추가함 (GH-90876).
  • 파티클 (Particles): Adreno 3XX 장치의 호환성 렌더링 (Compatibility Rendering, GLES3) 환경에서 CPU/GPUParticles2D 버그를 수정함 (GH-88816).
  • 물리 (Physics): 이미지 데이터를 사용한 HeightMapShape3D 업데이트를 추가함 (GH-87889).
  • 물리 (Physics): move_and_slide

벽 미끄러짐 가속도 (3D) (GH-90915). - 포팅 (Porting): 실행된 프로세스의 IO 리다이렉션(redirection)을 위한 파이프 API 구현 (GH-89206).

  • 렌더링 (Rendering): 블렌드 셰이프 믹스 (blend shape mix)로부터 메시를 베이크 (bake) 하는 옵션 추가 (GH-76725).
  • 렌더링 (Rendering): 호환성 렌더러 (Compatibility renderer)에 리플렉션 프로브 (reflection probe) 지원 추가 (GH-88056).
  • 렌더링 (Rendering): 성능 향상을 위해 옴니 라이트 (omni lights)의 섀도우 페이드 (Shadow fade) 적용 시 페이드 아웃되는 동안 실제로 섀도우 업데이트를 중단함 (GH-89729).
  • 렌더링 (Rendering): 픽셀이 라이트 경계 사각형 (light bounding rectangle) 밖에 있을 때 라이트 계산을 조기에 종료 (GH-90920).
  • 렌더링 (Rendering): 프래그먼트 셰이더 (fragment shader)에 LIGHT_VERTEX 추가 (GH-91136).
  • 렌더링 (Rendering): 호환성 렌더러 (Compatibility renderer)에 조정 및 색상 교정 (color correction) 추가 (GH-91176).
  • 셰이더 (Shaders): 인스펙터 (inspector) 내 셰이더 유니폼 (shader uniform)에 대한 문서화 주석 및 툴팁 구현 (GH-90161).
  • XR: 공통 조상을 갖도록 XR 트래커 (XR Trackers) 재설계 (GH-90645).
  • 제3자 라이브러리 (Thirdparty): Embree 4.3.1, HarfBuzz 8.4.0, libktx 4.3.2, MbedTLS 3.6.0, ThorVG 0.12.10, zstd 1.5.6.

변경 사항 (Changelog)

179명의 기여자가 이번 릴리스를 위해 650개의 개선 사항을 제출했습니다. 이전 4.3-dev5 스냅샷 이후의 모든 변경 사항 목록은 **대화형 변경 사항 목록 (interactive changelog)**을 확인하세요. 또한 이전 4.2 기능 릴리스와 비교하여 4.3에 포함된 모든 변경 사항을 검토할 수 있습니다.

이 릴리스는 커밋 64520fe67을 기반으로 빌드되었습니다.

다운로드 (Downloads)

**표준 빌드 (Standard build)**는 GDScript 및 GDExtension 지원을 포함합니다.

.NET 빌드 (mono로 표시됨)는 C#뿐만 아니라 GDScript 및 GDExtension 지원을 포함합니다.

  • .NET 빌드는 표준 위치에 설치된 .NET SDK 6.0 이상(.NET 8.0 권장)이 필요합니다.
  • Android로 내보내기(export)하려면 .NET 7.0 이상이 필요합니다. iOS로 내보내려면 .NET 8.0이 필요합니다.

엔진 유지 관리자들이 각 프리뷰 스냅샷과 릴리스 후보(release candidate)가 안정적이도록 최선을 다하고 있지만, 이는 정의상 **사전 출시 소프트웨어 (pre-release piece of software)**입니다. 파일 손상이나 데이터 손실에 대비하여 프로젝트를 보존할 수 있도록 자주 백업을 하거나 Git과 같은 버전 관리 시스템을 사용하십시오.

알려진 문제 (Known issues)

현재 이 릴리스(release)로 인해 발생한 알려진 문제는 없습니다.

모든 릴리스에는 이미 보고되었으나 아직 수정되지 않은 다양한 문제들이 발생할 수 있음을 인지하고 있습니다. 알려진 버그(bug)의 전체 목록은 GitHub 이슈 트래커(issue tracker)를 확인해 주세요.

버그 보고 (Bug reports)

테스터로서, 이번 릴리스에서 문제를 경험하신다면 버그 보고(bug report)를 작성해 주시기를 권장합니다. 먼저 GitHub에서 관련 키워드로 검색 기능을 사용하여, 경험하신 버그가 이미 알려진 것은 아닌지 기존 이슈들을 확인해 주시기 바랍니다.

특히, 프로젝트에 회귀(regression)를 일으키는 모든 변경 사항은 보고하는 것이 매우 중요합니다 (예: 이전 4.x 릴리스에서는 잘 작동했으나, 이번 스냅샷(snapshot)에서는 더 이상 작동하지 않는 경우).

지원 (Support)

Godot은 수백 명의 기여자들이 자유 시간에 개발하고, Godot 커뮤니티의 관대한 기부 덕분에 고용된 소수의 파트타임 또는 풀타임 개발자들이 함께 만들어가는 비영리 오픈 소스 (open source) 게임 엔진입니다. 프로젝트에 시간이나 재정적 지원을 아끼지 않으신 모든 분께 깊은 감사를 드립니다!

프로젝트를 재정적으로 지원하고 향후 개발 인력 채용을 돕고 싶으시다면, Godot Foundation에서 관리하는 Godot Development Fund 플랫폼을 통해 참여하실 수 있습니다. 또한, 귀하에게 더 적합할 수 있는 여러 가지 대안적인 기부 방법들도 마련되어 있습니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0