Godot 离开发 3A 游戏还有多远?


Godot 4.0 即将正式发布,据称此版本在功能、性能和可用性方面都包含全面的重大改进。不过社区目前面临着一个大问题:Godot 与主流商业产品相比有多大差距

4.0 作为重大版本更新,其开发工作于 2020 年启动,在两年多的开发过程中,Godot 4.0 带来的新特性包括:支持 Vulkan API、改进图形渲染系统和核心引擎、改进 OpenGL、添加新的 Physics 特性、增强 GDScript 脚本、更好地支持音频、改进多人游戏模式,以及对 Godot 3.x 的大量其他改进。

当然,目前大多数新功能仍然存在重大错误和性能问题,无法在即将发布的 4.0 版本中及时解决。除此之外,Godot 还缺少一些基本功能,以下是最重要的一部分:

  • 流媒体处理 (Streaming)

从一开始就让游戏变长的传统方法是将它们分成几个阶段。一旦某阶段完成,它就会被卸载,同时加载新的阶段。

现在许多游戏仍在使用这种方法(毕竟,如果它没有损坏,就不要修复它)。但是,游戏设计越来越多地从“独立阶段”转向“开放”或“连续”世界,其中级别之间的界限消失。因此,以这种方式创建游戏更具挑战性。

常见的流媒体类型包括:纹理流、网格流、动画流和音频流。

其中,大多数实现起来相对简单。最复杂的是 mesh streaming,它一般需要和 GPU 剔除策略一起实现,以确保可以在不消耗 CPU 的情况下绘制非常大量的模型。这或多或少是像 Nanite 这样的技术在 Unreal 中所做的事情,尽管 Godot 在大多数情况下不需要实现那么复杂的东西。

流媒体是管理大型场景或开放世界所缺少的最重要的功能。没有它,Godot 用户将面临很长的加载时间(因为每个纹理、模型和动画都必须在显示任何内容之前加载)。如果并行加载太多资源而不是采用流式传输,还存在内存不足的风险。

  • 底层渲染访问 (Low level rendering access)

尽管 Godot 4.0 中有新的渲染器,但没有一种架构可以被认为是一种通用的解决方案。开发者通常需要实现未与引擎捆绑在一起的渲染技术、后期处理效果等。

Godot 的理念一直是迎合解决最常见的用例,并为用户自己解决不常见的问题敞开大门。

因此,这意味着需要通过 GDExtension 公开对所有渲染服务器结构的底层访问。这将允许在渲染步骤中创建自定义渲染器或插入自定义代码,这对于自定义渲染技术或后期处理非常有用。

  • 场景作业系统 (Scene job system)

为 Godot 4.0 所做的大部分工作都涉及对所有服务器(渲染、物理、导航等)的大型功能和性能改进。服务器现在也是支持多线程,以及经过优化,甚至资产加载现在也可以多线程完成。

尽管如此,场景系统尽管在可用性方面有了一些改进,但并没有得到显著的优化。

Godot 中的场景节点主要用于为有限数量的对象(最多数百个)承载复杂的高级行为(例如动画树、运动角色、IK、骨骼等)。目前没有采用线程,只使用了一个 CPU 内核。这使得它非常低效。

  • Swarms

如前所述,场景是为数百个实例中的复杂高级行为而设计的。不过,有时,一些游戏需要更多的实例,而不是复杂的行为。

这对于某些类型的游戏机制是必需的,例如:

  • 射弹
  • 某些类型的策略游戏中的单位,有数千个实体在地图上漫游
  • 城市模拟器中的汽车/人,成千上万的人出现在整个城市
  • 沙盒式模拟
  • 在 CPU 上运行的复杂自定义粒子

更有经验的程序员可以直接使用服务器,甚至可以插入 C++ 代码来完成繁重的工作。ECS 通常也被提议作为解决方案。甚至 GPU Compute(在 Godot 中完全支持)也可以很容易地用来解决这个问题。

但为了让 Godot 易于访问和使用,团队的想法是创建一个swarm 系统来处理大量这些对象的渲染和物理,开发者只需编写代码逻辑。

  • 对大型团队的 VCS 支持 (Large team VCS support)

Godot 的文本文件格式对版本控制非常友好。他们只写需要的东西(没有多余的信息),保持部分的顺序,并且足够简单,只需查看差异就可以理解变化。很少有其他技术能在这一领域发挥同样的作用。

尽管如此,这还远远不足以实现大型团队协作。为了实现这一点,Godot VCS 支持必须在几个方面进行改进:

  • 更好地与文件系统扩展坞集成。
  • 如果在外部修改(并导出)资产,可以更好地实时刷新资产。
  • 支持权限和文件锁定:Git 不支持开箱即用,但 Git LFS 和 Perforce 支持。此功能对于大型团队来说至关重要,可以避免冲突并保护文件免受意外修改(例如,团队成员修改代码或他们错误地不拥有的场景)。

除非对此有可靠的支持,否则在大型团队中使用 Godot 仍然很困难。

  • 商业资产商店 (Commercial asset store)

虽然对于非常大的工作室来说,这不是一个感兴趣的领域,但中型工作室仍然依赖大量资产和预制功能。Godot 中目前存在的资产库仅链接到开源资源(例如托管在 GitHub 或 GitLab 上),无法用于商业资产。

