《Sandcastle》开发访谈:在 Unity 中自研水与沙流体模拟

AI3D 发表于 09-29 浏览 1 分类 创作分享

能否请您介绍一下自己,谈谈您之前的项目,以及您在游戏开发中最享受的部分?

Fabien Weibel:我在法国学习 3D 动画。我曾担任不同动画剧集的艺术总监和导演。我在巴黎为 Rovio(愤怒的小鸟)的一个项目工作过。他们有一部叫《Piggy Tales》的剧集,那是一次非常棒的经历。后来我搬到了卢森堡,参与一个我学生时代开发的动画剧集项目。大约在 2019 年,我开始制作我的第一款游戏《Haven Park》,当时是作为兼职项目。到 2021 年,我成立了自己的公司来发行它。接着我制作了第二款游戏《Trackline Express》,现在是我的第三款游戏《Sandcastle》。我的背景主要是 3D 动画,但后来我自学了游戏设计和游戏开发。

建造沙堡是一个非常有趣的概念。能否请您分享一下您是如何想到这个点子的–也许是某个具体事件或您度假的地方给了您灵感?

Fabien Weibel:有趣的是,最初这款游戏并不是关于建造沙堡的。它原本是一个大得多的项目,也复杂得多。我决定重新调整范围,因为去年年底时,我已经做了大概八九个月,却不知道它要走向何方。它变得越来越复杂,我也不确定自己在做什么。所以今年年初,我对此进行了反思,我想:“这个项目里什么行得通,什么行不通?”然后我只保留了为数不多的几样好东西——它们运作良好,也让我满意:水和沙子的模拟。我想:“用这个能做出什么样的游戏?”答案变得相当明显:做一款建造沙堡的游戏会是正确的方向。当我在网上查看是否已经有类似的游戏时,我很惊讶这样的游戏并不多,我想:“这可能是一个不错的细分市场,一个值得探索的酷概念。”事情就是这样开始的。所以正式来说,《Sandcastle》的开发始于今年年初,但在此之前它经历了长得多的开发过程。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

让我们谈谈开发的技术部分:你所使用的引擎和软件。你是否想出了一些自定义技术?开发过程中有没有遇到什么具体的挑战?

Fabien Weibel:我使用 Unity,因为我的第一个项目就是在 Unity 上开始的。我围绕它构建了我的工具集,而且我对这个软件相当熟悉。模拟本身 – 水和沙 – 全部由我制作。我没有为此使用任何插件,因为基本上没有适合我需求的插件。也因为这是我很感兴趣、想自己构建的东西。一开始我不知道如何实现流体模拟方程,所以我不得不上网查找科学论文,试着找出最先进的方法。我找到了一些非常有趣的论文,并决定以此为基础构建我的模拟器,尤其是水的部分。对于沙子,我不得不稍作改动。在游戏中,它实际上也被视为一种流体,但具有更高的粘度和阻尼,让它看起来更像固体。但总体原理是一样的。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

其中的主要挑战在于让沙子和水的模拟能够良好地协同工作,因为我在游戏里实现了侵蚀和沉积效果。为了优化游戏并让它能在一系列配置各异的机器上流畅运行,我不得不用两种不同的分辨率来运行水和沙子的模拟。这相当棘手,因为水与沙子的耦合会在沙子中产生大量伪影和故障,某种干涉现象。我不太确定具体发生了什么,但真的很难找到避免它的办法。最终我通过在沙子模拟中引入一些随机噪声解决了这个问题,算是把一切都稍微平滑了一下。这很棒,因为作为副产品,它给沙滩增添了一点这种沙质的纹理。

那么,你之前的项目与水、沙子的模拟并无关联。你是从零开始为这个项目构建它的。

Fabien Weibel:是的,没错。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

这张图展示了备受期待的一项功能的实现:能够控制侵蚀与沉积因子。

你还记得开发过程中沙子或水没有按照你期望的方式表现的某些具体方面吗?例如,当塔太细时倒塌,或者湿沙无法保持形状,又或者也许是你记得的其他事情 – 一些反复出现的问题、玩家可能会遇到的情况,以及你是如何克服这个障碍的?

Fabien Weibel:是的。实际上,就在最近,几周前我发布演示版时,一些玩家注意到水有时会凭空出现。例如,当你用铲子挖洞时,即使周围没有水,洞也会被水填满。这很烦人,这也是我之前注意到的事情,但出于某种原因,我想,“这应该够好了”,但显然并非如此。

因为玩家的反馈,我决定我应该认真对待这个问题,并真正反思它。即使你在沙滩顶端只有沙子处放一点点水,水流也会以不自然的方式增长;水不知从何而来。我真的想要一些更可靠、行为像真实水的东西。这对我很重要。所以,我花了几天时间回头看我读过的一篇论文,试图理解我在哪里偏离了。在优化和试图让游戏更轻量的过程中,我实际上改变了模拟的行为。所以我重写了一些部分。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

幸好,它奏效了,水的表现自然多了。我很高兴,因为这类事情总是某种无底洞。你永远不知道它是只需要一天的工作,还是最终会花上整整两周,因为你就是找不到让它正常工作的正确方法。尤其是这种模拟,问题可能来自许多方面,比如随时间累积的小数值误差–一些你乍看之下无法察觉的非常微妙的东西。但我认为,不把一切推倒重来,而是稍微回到基础再从头开始,是一个很好的决定。

这似乎是一种可能以意想不到的方式运行的模拟,而这样细致的做法很有帮助。大概,这些事情只有通过玩家反馈才能显现出来–有些东西你在测试时并不总能发现。

