开发快照:Godot 4.5 dev 2

开发快照:Godot 4.5 dev 2

沫萝ㅤ

2025-04-11 发布88 浏览 · 2 点赞 · 0 收藏

dev-snapshot-godot-4-5-dev-2.webp

距离4.4版本发布仅有一个多月,有人或许会认为4.5版本的首个快照只会挤一挤牙膏?好吧,大概在看到4.5 dev 1快照后,这种预期就已经被打破。但至少后续更新不会再有如此猛烈的功能冲击吧?

天真的朋友们啊,你们又一次低估了Godot 社区的澎湃热情——本次快照已准备了250项改进。更重要的是,与上次不同,我们不再局限于修复漏洞为主。属于本开发周期的专属功能强化与全新特性终于到来,我将竭尽所能为您解读这些亮点。一如往常:新功能总会伴随新问题(大概率),因此越早收集反馈和错误报告,我们就能越及时修复。

封面插图来自《财富大道》(Fortune Avenue),这是一款在混乱棋盘世界中精明算计朋友的资本主义模拟器,由Binogure Studio开发。您可在Steam平台添加愿望单,并通过Bluesky关注开发者。

核心亮点

若您错过先前版本,请查阅4.5 dev 1的发布说明,了解该快照中已包含的重要功能(这些功能在dev 2中仍可供测试)。

独立的2D导航服务器(navigation server)

长期以来,导航服务器始终是统一的存在。3D与2D如同阴阳两面,本为一体。虽然这种哲学理念颇具美感,甚至能谱写动人剧本,但对2D开发者而言却是个苦涩的交易。以往制作2D游戏时若想使用导航功能,就不得不被强制捆绑一堆永远用不上的3D设置和功能,徒增输出体积。

在4.5开发周期伊始,导航专家smix8主导了导航逻辑的模块化重组工作,而实现这一切的基础正是导航服务器的彻底拆分。社区长期贡献者AThousandShips接过了这项重任,并通过GH-101504成功实现目标。今后用户将能按需启用/禁用2D或3D导航模块,不再受制于"全有或全无"的困境。

重构着色器编辑器UI

Yuri Rubinsky主导的GH-100287为着色器和可视化着色器的编辑器体验带来了多项优化与用户呼声已久的功能升级。下图直接取自该PR的预览画面,您可在本次快照中亲身体验这些改进。

image

实时切换编辑器语言

Godot内置多语言支持功能,既适用于您开发的游戏,也适用于编辑器本身。但与游戏运行时不同,编辑器此前无法实时切换界面语言。编辑器专家Tomasz Chabora通过GH-102562解决了这个问题,现在用户无需重启即可在编辑器中即时切换语言!虽然实际使用场景较为特殊,但我们始终重视便捷性与可访问性,打造无缝流畅的编辑器体验正是我们追求的目标。

片段密度映射支持(Fragment density map)

在VR头显渲染时,视口外围像素的重要性较低——它们会被镜头畸变影响,且玩家更倾向转动头部而非过度偏移视线焦点。

Godot此前已支持通过Vulkan"片段着色率"(Fragment Shading Rate)扩展降低外围区域渲染分辨率,在画质损失轻微的前提下提升性能。但在Meta Quest等独立VR设备上,该扩展要么不受支持,要么性能提升效果不如Vulkan"片段密度映射"(Fragment Density Map)扩展。

渲染专家DarioSamo在GH-99551中实现了"片段密度映射"扩展支持,使Vulkan Mobile渲染器在独立头显的VR开发中更具实用价值。

Wayland原生子窗口支持

得益于Riteo的不懈努力,X11的替代方案Wayland在Godot中获得了原生级支持。要追赶主流显示服务器协议的征程虽长,但每个PR都在缩短差距。此前部分用户因缺乏原生子窗口支持而犹豫切换,而GH-101774成功跨越了这道门槛,实现了Wayland下嵌入式游戏窗口的原生支持:

image

更多精彩

限于篇幅无法尽述所有更新,以下是部分亮点:

• 2D:优化VisibleOnScreenNotifier2D的易用性(GH-100874)
• 3D:允许自定义Path3D的调试颜色(GH-82321)
• 动画:为_process_modification()添加delta参数(以_process_modification_with_delta(delta)形式),并开放Skeleton3D的advance()方法(GH-103639)
• 动画:为动画贝塞尔曲线编辑器添加选区移动/缩放功能(GH-100470)
• 核心:通过假设无虚继承和多继承优化Object::cast_to,性能较dynamic_cast提升7倍(GH-103708)
• 编辑器:在文件提示信息中显示UID(GH-105069)
• 编辑器:优化无查询条件下的快速打开对话框行为(GH-104061)
• 编辑器:移除EditorResourcePicker的"New"前缀(GH-104604)
• 导出:改进Android预构建导出逻辑(GH-103173)
• GDScript:解析无效super调用时提前返回(GH-104509)
• GUI:优化Popup的content_scale_factor处理(GH-104399)
• GUI:通过ubrk_clone替代ubrk_open加速启动(GH-104455)
• GUI:在拖拽至编辑器属性面板边缘时自动滚动(GH-103943)
• 导入:当无支持格式时加载可解压缩的纹理格式(GH-104590)
• 导航:允许编译不含导航功能的模板(GH-104811)
• 物理:允许编译不含物理服务器的模板(GH-103373)
• 物理:Jolt物理引擎升级至5.3.0(GH-104449)
• 移植:Android:新增编辑器设置控制触控操作面板开关(GH-105015)
• 移植:Android:支持游戏静音开关(GH-104409)
• 移植:Android:自动创建.nomedia文件隐藏项目文件(GH-104970)
• 移植:Linux:检测KDE/LXQt环境并切换OK/Cancel按钮布局(GH-104959)
• 移植:macOS:用[NSApp run]和CFRunLoop观察者替代自定义主循环(GH-104397)
• 移植:macOS:支持更多macOS 11+控制器(GH-104619)
• 渲染:在RD渲染器中避免使用全局变量存储CanvasItem着色器的实例索引(GH-105037)
• XR:默认停用CameraServer(GH-104232)
• XR:OpenXR:通过移除多重继承清理OpenXRExtensionWrapper,弃用OpenXRExtensionWrapperExtension(GH-104087)

您也可以关注Godot Hub的Godot PR日报栏目,获取更及时的Godot引擎改进内容。

请前往 登录/注册 即可发表您的看法…