搜索 Unity

游戏聚焦系列:为更具雄心壮志的游戏扩展规模

2022年11月23日 类别 Engine & platform | 15 分 阅读
Games Focus: Expanded scale for ambitious games | Hero image
Games Focus: Expanded scale for ambitious games | Hero image
分享

Is this article helpful for you?

Thank you for your feedback!

游戏聚焦系列博客着重介绍了我们未来一年及以后的主要产品开发计划。第九篇介绍了使用Unity打造更具雄心壮志的游戏方面的现状、发布计划和未来设想。

大家好!我是Issac Seah,Unity DOTS团队的产品经理,我负责帮助团队制定ECS for Unity (Entity Component System)的产品战略。

我们希望用更好的工具帮你交付出色的游戏。在加入Unity以前,我是一名Unity创作者。我经常不停地翻找文档和视频教学,花费大量时间来掌握引擎,学习制作优秀的游戏和体验。

作为创作者,我对Unity 2022.2 Tech Stream的ECS for Unity满怀难以言表的期待。我们即将迎来“改变游戏/行业”(两者皆能说成game)的时代。

在这篇游戏聚焦系列博文里,我们将讨论ECS for Unity为有经验的创作者带来的好处,早期用户的应用方法,以及2023年及往后的产品计划。

驱动具雄心壮志的游戏

Power ambitious games

我们希望ECS for Unity能帮你制作更具雄心壮志的游戏。为此,我们将让你更有规律地处理和控制内存里的数据布局,帮助你轻松实现高效的多线程运行,应对最为庞大的游戏规模要求。

在2021年,Unity驱动了市场上超过50%的游戏,许多人即使没有ECS也能打造出优秀的游戏。ECS for Unity能为熟练的Unity创作者带来价值。他们已经发售过Unity游戏,明白GameObject和MonoBehavior架构的局限,并且想实现更多的控制和确定性。ECS for Unity能让有经验的开发者更精细地管理内存,全面控制每一帧的代码执行,并最终在更有限的硬件条件下实现更复杂的游戏玩法。

目前已有的内容

Megacity, a sample available starting with Unity 2022.2 Tech Stream, showcases how users can achieve large-scale streaming and rendering of thousands of entities at a stable frame rate.
《Megacity》示例将从Unity 2022.2 Tech Stream开始开放下载,它展示了怎样以稳定的帧率流式传输和渲染数千个实体。

自2022.2 Tech Stream起,ECS for Unity将包含以下软件包:

  • Entities:Unity ECS的基础包
  • Unity Physics和Havok Physics for Unity:支持确定性大规模模拟、兼容ECS的物理引擎
  • Netcode for Entities:支持大规模多人游戏的netcode软件包
  • Entities Graphics:这款图形软件包支持将大量ECS数据批量发送至Unity的可编程渲染管线(SRP),包括通用渲染管线(URP)和高清渲染管线(HDRP)。

除了ECS for Unity,你还能继续利用成品级Burst编译器和C# Job System来编译脚本、安排工作任务。更重要的是,随着Unity 2022的发布,ECS for Unity正式支持生产,你现在可以轻松地从客户支持渠道获取帮助,参加成功计划(Success Plan)来发掘ECS的更多潜力。

兼容GameObject生态系统的框架

ECS for Unity enables you to easily interoperate between GameObject data and ECS data through familiar authoring components.
ECS for Unity支持用你所熟悉的组件轻松地交互操作GameObject和ECS数据。

为了改善ECS for Unity的使用体验,我们引入了许多大家熟悉的Unity创作体验。

ECS for Unity框架兼容GameObject生态系统。我们已经介绍的几种工作流都已完全整合至Unity编辑器,带有的工具包括组件数据、原型(archetype)与实体视图、全新的记录窗口、实体调试器、多种分析工具和数据模式,让你轻松在创作与运行时数据间切换。

用ECS掌控数据、建立确定性

Electric Square leveraged many aspects of ECS for Unity to build their fast-paced Apple Arcade racing game, Detonation Racing.
Electric Square利用了ECS for Unity的多个特点来打造Apple Arcade上的快节奏赛车游戏,《Detonation Racing》。

《Detonation Racing》这款iOS游戏里,团队使用了ECS for Unity实现了大规模的资产流式传输。在开发时,ECS的确定性还经常被用于质量保证(QA)和游戏设计工作。Electric Square利用了ECS for Unity的确定性来精确地重现设计师们想象的场景,方便为《Detonation Racing》找出最完美的爆炸效果。用ECS编写的游戏代码能带来更多的可控性与确定性,带来更多的优化与代码编写可能。

Jonas from Electric Square walks us through how deterministic behavior from ECS allowed them to recreate scenarios that retain the same gameplay behavior each time.
Electric Square的Jonas向我们介绍了怎样用ECS确定性行为多次重现同样的游戏情形。

ECS for Unity可以清晰地分开数据与游戏逻辑,允许对游戏玩法做重大改动。对于Electric Square,高度模块化的游戏代码让团队能快速分开游戏功能与游戏系统。开发人员在遇到玩法上的难题时,可以轻松地修改游戏的代码或数据。

再辅以Burst编译器和C# Job System,ECS for Unity能实现高效的并行线程,以可预测的方式运行程序以及分配和释放内存。对设备内存有了充分控制之后,Electric Studio可以在有限的设备条件下实现复杂的玩法,并优化缓存策略。

平缓的流式传输与高内存效率的大规模渲染