Fabien Weibel: 顺便说一句,就此反思一下,看到玩家们的所有反馈是非常重要也很棒的。我会大量利用这些反馈。我在 Steam 和 Discord 上读了很多评论。我会尽量考虑玩家对游戏当前状态的看法,以及哪些地方可以改进。有没有什么建议是我能在游戏里实现的。玩家反馈能向你揭示一些你已经看不到的东西,这是好事;这真的很重要–去进行试玩测试,并让你的游戏与玩家群体面对面。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

玩家的评论中有没有一些玩法创意是你实际已经实现进游戏里的,或者你觉得有趣并且想要实现的?

Fabien Weibel:有一个我觉得非常有趣并且想要实现的 – 这本来就是我有的一个想法,但我看到很多人也这么想 – 就是加入更多互动,比如围绕保卫你的城堡的某种小游戏,因为我看到很多人提到这个。人们希望有那种小螃蟹试图攻击你的城堡,然后把它们摧毁。这真的是我很想做的。游戏的核心永远是温馨舒适的沙盒,但我想加入一些可选的、不会打扰玩家的玩法元素,让你有时可以偶然发现,或者只是通过尝试组合不同的东西来发现。

这正是我现在在做的事情。对于完整版游戏,我希望能够加入这类互动、小游戏,以及从我目前拥有的模拟、声音、游戏里发生的一切中涌现出来的小型玩法。这真的很有意思。 

今天我加了充气企鹅,而添加充气物品是 Discord 上某个人的想法,我想是这样。然后我决定,好吧,我喜欢企鹅,那就加一只充气企鹅吧。

听起来把它做成可选项很不错,这样一些玩家可以专注于建造,而另一些玩家则负责保卫他们的城堡。游戏中有几种不同的海滩布局 – 物理效果会适应这些不同的环境和水体行为吗?如果是的话,你们用什么工具来实现它?

Fabien Weibel: 模拟算法在所有海滩上都是一样的。变化的是海滩的拓扑结构。我也可以更改一些沙子的参数,所以如果我们想要结构完整性更高的沙子,我们可以做到;让水具有更高的黏度也是可能的。但主要的区别其实还是拓扑结构,而这实际上会带来很大的变化。我注意到一件事:随着时间推移,海滩拓扑结构的微小变化会创造出许多不同的地形演变方式。

有两种布局 – 小溪和三角洲 – 它们包含新的元素。它们包括水的流入。地图上有一些区域可以生成水并产生水流。这也是一个非常酷的玩法,因为这样你就可以建造水坝;你可以为水流入创造不同的渠道。我添加了一些水车,所以看着轮子随着你创造的小河流的水流转动,并把船放在水流中,是很有趣的。这真的很酷,因为你可以进行划船比赛之类的活动。你小时候玩这类东西时做过的一切,现在都可以实现。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

同样有趣的是,尤其是对于三角洲布局,观察沉积如何运作,因为令人惊讶的是,它会形成一些逼真的图案。在实际运行中看到这一点真的很棒。你甚至可以加速模拟,看它快速演变。时不时地,我会让模拟运行一会儿,只是为了确保一切随着时间推移都能正常工作,而当我回到电脑前时,有时我真的会惊讶于水实实在在地在沙子上画出的东西。很值得一提的是,你可以用相当简单的规则,创造出非常丰富的视觉效果和丰富的环境。这是我很喜欢拿来玩的东西。

这是来自我的一个 Blender 文件的截图,展示了我为许多不同生物群落所做的研究。目前我只使用了这些植物中的 5-10%,但我希望在游戏中添加更多的生物多样性:

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

这是正在开发中的新闸门,可帮助你控制水流:

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

游戏中包含探索元素–玩家可以找到隐藏的宝藏并收集一些物品。你是怎么想到这个点子的?你又是如何在沙盒游戏中实现探索玩法的?

Fabien Weibel:这挺自然的,因为我记得小时候在海滩上玩,甚至有时候成年后也会这样,我承认,在海滩上收集你发现的东西真的很自然,比如贝壳、海玻璃、树枝;任何你能找到的有趣东西–你都想把它们收集起来,要么用来装饰你的城堡,要么带回家。我想,“这真的是我很想在游戏里拥有的东西。”我还在考虑加入更多元素,帮助你找到埋在沙子下面的物品,比如金属探测器。我甚至在考虑加入一些制作玩法元素;例如,把不同的元素组合在一起可以创造出新的东西。那只是一个探索;我不知道它最终会不会出现在正式版本的游戏里,但这就是我现在正在考虑的那类东西,只是为了让玩法感觉更丰富一些。

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

新物品之一:遥控快艇:

Creating Cozy Sandbox Sandcastle with a Focus on Water & Sand Simulation

更多互动物品总是更好的。我们能在建造城堡时使用非常多样化的东西,这太棒了。关于玩家目前对游戏的反应,你还有什么想补充的吗?

Fabien Weibel:总的来说,我对玩家接受这款游戏的方式感到满意。一开始我并不确定。我在社交媒体上得到了不错的反馈。帖子的反响很好,人们对我们在网上分享的内容反应非常积极。但我总是担心展示的东西达不到人们的期望。你展示了一段看起来非常酷的视频,但当玩家真正试玩游戏时,玩起来却没有那么舒服。得到这么积极的反馈让我松了一口气。即使是负面的反馈也很有意思,因为它们能帮助我不断改进游戏。我真的很感谢社区对这款游戏如此积极和乐于助人。这非常鼓舞人心。

Fabien Weibel,Bubblebird Studio 创始人,Sandcastle 的开发者

采访者:Emma Collins

相关链接

原文链接:https://80.lv/articles/creating-cozy-sandbox-sandcastle-with-a-focus-on-water-sand-simulation

喜欢这篇内容吗?