用 Unity DOTS 模拟上千条鱼:《Life Below》珊瑚礁城市建造的群体动画方案
《Life Below》是一款“设定在波浪之下”的城市建造游戏,这自然意味着有大量鱼群四处游动。你可能会觉得这对 PC 来说是一场噩梦,但 Megapop 的开发者并没有把每只动物都当作独立对象;他们使用 Unity 的 DOTS(数据导向技术栈)来简化流程。
“DOTS 包含了一系列技术与包,它们为在 Unity 中构建游戏提供了面向数据的设计方法。”

这种方法对 CPU 的负担更轻:它让系统把鱼看作数据、一排数字,而不是需要在各处不断引用的复杂对象。
团队在着色器中使用 VAT 为更复杂的动画制作动物动画,而对小鱼则采用程序化动画。
“对于野生动植物,我们采用了一种经过定制的 boid 行为,让不同物种之间能够互动并相互避让;而对于在游戏中负责体力劳动的水精灵,我们则有一套类似‘任务调度器’的机制。任务调度器会找出哪只水精灵能最快完成优先级最高的任务,并把它分配给该任务。随后,它会根据任务将耗费的时间来更新不同任务类别的优先级,从而让各类任务所分配到的时间大致相当。”
开发者表示,在游戏以30 FPS运行的情况下,可以有1,300只动物游动,因此我期待当Life Below于5月26日发布时能有流畅的体验。

“海洋正在死去。珊瑚礁正在消失,生态系统正在崩溃。你必须借助神秘‘礁心’的力量恢复平衡,以海床本身为基础,为海洋生物建造生机勃勃的庇护所。制作诱饵,吸引不同物种来到你的珊瑚礁,并利用它们的天然能力克服水下危险。在战役模式中体验 Thalassa 的旅程,然后在自由模式中迎接新的挑战。
《Life below》在海洋生物学家的指导下打造,并配以真实的水下音效,将写实感引入它的奇幻世界。玩法反映了自然的节律与互动,以动态、色彩与可能性让海床焕发生机。”
喜欢这篇内容吗?