我本月发布了两款免费浏览器游戏(一种类似 Populous / Mega‑lo‑Mania 的神游戏,另一种 Jules Verne 风殖民地生存游戏),两款游戏都借助大量 AI 完成。我是一名长期程序员,主要在 C/C++/Python 中从事计算机视觉和机器学习,因此 JS/HTML/WebGPU 是全新领域。

所以我想分享我是如何完成这两款游戏的图形的,可能会对其他人有兴趣,也想听取关于 3D 的建议。

下面是资产管线,因为我在那里学到了最多。

精灵:不生成图片,AI 编写绘制代码

  • Megapop:每个单位和建筑都是小体素模型,通过 Python 工具渲染为精灵:等距投影、4 个旋转角度、共享调色板、用于团队颜色的掩码通道。80% 的实际体素模型都是由 Claude 自己设计的。

  • 神秘岛屿:每个精灵都是通过代码绘制的。AI 编写直接绘制像素的函数,因此棕榈树或殖民者只是几十行数学代码,而不是 PNG。随后通过 Python 在 Blender 中渲染。

为什么要这样做:保持一致性(共享调色板、统一光照方向),只需改动一个数字即可调整整个タイルセット,代理人可以像迭代代码一样对艺术进行迭代:改动、渲染、观察、修复。

音频:Stable Audio + ComfyUI,封装在自建的 MCP 服务器

我写了一个小 MCP 服务器放在 ComfyUI 前面,让编码代理人可以直接请求声音,同时在开发游戏时使用:

  • generate_audio:用于单个 SFX、环境音和循环。速度快(8 步 LCM,几秒钟生成一个声音)。小型 Qwen 模型可以可选地将简短的想法转换为 Stable Audio 训练数据集的密集提示词格式。

  • compose_sfx:这是最大的突破。Stable Audio 擅长一次生成单个声音,但对场景不擅长,因此复杂效果被拆分为时间轴上的多层:爆炸 = 尖锐噼啪声 + 低沉爆炸声 + 碎片雨 + 远处尾音。所有层在一个 ComfyUI 作业中渲染,然后通过增益、平衡、淡入淡出和归一化混合。

  • mix_audio:本地时间轴混合用于 stems、循环和转场。

  • Music:用 Stable Audio 制作纯音乐,或使用 MiniMax Music 制作带有旁白的音乐(尽管我在提到的两款游戏中未使用它)。

结果:代理人说“神奇的声音应该是合唱高潮加在 0.4s 处的雷击声”,几秒钟后就在项目文件夹中得到混合好的 WAV 文件。

未成功 / 经验教训

  • 直接生成图片的方法效果不佳,且大多数情况下难以实现(如带有窗口的建筑光照随时间变化等,纯代码实现会更轻松)。

3D

我正在尝试先用图像生成,再通过类似 Hunyuan3D 的工具创建模型(我目前正在做一个复古小球形模型)。它勉强可行,最终效果在渲染后缩小到低分辨率时大致可接受,但有没有更好的方法?其他人使用的更优流程是什么?

如果你想尝试,上述两款免费浏览器游戏在这里:

Megapop:https://waldtier.itch.io/megapop

神秘岛屿:Castaways:https://waldtier.itch.io/mysterious-island-castaways