Selling over 1 million copies in their first week, Stunlock Studios successfully leveraged ECS for Unity to build their hit title, V Rising.
首周便卖出超一百万份,Stunlock Studio的《V-Rising》可谓是ECS for Unity的一次成功应用。

游戏要被称作“有雄心壮志”,就需要借助高效的数据管线来实现大规模复杂游戏的流式传输和渲染,同时应对高低端设备的内存和处理能力限制。

V Rising data points: 160K in-game interactable objects, 5 square kilometer gameplay map, 350K server-side entities

Stunlock Studios就为我们提供了这样一个实例,在哥特奇幻风开放世界生存游戏《V-Rising》里使用了Entities Graphics包Subscenes。有了这些工具,团队将超过160000个可互动对象流式传输到了游戏世界中,分布在一张五平方公里的地图上,每个服务器可演算总共350000个实体。

Entities Graphics包让Stunlock Studios能利用ECS的高性能和扩展性以及熟悉的HDRP来渲染大量生动的场景。这为游戏添加了一种难以置信的广阔感和代入感。

大规模确定性模拟与Havok Physics for Unity

Megacity showcases how Unity Physics enables thousands of active colliders, moving vehicles and physics interactions at scale.
《Megacity》展示了Unity Physics怎样模拟数千个碰撞体、移动车辆和物理互动。

如果你希望用成百上千个碰撞体来建立庞大的确定性模拟,ECS for Unity包含了Unity Physics和Havok Physics for Unity软件包。Unity Physics,这款兼容ECS的确定性、无状态物理引擎带有一系列可靠、强大的物理解算器,包括刚体、关节、碰撞检测及其他查询指令,让你能构建高性能的确定性物理世界。

ECS for Unity同样也驱动了Havok Physics for Unity,后者可提供行业领先的确定性物理模拟及碰撞检测,已被用在了全球最畅销的几款游戏里。Havok Physics for Unity优化后的缓存能提高大世界及复杂物理场景的性能和稳定性。

在Unity 2022.2 Tech Stream发布后,创作者就在包含大量动态对象的《Megacity》里查看数千个物理性动态对象怎样高效地互动。

支持大体量多人游戏的创作

ECS Racing, a competitive multiplayer racing sample
ECS Racing,一款多人竞技赛车游戏示例

ECS for Unity为多人游戏的创作带来了许多好处。

可与ECS for Unity组合使用的Netcode for Entities软件包,提供基于ECS的服务器授权的高级别网络库,具有优化的序列化性能、物理预测、远程玩家预测以及在运行时在预测值和插值之间切换的能力。从Unity 2022.2 Tech Stream开始,创作者还可以通过一个多人竞技赛车游戏示例,了解Netcode for Entities软件包的各种功能,比如带有客户端预测、插值和延迟补偿的“客户端/服务器”架构。

后续计划

A collection of authoring tools provided in ECS for Unity in Unity 2022.2 Tech Stream
Unity 2022.2 Tech Stream的ECS for Unity将提供一系列创作工具

ECS for Unity、Burst编译器和C# Job System开放使用后,创作者现在能有坚实的基础来用Unity打造更具雄心壮志的游戏。然而,我们的工作并不止于此,我们会继续关注以下领域。

ECS工作流的统一:ECS for Unity发布后,行业内一定会涌现出很多的使用案例。我们的短期重点将是观察大家如何使用 ECS for Unity,并抓住机会进一步整合工作流并提供更好的体验。我们听到有许多人希望有一个好用的角色控制器作为起点。所以我们用ECS打造了一个以扩展性和高性能为特点的强大控制器,Rival。

跨平台多人游戏创作:实现多人游戏开发仍旧是团队的重心,我们决心为各种多人游戏类型提供高效的开箱支持、填补多处差距。这包括建立跨平台确定性,简化跨平台游戏的开发,满足游戏代码的确定性需要。

开放世界的游戏创作:我们还在为Unity添加稳固的开放世界支持,具体围绕着内容扩展进行开发。这部分有两个主要方面,动画和世界构建。

我们正在开发一种高性能、可定制、使用面向数据技术的3D动画系统。虽然ECS for Unity为创建大型游戏提供了一个强大的基础,我们仍希望新动画系统能为GameObject游戏所用,让你能继续使用自己最熟悉的工作流。同时,我们将继续关注Mecanim的稳定性和性能,尽可能地将修复移植到旧版上。

在世界构建方面,Unity 2022.2 Tech Stream推出了新的Spline(样条)创作框架,让开发者和技术美术师可以用自创工具来绘制带有自定义组件的河流或道路等。Spline创作框架将继续升级,为样条对象带来分支、合并、挤出等美术工作流改进。最后,我们还将改进环境编辑的操控,包括地形的覆盖图、散布改进和细节密度的管理。

请务必看看最新的Spline工具,我们将加入更多工具,让Unity的世界构建功能更易使用。

ECS for Unity入门资源

ECS for Unity带来了一种全新的游戏开发范例。如果你不熟悉这种新方式,可以参考以下指南、文档和示例来快速上手:

我们团队非常希望听到你的ECS for Unity使用经历,看到大家正在制作的游戏。我们欢迎大家前来反馈,在论坛Unity的官方Discord频道留下你对本文的问题和评论。你还能在公开路线图页面对我们的计划和功能提出意见与想法。

另外,请关注游戏聚焦系列最后一篇博文,届时我们将总结过去几个月内这个系列所讨论的各个领域的要点。

 

2022年11月23日 类别 Engine & platform | 15 分 阅读

Is this article helpful for you?

Thank you for your feedback!

相关文章