当前位置 : 首页 > 攻略秘籍 > 我本沉默 > 正文

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

编辑:迷失传奇版本浏览:971时间:2023-02-06 22:43:31

出品|开源中国

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

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

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

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

流媒体处理(Streaming)

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

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

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

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

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

底层渲染访问(Lowlevelrenderingaccess)

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

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

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

场景作业系统(Scenejobsystem)

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

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

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

Swarms

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

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

射弹

某些类型的策略游戏中的单位,有数千个实体在地图上漫游

城市模拟器中的汽车/人,成千上万的人出现在整个城市

沙盒式模拟

在CPU上运行的复杂自定义粒子

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

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

对大型团队的VCS支持(LargeteamVCSsupport)

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

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

更好地与文件系统扩展坞集成。

如果在外部修改(并导出)资产,可以更好地实时刷新资产。

支持权限和文件锁定:Git不支持开箱即用,但GitLFS和Perforce支持。此功能对于大型团队来说至关重要,可以避免冲突并保护文件免受意外修改(例如,团队成员修改代码或他们错误地不拥有的场景)。

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

商业资产商店(Commercialassetstore)

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

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

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

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

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

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

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

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



转载请注明出处:迷失传奇版本 ,如有疑问,请联系(如有侵权内容联系本站管理员 )。

本文地址: https://www.mishipk.com/news/77734.html

相关内容更多
    游戏视频更多
        最新游戏推荐更多