在2019年游戏开发者大会(GDC)上宣布,Havok Physics for Unity最初是作为Unity Asset Store上的实验包分发的。现在,随着ECS for Unity(实体组件系统)在Unity 2022.2技术流中的可用性,Havok Physics for Unity正式支持生产。
成功的历史
Havok Physics for Unity建立在为许多世界领先的游戏系列提供动力的相同技术基础上,如命运和刺客信条,除其他外。当Unity第一次通过数据技术堆栈(DOTS)来定义物理学在未来将会如何发展时,他们就开始寻求与其拥有相同核心理念和价值观的合作伙伴。通过与Havok合作,Unity如今能够利用DOTS来提供高度优化的、无需说明的、完全C#的、高性能的Unity物理技术。
Unity还为可能需要状态物理系统的用户准备了更复杂的模拟需求。我们知道Havok将是集成到Unity中以满足高端模拟需求的完美解决方案。
肖恩·麦克莱兰(Unity的产品经理)和乔尔·范·恩威克(Havok的现场应用工程师)介绍了他们是如何合作构建DOTS框架的。
havok Unity物理包使用与Unity Physics相同的C# ECS框架编写,并由使用本机C++编写的闭源专有Havok Physics引擎提供支持。Havok Physics for Unity针对许多典型的游戏用例进行了大量优化。例如,多年来,核心算法已经通过各种自动缓存策略(包括非活动对象的休眠)进行了改进,这意味着CPU资源只在需要时使用。
Havok统一物理学:最新更新
自从实验包以来,Unity和Havok一直在与插件的早期用户合作,推动改进和添加新功能。
以下是新增功能的分类:
Havok Unity物理包现可用于自由的适用于所有Unity Pro、Enterprise和Unity Industrial Collection订户。
Havok Physics for Unity基于2021.2版本的原版Havok SDK,并为Unity插件带来更高的稳定性和性能。
作为完整版本的一部分,加入了对电动关节(马达),例如线性位置,以及线性、旋转和角速度。
我们还向HavokSimulation API,它为您的模拟启用了粒度步进,并通过singletons提供了更高效地访问Havok模拟的方法。
看看别人在创建什么
Havok Physics是一个强大的物理引擎,旨在处理大多数动态游戏的性能需求,通常涉及具有大量物理交互的复杂场景。通过与整个行业的合作伙伴合作超过20年,Havok已经遇到、解决并继续迭代实时物理仿真面临的一些最棘手的问题。这种投入帮助他们实现了物理物体的稳定堆叠,快速移动物体的最小伪像,以及获得更受控制的物体行为,特别是当涉及到非优化的碰撞几何体时。
当然,物理意味着运动,所以我们来看看这两位创作者是如何使用Havok Physics for Unity描绘运动的。
Big Rook Games
标题:Hostile Mars
工作室: Big Rook Games
工作室大小: 个人
平台:Windows PC,主机平台
类型:开放世界,基础建设自动化塔防
玩家:单人游戏
首次亮相于2022年的PAX-East,Hostile Mars凭借其对物理学的专注运用和独特的流派融合吸引了相当多的观众。在一个开放世界的工厂基地建设和自动化游戏中,广阔的火星景观被赋予了生命。玩家通过第三人称射击和可编程防御在地面上近距离对抗以保卫他们的工厂。
来自Hostile Mars的场景:保护你的工厂免受数以千计的基于物理的敌人。
Big Rook Games的创始人杰克·詹姆森(Jake Jameson)开始将多种类型融合到多人和单人游戏中,加入了来自谜题游戏、第一人称射击游戏(FPS)和基于波次敌人的射击游戏的元素。越是发展这个想法,就越是缩小他的关注点,创造一个单人游戏基地建设者。他很快发现了建筑、战略和战斗之间的理想平衡,最终成就了唯一的Hostile Mars。
当完成最后一次迭代时Hostile Mars很明显,这个游戏需要使用某种面向数据的编程模型。杰克希望在获得高端视觉效果的同时拥有巨大的敌人波次。为了给玩家提供最好的体验,游戏必须在大规模上运行,同时支持屏幕上成千上万的敌人。
为了满足这些需求,杰克求助于Unity面向数据的技术栈。在利用ECS for Unity的过程中,每一个敌人可以实时运行网格物理/碰撞,寻路,以及局部回避,此外还有强大的状态系统、动画、武器和投射系统、高质量的VFX、粒子系统等等。
“如果没有DOTS,我就无法提供我在最初设计中想象的体验。如果没有实现我自己的ECS框架,这是不可能的,而且作为一名独立开发人员,考虑到我的时间表和预算,这是不可行的。”–杰克·詹姆森,Big Rook Games的创始人。
虽然杰克的职业不是游戏开发者,但他是一个狂热的游戏玩家,并且已经熟悉了最初的Havok物理引擎。了解到Havok的技术在AAA工作室中是多么受信任,Jake很有信心在Unity中通过实验包实现它。
Hostile Mars是一次物理密集型的经历。玩家使用基于物理的陷阱和炮塔来更加真实的攻击敌人。通过对敌人应用不同的物理属性,目标是阻止他们前进或把他们推向更危险的陷阱。
Hostile Mars牵涉到数量惊人的敌人。更具体地说,有多达5000个基于物理的敌人,这足以淹没玩家的火星工厂,这在屏幕上能够导致数百次碰撞和投射。
多达5000个基于物理的个体敌人可以一次淹没玩家的火星工厂。
Hostile Mars中所有的物理效果都是利用Havok Physics for Unity实现的;从抛射物和敌人、玩家和敌人、甚至敌人和其他敌人之间的碰撞,到敌人和风景本身,以及需要恒定状态的力来保持漂浮的悬停敌人。这些不同的物理交互实时发生,物理模拟允许可信的悬停、重力和网格点碰撞。因此,当玩家在某个特定点攻击敌人时,他们会看到敌人像Havok Physics for Unity希望的那样旋转。
用基于物理的陷阱建造大规模的基地来抵御敌人的攻击。
不仅敌人完全是基于物理的,游戏中必要的陷阱也是基于物理的。有推拉敌人的重力陷阱,反过来减速或加速粉碎敌人的陷阱。甚至有陷阱将尖刺弹到敌人的路径上,不只是将它们推到一边,而是逼真地模拟尖刺的力量和速度,以便敌人的反应看起来真实可信。
一旦玩家升级设施,敌人的波动就会变得多种多样,越来越复杂,这需要玩家更有策略地建立陷阱,结合他们不同的基于物理的交互,将具有不同弱点的敌人聚集到更强的陷阱和炮塔,这些陷阱和炮塔可以对他们产生最大的影响。例如,虽然冰霜陷阱可能会让一些敌人减速,但是爆炸陷阱可以对高度集中的冲击波次敌人造成最大的伤害。
Freejam Games
标题:Robocraft 2
工作室:Freejam Games
工作室大小:25人
平台: Windows PC,主机平台
类型:在线车辆战斗
演员:5v5在线多人游戏
Robocraft 2是2017年获奖的免费游戏Robocraft的续作,玩家在开放世界的多人游戏环境中建造可定制的机器人战车,可以驾驶、悬停、行走和飞行。由于这一初步的成功,Freejam Games的团队已经为Robocraft 2改进了全部可订制体验,以便玩家可以将自己的创作带到竞争性的多人游戏中。
在Robocraft 2中,所有的交通工具和机器人都是由玩家自己制造的,然后在基于团队的战斗中相互对抗。
由于Freejam Games在Robocraft中成功的经验,他们专注于提供令人兴奋的全新建筑工具。这样,玩家可以享受更多的自由来设计复杂的,物理模拟的作品。
该团队评估了如何将物理从客户端移动到专用的多人游戏服务器,以增强玩家创建的车辆和机器人之间的物理交互。他们发现,将物理效果转移到服务器创造了一系列有趣的游戏时刻,其中重量、惯性、动量、摩擦力、质量和弹性都被精确地模拟出来。换句话说,重型车辆可以轻松推动轻型车辆,或者与活塞、伺服系统和旋转平台等接头结合。甚至武器和爆炸在击中目标时也会产生真实的反弹和力。所有这些实验,加上社区测试和反馈,最终成就了Robocraft 2。
在Robocraft 2里,玩家现在可以创建复杂的车辆,将它们带入战斗,并在5v5团队战斗中在线摧毁它们。从他们Robocraft的第一次经历中,Freejam团队知道他们的玩家多么富有竞争力和创造力,寻找新的方法来优化提供的构建工具以赢得战斗。
这意味着该团队必须依靠物理引擎的三个关键功能来为所有人提供公平的体验:
快速性能
强力、无故障的物理模拟
访问物理引擎的低级区域,在游戏中进行修改
Robocraft 2中的物理在服务器上被完全处理,这允许动态、实时的物理效果,同时确保玩家对玩家(PvP)战斗的性能。
在2017年宣布DOTS和ECS for Unity之前,Freejam Games探索了在内部构建ECS框架的可能性。然后,他们很快在Unity的实验版本中采用了ECS,从Unity Physics开始。对于服务器端技术的实验,他们使用确定性作为保持玩家客户端和服务器上的模拟同步的解决方案,而Unity Physics提供了性能。
随着游戏的发展,他们脱离了无状态的方法,成为Havok Physics for Unity的早期采用者。作为一个有状态的系统,Havok Physics for Unity最终在游戏性要求范围内提高了模拟的性能Robocraft 2。
“Havok [Physics for Unity]的高性能使我们能够在我们的在线游戏中拥有准确的服务器端物理特性。反过来,这提供了几个重要的好处,包括给所有客户一个更好的质量体验的物理平等的代表。事实上,服务器对模拟的权威性也有额外的好处,减少了作弊的机会。”–Ed Fowler,Freejam的首席程序员和联合创始人
在Unity编辑器中查看Havok Physics for Unity。
Havok Physics for Unity帮助Freejam游戏解决了复杂的问题。例如,当玩家击败对手时,机器人和车辆一个接一个地分崩离析,这可以产生数百个刚体在环境中。为了释放CPU并保持高帧速率,那些不活跃的刚体可以通过钝化作用,这是一个有效地暂时消除碎片中的物理现象的功能。
Robocraft 2中的玩家作品由许多刚体组成复合对撞机由关节约束在一起,关节可以被打碎或堆叠在另一个之上。物理模拟整体性能的进一步改进可以通过冲突缓存,它还允许对接头/约束进行精细模拟,例如在那些堆叠情况下。
最后,Havok可视调试器被用来实时可视化游戏世界中的碰撞。它使Freejam Games能够识别故障、障碍,并有效地发现反常接触出现的情况。这加快了他们的工作流程,并促进了快速修复的实现。