본문으로 건너뛰기

© 2026 Molayo

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

Godot 3.6 출시

요약

Godot 엔진의 3.6 버전이 2년간의 개발 끝에 정식 출시되었습니다. 이번 업데이트는 4.x 버전 개발 중에도 3.x 브랜치의 안정성과 저사양 하드웨어 지원을 위해 진행되었으며, 2D 물리 보간, 3D 메시 병합, LOD 등 다양한 성능 개선 기능이 포함되었습니다.

핵심 포인트

  • 2D 물리 보간(physics interpolation) 및 계층적 컬링 기능 추가
  • 3D 메시 병합, LOD, 정교해진 그림자 컬링 등 그래픽 최적화 기능 도입
  • 기존 3.5.x 프로젝트와 호환되며 하위 호환성을 최우선으로 고려한 안정적인 업데이트
  • 저사양 하드웨어 개발에 최적화된 성숙한 코드베이스 제공

2년간의 개발 끝에, 드디어 Godot 3.6이 출시되었습니다! 이번 버전은 다양한 기능과 편의성 개선(Quality of Life improvements) 사항들로 가득 채워져 있습니다! 여기에는 2D 물리 보간(2D physics interpolation) 및 계층적 컬링(hierarchical culling), 그리고 3D 메시 병합(3D mesh merging), LOD(level of detail), 더욱 정교해진 그림자 컬링(shadow culling), ORM 재질(ORM materials) 등이 포함됩니다.

현재 대부분의 개발 초점은 4.x 릴리스에 맞춰져 있지만, 열성적인 개발자들은 버그 수정, 최적화 및 신뢰성 향상, 편의성 개선 제공, 그리고 새로운 기능 추가를 통해 3.x 브랜치를 개선하는 데 매진해 왔습니다.

기존 3.x 게임에 대한 지원을 제공할 뿐만 아니라, Godot 3는 저사양 하드웨어 개발에 적합한 성숙하고 안정적인 코드베이스(codebase)로 발전했습니다. 개발의 중점은 하위 호환성(backward compatibility)에 있습니다. 모든 새로운 기능은 선택 사항이며, 저희는 기존 기능을 깨뜨리거나 변경하지 않도록 노력하고 있습니다.

Godot 3.6은 Godot 3.5.x 프로젝트와 호환되며, 모든 3.5.x 사용자에게 권장되는 업그레이드 버전입니다.

Godot 3.6의 가장 흥미로운 추가 사항에 대해 알아보려면 계속 읽어주시고, 아래 링크를 클릭하여 엔진을 다운로드하고 바로 시작해 보세요!

Rémi Verschelde(프로젝트 메인테이너)의 개인적인 노트: 저는 4.0이 아직 개발 중일 때 3.6 작업을 시작했지만, 그렇게 많은 브랜치를 병렬로 유지 관리하는 것이 상당히 어렵다는 것을 깨달았습니다. 다행히 lawnjelly가 3.6의 릴리스 관리 작업을 맡겠다고 자원하여 성공적으로 마무리해 주었습니다. 그와 4.x에서 3.6으로 수많은 체리픽(cherry-picks)을 수행해 준 timothyqiu에게 찬사를 보냅니다.

사실, 이번 릴리스의 대부분의 큰 새로운 기능들은 lawnjelly가 직접 개발했지만, 그는 너무 겸손하여 스스로를 드러내지 않습니다. 그래서 저는 그의 블로그 포스트에 몰래 이 노트를 끼워 넣어 그를 대신해 칭찬하고자 합니다 ;)

환원 (Giving back)

커뮤니티 프로젝트로서, Godot는 자원봉사자들의 노력으로 유지됩니다. 사용자 및 기업의 기부 덕분에 저희는 다수의 핵심 기여자(core contributors)를 고용하고 후원하여, 그들이 풀타임으로 근무하며 프로젝트의 요구 사항에 온전히 집중할 수 있도록 할 수 있습니다.

