返回行业情报

独立游戏《Sandcastle》水沙模拟开发访谈

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

Bubblebird Studio创始人Fabien Weibel分享其独立游戏《Sandcastle》的开发历程。他自学流体模拟,在Unity中从零构建水与沙的模拟系统,实现侵蚀与沉积效果。为解决水沙耦合产生的伪影,采用双分辨率模拟并引入随机噪声,意外获得沙质纹理。玩家反馈帮助修复了水从无源处涌现的问题,他强调试玩与社区反馈对游戏打磨的重要性。

深度解读

独立开发者Fabien Weibel用一套自研的流体模拟系统,把“挖沙子、堆沙堡、引水灌渠”这件童年小事,做成了一款在Unity里跑得动的商业游戏——而它的起点,其实是一次失败的“大项目”抢救。

与其说Sandcastle是“沙滩建造游戏”,不如说它是一次对“水与沙”这对物理冤家的技术押注,游戏玩法只是给这套模拟找一个能卖钱的容器。

从动画导演到自学游戏开发:一个非典型独立开发者的路径

Fabien Weibel的履历里没有计算机学位。他在法国学的是3D动画,之后在巴黎为Rovio的动画系列《Piggy Tales》(愤怒的小鸟衍生剧)做过艺术总监和导演,后来搬到卢森堡继续做动画系列开发。2019年,他利用业余时间开始做第一款游戏《Haven Park》,2021年成立公司正式发行,接着做了第二款《Trackline Express》,Sandcastle是第三款。

这条路径解释了他后面所有技术决策的底色:他是用美术和导演思维在做游戏,而不是用工程师思维。所以他会说“我一开始根本不知道怎么实现流体模拟方程”,要上网翻科学论文找state-of-the-art。这不是科班程序员的常规操作,但对一个自学游戏开发的人来说,这是唯一可行的路径——先找到能用的理论,再把它翻译成能跑在Unity里的代码。

游戏不是从“沙堡”开始的,是从“救活一个烂尾项目”开始的

Sandcastle的起源和它的名字没有半点关系。据Weibel自己讲,最初这是一个体量大得多、也复杂得多的项目,他做了八九个月,到2025年底时已经不知道自己在做什么了,项目方向失控。2026年初他做了一次残酷的自我复盘:问自己“这个项目里什么能跑、什么不能跑”,最后只留下了两样他真正满意的东西——水的模拟和沙的模拟。

然后他反过来问:用这两样东西能做什么游戏?答案几乎是自动浮现的——堆沙堡。

他还专门去网上搜了一圈,发现同类游戏少得可怜,于是判断“这可能是值得切入的niche”。所以Sandcastle的官方开发时间线是从2026年初开始,但它的技术积累和方向试错,往前至少多算了将近一年。

这是一个典型的独立开发止损案例:不是砍掉项目,而是砍掉项目里所有不成立的部分,只留下那个“意外做对了”的核心,再围绕它重新长出一个游戏。

水是论文里抄的,沙是水改的——但真正难的是让两者互相作用

技术上,Weibel用的是Unity,但水和沙的模拟系统全部自研,没有用任何插件。原因有两个:一是市面上没有满足他需求的插件,二是他本人对亲手实现这件事有兴趣。

水的部分,他基于自己从网上找到的几篇科学论文,尤其是流体模拟方程相关的研究,搭建了模拟器。沙的处理更取巧——在游戏里沙也被当作一种流体,只是黏度(viscosity)和阻尼(damping)调得极高,让它看起来更像固体。底层原理和水是同一套。

真正的技术难点出现在两者耦合的时候。他实现了侵蚀(erosion)和沉积(sedimentation)——水能冲刷沙子、沙子能被水搬运后重新堆积。但为了让游戏在足够多的机器上跑得动,他必须让水和沙的模拟跑在两种不同的分辨率下。这个分辨率差异直接导致了严重的artifacts和glitches:沙子里出现奇怪的干扰图案,像是两种模拟在互相打架。

他没能完全搞清楚问题的精确成因,最后的解法有点“土办法”——在沙的模拟里引入随机噪声,用噪声去平滑掉那些干涉痕迹。意外的好处是,这些噪声反而给沙滩加了一点自然的沙质纹理。

这个细节值得所有做模拟类游戏的人记住:当数值方法撞上分辨率不匹配时,有时候“加噪声”不是妥协,而是一种低成本的美学化修复。

玩家反馈逼他回头重读论文:水从沙子里凭空冒出来

最具体的一次开发危机发生在demo上线后几周。玩家发现,用铲子挖坑时,坑里会自己渗出水来,哪怕周围根本没有水。如果你在沙滩高处只放一点点水,水流也会以一种不自然的方式越涨越大,像是水从虚空中被生成出来。

Weibel承认,这个问题他自己之前也注意到过,但当时觉得“应该够好了”,就没深究。玩家反馈让他意识到这不够好,而且他本人也想要一个更可靠、更接近真实水的行为。

于是他花了几天时间,回头去重读最初那篇论文,试图找出自己在哪个环节偏离了原始模型。结论是:在之前为了优化性能、让游戏更轻量的过程中,他实际上改变了模拟的行为。他重写了几部分代码,最终让水的表现自然了很多。

他也坦言这类问题是个rabbit hole——你永远不知道会花一天还是两周,因为问题可能来自无数地方,包括随时间累积的微小数值误差,这些误差在最初根本看不出来。

一个只用Steam和Discord评论做迭代的开发者

Weibel明确说,他大量使用玩家反馈,会读Steam和Discord上的大量评论,考虑玩家对当前状态的看法、哪些能改进、哪些建议可以落地。他的原话是:玩家反馈能揭示“你自己已经看不见的东西”,playtest和让游戏直面玩家群体非常重要。

这解释了一个独立开发者的典型工作流:没有庞大的QA团队,没有自动化测试覆盖模拟系统的所有边界情况,玩家就是最有效的测试用例生成器。尤其是流体模拟这种混沌系统,很多bug只在特定操作序列下才浮现,靠开发者自己测几乎不可能穷尽。

所以这对行业意味着什么

Sandcastle的技术路线其实指向一个更大的趋势:模拟本身正在成为玩法。传统游戏里,水是贴图加shader,沙是静态地形;而Weibel把侵蚀和沉积做进了核心循环,玩家挖一条沟,水会自己冲刷出更深的河道,沙会堆积在下游。这种“地形会记住你做过什么”的体验,是传统手工关卡设计给不了的。

对独立开发者来说,这个案例还有一层现实意义:一个非科班、自学成才的动画导演,靠读论文加自研模拟,在Unity里做出了商业级的流体交互。门槛没有想象中那么高,但代价是你要愿意在数值误差和分辨率耦合这种脏活里泡上几个月,还要接受“有时候加噪声就是最优解”这种不优雅的工程现实。

其
行业动态Unity流体模拟独立游戏游戏开发水沙耦合