大约一年前,我为参加一个 Three.js 游戏创作挑战而开始了《牧羊犬模拟器》的开发。那是我最早的三维游戏之一,在此之前我一直在用 Pygame 和原生 JavaScript 做二维游戏。自项目启动之初,AI 辅助开发就是工作流程的核心。随着模型变得更好,我开始尝试像《牧羊犬模拟器》这样更有野心的游戏。从羊群到围栏再到树木,美术都非常早期的原型风格。

随着时间的推移,我开始使用 GLB 格式文件,购买了一个狗资产,并持续扩展这个模拟器。多人模式、沙盒模式、将羊群数量推向极限(在我的机器上大约 10 万只羊时遇到了瓶颈)、岛屿、不同游戏模式,还有很多很多。需求蔓延得很严重。这些闪亮的新功能很酷,但不好玩。

中途我做了一次 WebGPU 重构,但最终却用了 React 却没有用 React Three Fiber,搭配了一个维护起来毫无意义的奇怪自定义框架。凭借最新的模型和能力飞跃,我决定回归本源——烧掉森林,回到放牧本身。

这个版本使用了 R3F、TSL,所有资产(除了音效)都是用代码生成的。你可以自定义你的羊群和牧羊犬,还可以给它们起名字。r/sheep 社区给了我很好的建议,让羊群更加多样,我对新的美术风格方向非常满意。

V3 还很早期,但我觉得这是迄今为止视觉效果最好、玩起来也最棒的一个版本。

你可以在这里体验:https://sheepdogsim.com

代码也是开源的:https://github.com/matthew-kissinger/sds