여건이 되신다면 정기적인 월간 기부를 통해 프로젝트를 재정적으로 지원하는 것을 고려해 주세요. Godot는 매달 지속적으로 성장하고 있으며, 우리는 모든 수준의 게임 개발자들이 창의적인 작업을 원활히 수행할 수 있도록 가능한 한 자주 신뢰할 수 있고 기능이 풍부한 릴리스 (releases)를 제공하기 위해 최선을 다하고 있습니다. 정기적인 기부는 프로젝트의 지속 가능성을 보장하며, 향후 몇 년간의 개발 계획을 세울 수 있게 해줍니다.

재정적 지원 외에도 다음과 같은 방법으로 기여할 수 있습니다: 상세한 버그 리포트 (bug reports) 작성, 코드 베이스 (code base) 기여, 문서 (documentation) 작성, 가이드 작성 (Godot 문서 또는 개인 웹사이트), 그리고 다양한 커뮤니티 플랫폼에서 질문에 답하거나 유용한 팁을 제공함으로써 다른 사람들을 지원하는 것입니다.

마지막으로, Godot로 게임을 만들고 엔진의 출처를 밝히는 것은 Godot를 더 대중화하고, 더 많은 사람이 모두를 위해 Godot에 기여하고 개선하도록 설득하는 데 큰 도움이 됩니다. 기억하세요, 우리는 모두 함께하고 있으며 Godot가 번창하기 위해서는 모든 분야에서 커뮤니티의 지원이 필요합니다.

주요 특징 (Highlights)

Godot 3.6에는 작고 큰 많은 새로운 기능들이 추가되었습니다. 다음은 우리가 기대하고 있는 몇 가지 주요 기능들의 목록이며, 특별한 순서는 없습니다. 모든 변경 사항에 대한 전체 목록은 우리의 큐레이션된 변경 로그 (curated changelog) 또는 Git의 원본 변경 로그 (chronological, 또는 작성자별 정렬)를 통해 확인할 수 있습니다.

2D 물리 보간 (2D physics interpolation) (GH-76252)

Godot 3.5에서 3D 물리 보간 (3D physics interpolation)을 성공적으로 도입한 이후, 사용자들은 그에 상응하는 2D 기능을 기다려 왔으며, 드디어 출시되었습니다! 2D 물리 보간은 CPUParticles2D를 포함한 대부분의 오브젝트를 지원하지만, (GPU) Particles2D는 아직 지원되지 않음에 유의하세요.

시작하기 전에 반드시 물리 보간 문서를 읽어보시기 바랍니다. 물리 보간은 기본적으로 비활성화되어 있으므로, 프로젝트 설정 (project settings)을 통해 활성화하는 방법은 문서를 참조하세요.

2D 계층적 컬링 (2D hierarchical culling) (GH-68738)

화면 밖에 있는 2D 아이템들은 그려질 필요가 없습니다. 이전에는 각 아이템이 화면 밖에 있는지 개별적으로 확인했습니다 (이를 "컬링 (culling)"이라고 합니다). 계층적 컬링 (hierarchical culling)을 사용하면 씬 트리 (scene tree)의 전체 브랜치를 한 번에 컬링할 수 있으며, 이는 화면 밖에 있는 아이템이 많은 대규모 2D 맵에서 성능을 크게 향상시킬 수 있습니다.

계층적 컬링은 기본적으로 활성화되어 있지만, 회귀 (regressions)가 발생하는 경우 프로젝트 설정인 rendering/2d/options/culling_mode를 통해 기존 ("Item") 모드로 되돌릴 수 있습니다.

더 정밀한 그림자 컬링 (Tighter shadow culling) (GH-84745)

Godot의 그림자 매핑 (shadow mapping)은 객체가 그림자를 생성하는 광원 볼륨 (light volume) 내에서 움직일 때, 각 광원의 시점에서 단순화된 카메라 샷을 촬영하는 과정을 포함합니다. 객체가 움직일 때 매 프레임마다 이 작업이 발생하며, 이는 각 광원마다 많은 드로우 콜 (draw calls)을 추가할 수 있습니다.