对于 Godot 项目,商业资产商店将是增加额外收入来源的好方法,但直到最近他们才考虑到法律相关问题,随着 Godot 的所有权转移到 Godot 基金会,这是一种新的可能性。


Godot 团队表示,虽然本文的目的是阐明这些未实现的工作对于使 Godot 成为更接近商业领域产品的重要性,但是有一个关键细节更加重要:

Godot 是免费的开源软件。因此,任何人都可以对其进行修改以实现任何目的。

目前,许多大型工作室都有能力创建自己的内部技术。尽管如此,随着硬件的开发变得越来越复杂,他们还是放弃了,转而花钱购买现有的商业技术产品。

另一方面,Godot 是一个优秀的构建平台,因为它已经解决了绝大多数问题。因此,越来越多的工作室以 Godot 作为基础,从中衍生出自己的技术。

这是一个双赢的局面,因为它允许他们保持创新的自由,同时避免支付昂贵的技术许可费用。

团队坚信 Godot 会从目前的状态过渡到被更大的工作室更广泛使用的项目,但这肯定需要他们做更多的工作。


相關推薦

2023-09-15

com/5.3/zh-CN/unreal-engine-for-unity-developers/ 延伸阅读 Godot 离开发 3A 游戏还有多远? Godot 游戏引擎脱离 SFC,成立自己的基金会 开源游戏引擎 Godot 获 800 万美元投资 一些梗图:

2023-09-15

费模式,以及配套服务更新;自 2024 年 1 月 1 日起将根据游戏的安装量引入新的 Unity Runtime 费用 (runtime fee)。 在此之际,其竞争对手、开源游戏引擎项目 Godot 则宣布全面启动开发基金(Godot Development Fund)。该基金项目于今年 7

2022-09-15

sics 特性、增强 GDScript 脚本、更好地支持音频、改进多人游戏模式,以及对 Godot 3.x 的大量其他改进。 更详细的变化可查看此前的报道: Godot 4.0 首个 Alpha 版本发布 Godot 4.0 alpha 10 发布,引入重磅新特性 "Temporal AA" 关于 Go

2022-09-15

开源游戏引擎 Godot 背后的商业公司 W4 Games 宣布获得 850 万美元投资,这笔投资由全球知名关注开源商业的投资机构 OSS Capital,以及专门从事新兴科技风险投资的硅谷领先 VC LUX Capital 牵头。行业资深人士、Red Hat 创始人 Bob Young 和

2022-08-09

Godot Engine 是一个功能丰富的跨平台游戏引擎,可以从一个统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏。游戏可以一键导出到多个平台,包括主要的桌面平台(Linux、macOS、Windows)

2021-11-29

持和大量图形渲染器工作之外,Godot 4.0 还改进了其多人游戏开发功能。 多人游戏一直是一中复杂的功能,需要临时优化和特定于游戏的解决方案,并主要包含两个概念:某种形式的消息传递和某种形式的状态复制(同步和

2023-11-05

ull-request(或 133 次 commits)。Godot 是一个非营利性的开源游戏引擎,由数百名贡献者利用业余时间开发,也有少数兼职或全职开发人员受雇于 Godot 社区的捐助。 v4.1.3 是 Godot 4.1 的第三个维护版本,包含了许多针对渲染系

2022-07-30

penGL 添加新的 Physics 特性 增强 GDScript 脚本 改进多人游戏模式 编辑器功能增强 优化文档 …… 下面介绍 4.0 的部分亮点。 重写全局光照渲染器 在新版本中,GIProbe 已经被 VoxelGI node 所取代,这是一个适合中小型环境

2023-07-08

器上的能力。 此版本的重点改动: 节点操作更快 Godot 游戏被构建为节点树,这是游戏实体引擎的基础构建块,因此操作节点是引擎需要极其频繁执行的操作,会直接影响开发速度。  4.1 版本更改了算法,使用快速哈希

2023-02-10

Godot Engine 是一个功能丰富的跨平台游戏引擎,可以从一个统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏。游戏可以一键导出到多个平台,包括主要的桌面平台(Linux、macOS、Windows)

2023-07-21

Godot 4.1.1 现已发布,这是 Godot 4.1 的第一个维护版本,解决了稳定版本中的一些 bug。 此版本中的一些重要更改包括: 修复了AnimationStateMachine中因无限循环而导致的崩溃 (GH-79141)。这是一个棘手的问题,因为只需最低

2023-02-23

Godot Engine 是一个功能丰富的跨平台游戏引擎,可以从一个统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏。游戏可以一键导出到多个平台,包括主要的桌面平台(Linux、macOS、Windows)

2023-05-21

Godot Engine 是一个功能丰富的跨平台游戏引擎,可以从一个统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏。游戏可以一键导出到多个平台,包括主要的桌面平台(Linux、macOS、Windows)

2022-06-04

,面对这样的局面,无数次失眠和复盘,思来想去,选择离开人世,对不起信任我的兄弟们和家人,选择面对,前途渤茫。 现在唯有振作起来,重新出发,40岁的人生,唯有拼搏,才能翻身。 许多人家里都遇到了巨大的困难,