더 정밀한 그림자 컬링 (Tighter shadow culling)은 메인 카메라 뷰에서 보이지 않는 그림자를 생성하는 그림자 생성자 (shadow casters)에 대한 드로우 콜을 제거함으로써 이 작업 부하를 상당히 줄여줍니다. 여기에는 영리한 기하학적 (geometry) 기법이 포함되지만, 결과적으로 그림자를 사용할 때 프레임 레이트 (frame rates)가 눈에 띄게 향상되는 것을 자주 확인할 수 있을 것입니다.

이 기능은 자동으로 적용됩니다.

메시 병합 (Mesh merging) (GH-61568)

Godot 3.6은 이제 디자인 타임 (design time)과 런타임 (runtime) 모두에서 메시 병합 (mesh merging)을 위한 포괄적인 시스템을 제공합니다. OpenGL은 많은 객체를 그릴 때 드로우 콜 (draw calls)과 상태 변경 (state changes)으로 인해 심각한 병목 현상이 발생할 수 있습니다. 이제 이러한 장벽을 돌파하여 잠재적으로 수많은 유사한 객체를 단일 드로우 콜로 렌더링할 수 있습니다.

기존 맵과 움직이는 객체를 최적화할 수 있게 해줄 뿐만 아니라, 수천 개의 절차적으로 배치된 객체(식생, 바위, 가구, 집 등)를 런타임에 병합하여 효율적으로 렌더링할 수 있으므로 새로운 절차적 (procedural) 게임 유형도 가능해집니다.

자세한 내용은 MergeGroups 문서를 참조하세요.

이산적 LOD (Discrete level of detail (LOD)) (GH-85437)

새로운 LOD 노드는 단순하지만 강력한 LOD (Level of Detail) 기능을 제공하여, 엔진이 카메라와의 거리에 따라 오브젝트의 시각적 표현을 자동으로 변경할 수 있게 합니다. 예를 들어, 오픈 월드 게임에서 멀리 있는 나무의 디테일을 단순화하는 작업이 이에 해당합니다.

이번 LOD 구현 방식은 Godot 3의 아키텍처에 더 적합한 다른 구현 방식을 선택했기 때문에, Godot 4의 LOD 구현 방식과는 크게 다릅니다. 특히, GeometryInstances에서 LOD 설정을 제거하는 대신, 자식 노드들의 LOD 동작을 제어하는 LOD 노드를 제공합니다.

자세한 내용은 LOD 문서를 참조하세요.

ORM 재질 (ORM materials) (GH-76023)

Ansraer가 ORM 재질 지원을 추가했습니다. 이는 Occlusion(차폐), Roughness(거칠기), Metallic(금속성)을 하나의 텍스처로 결합한 표준 형식입니다. 이는 이러한 표준 PBR (Physically Based Rendering) 텍스처를 수정 없이 사용할 수 있음을 의미하며, 사용 시 (이전 워크플로우와 비교하여) 렌더링 성능이 향상될 가능성이 높습니다.

정점 캐시 최적화 (Vertex cache optimization) (GH-86339)

메시 임포트 옵션(예: obj, gltf, dae)에서 기본적으로 활성화되는 정점 캐시 최적화(Vertex cache optimization)를 위한 새로운 설정을 찾을 수 있습니다. 이는 저사양 하드웨어에서 폴리곤 수가 많은 모델의 렌더링 성능을 향상시킬 수 있습니다.

이미 완료된 프로젝트에서도 숨겨진 .godot 폴더(임포트된 데이터가 포함됨)를 삭제하기만 하면 일반적으로 정점 캐시 최적화의 이점을 얻을 수 있으며, 에디터를 다시 열 때 이 임포트된 데이터(최적화된 메시 포함)가 다시 생성됩니다.

라이트 프로브 및 방향성 그림자 성능 개선

여러 버그 수정 사항과 더불어, BakedLightmap 라이트 프로브 (GH-80764, mrezai 작성) 및 방향성 그림자 (GH-75468, Ansraer 작성)에 대한 몇 가지 성능 개선 사항이 추가되었습니다.

선택된 메시 통계 보기 (View selected mesh stats) (GH-88207)

3D 뷰 메뉴에 이제 (오랫동안 기다려온) 새로운 옵션인 “View Selected Mesh Stats”가 제공됩니다. 이 옵션은 선택된 메시(및 멀티메시)에 대한 총 삼각형(Triangle), 정점(Vertex), 인덱스(Index) 개수를 표시합니다.

이 정보는 성능을 진단하고 가져온 메시(Mesh)를 확인하거나, 메시 병합(Mesh merging) 및 LOD (Level of Detail)와 함께 사용하기에 매우 유용한 정보입니다.

SceneTree 도크의 필터 개선 사항 (GH-67347)

Mickeon은 4.x 브랜치에서 가져온 여러 SceneTree 도크 개선 사항을 백포트(Backport)했습니다. 이제 검색/필터 바에서 여러 용어를 지원하며, type: (또는 t:) 및 group: (또는 g:) 접두사를 사용하여 노드 유형(Node type)이나 그룹(Group)별로 필터링할 수 있습니다.

TTS (Text-to-Speech) 지원 (GH-61316)

bruvzg는 원래 Godot 4.0을 위해 개발했던 TTS (Text-to-Speech) 구현을 백포트했습니다. 이는 코어 시스템 API를 사용하여 모든 Godot 플랫폼에서 지원됩니다 (speech-dispatcher 라이브러리 설치가 필요한 Linux 제외).

대상 플랫폼에서 기능을 테스트할 수 있도록 GH-61316에 데모가 포함되어 있습니다.

Calinou는 에디터 설정(Editor Settings)을 문서화하는 기능을 추가하였으며, 공개된 모든 설정에 대한 문서를 작성했습니다. 이는 특히 설정에 마우스를 올렸을 때 유용한 툴팁(Tooltip)을 추가하여, 해당 설정이 무엇에 영향을 미치는지와 가능한 값들이 무엇을 의미하는지를 더 잘 설명해 줍니다.

공식 빌드를 위한 툴체인(Toolchains) 업데이트

이번 릴리스에서는 Godot 4.2에서 사용되는 버전과 일치하도록 툴체인(컴파일러, 플랫폼 SDK 등)을 업데이트했습니다 (build-containers#135). 구체적으로 다음과 같은 툴체인을 제공합니다:

  • 베이스 이미지 (Base image): Fedora 39
  • Mono 버전: 6.12.0.198
  • SCons: 4.5.2
  • Linux: 자체 Linux SDK를 사용하여 glibc 2.28, binutils 2.40 기반으로 빌드된 GCC 13.2.0
  • Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40
  • HTML5: Emscripten 3.1.39 (표준 빌드), Emscripten 1.39.9 (Mono 빌드)
  • Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 11
  • macOS: Apple Clang (LLVM 16.0.0)이 포함된 Xcode 15.0, MacOSX SDK 14.0
  • iOS: Apple Clang (LLVM 16.0.0)이 포함된 Xcode 15.0, iPhoneOS SDK 17.0
  • UWP: Visual Studio 2017 (변경 없음)

실제로 이는 새로운 툴체인 (toolchain) 버전 덕분에 더 나은 컴파일 및 링크 시간 최적화 (compile and linking-time optimizations)를 얻을 수 있어 잠재적인 크기 또는 성능 향상으로 이어질 수 있다는 점을 제외하면 큰 변화는 없을 것입니다. 그리고 우리의 빌드에 영향을 미칠 수도 있고 그렇지 않을 수도 있는 몇 가지 버그 수정이 포함되었습니다.

공식 Linux ARM 빌드

Godot 4.2에서 추가된 것과 마찬가지로, 이제 Godot 3.6의 공식 Linux ARM 빌드(arm32arm64)가 제공됩니다. 이를 통해 ARM 장치(Raspberry Pi 등) 및 Linux 서브시스템이 있는 Chromebook에서 Godot 에디터를 실행할 수 있을 뿐만 아니라, Godot 프로젝트를 해당 장치로 내보내기 (export) 할 수도 있습니다. 이제 Linux 내보내기 템플릿 (export template)에서 3.6에서 지원하는 네 가지 옵션인 x86_64 (기본값), x86_32, arm64, arm32 중에서 내보내기 시 아키텍처를 선택할 수 있습니다.

Android, iOS 및 macOS 지원 버전 업데이트

Android의 타겟 버전이 SDK 34 (Android 14)로 업데이트되었습니다. 이는 또한 내보내기에 사용되는 Java 버전을 Java 17로 변경해야 함을 의미합니다 (이전에는 11 사용). Java SDK의 경로는 에디터 설정 (Editor Settings)에서 구성할 수 있습니다.

현재 Apple SDK와의 호환성을 보장하기 위해, 최소 지원 버전을 iOS 10에서 iOS 12로 (GH-87359), 그리고 x86_64의 경우 macOS 10.12에서 macOS 10.13으로 (GH-76394) 상향 조정해야 했습니다.

기타 주목할 만한 변경 사항

2D

  • 오토타일 (autotiles)이 가장 유사한 비트마스크 (bitmask)로 대체되도록 수정 (GH-71533).
  • AnimatedSprite 노멀 맵 (normal map) 로딩 수정 (GH-80406).
  • 물리 보간 (physics interpolation) 시 뷰포트 (viewport) 동작 수정 (GH-92152).

3D

  • 클릭 해제 후 OccluderPolyShape 핸들이 사라지는 문제 수정 (GH-79947).
  • 머티리얼 에디터 (material editor) 미리보기에 회전 기능 추가 (GH-49466).
  • TorusMesh 추가 (GH-64044).
  • Camera3D 기즈모 (gizmo)를 클릭할 수 있도록 수정 (GH-68003).
  • SurfaceTool: 효율성 개선 (GH-69723).

Audio

  • 텍스트 음성 변환 (text-to-speech) 지원 백포트 (GH-61316).
  • 팬닝 강도 (panning strength) 파라미터 백포트 (GH-64579).
  • WAV 임포트 시 트리밍 (trim) 수정 (GH-78048).
  • PulseAudio: get_latency() 캐싱 제거 (GH-80294).

C#

  • 플래그 (flag) 속성에서 명시적 값 지원 및 C# 플래그 (flags) 지원 추가 (GH-59328).
  • MethodBind 호출 실패 시 에러 출력 (GH-79433).

Core

  • 부트 스플래시 (boot splash) 최소 표시 시간 설정 추가 (GH-41833).
  • HDR 색상을 저장할 수 있도록 GradientTexture에 use_hdr 속성 추가 (GH-48372).
  • no-cache 인자가 사용될 때 중첩된 리소스 (nested resources)가 캐싱되는 문제 수정 (GH-62408).
  • 더 빠른 queue free (GH-62444).
  • String.repeat() 최적화 (GH-64995).
  • VariantParser에 선택적 리드어헤드 (readahead) 추가 (GH-65079, GH-69963).
  • 배열에서 무작위 값을 선택하는 기능 추가 (GH-67444).
  • Color를 위한 Color + alpha 생성자 추가 (GH-74973).
  • MessageQueue를 확장 가능하게(growable) 변경 (GH-75527).
  • 일부 멀티스레딩 (multi-threading) 유용한 기능들을 백포트 (backport) (GH-72251).
  • Transform2D에서 determinant 노출 (GH-76323).
  • MessageQueue: 최대 사용량 성능 통계 수정 (GH-76533).
  • BitMap.opaque_to_polygons의 크기 오류 수정

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0