我本周重做了一个致敬《战锤40K》的小游戏。原版叫《巢都暴乱》,用Python和Pygame写成,是个俯视角的黑暗未来风射击游戏,能跑但只是原型。现在续作《灰烬门之围》换成了Godot 4引擎,哥特式等距视角,两个任务,面向Mac和Android平台。
先交代一件事:这9.5万行GDScript代码、8次提交、大约5小时的工作量,是我指挥一个AI代理完成的。精灵图也是生成的。我提前说明这一点,因为真正有意思的是这个过程里暴露出来的问题。
![]()
代码部分几乎没遇到阻力
引擎移植恰好是AI代理最擅长的那类任务:目标文档齐全,语义明确,正确性可以通过运行来验证。Godot 4加GDScript在各类模型的训练数据里占比很高,代理全程没有卡壳。真正难住它的,是四张同一个兽人的图片。
这里我要坚持一个反直觉的判断:在AI辅助游戏开发中,2D精灵图游戏比3D更难做。听起来不合理,但原因很具体。3D引擎保证了连贯性——一个网格、一个材质、一套光照,每一帧动画都一致,因为变换的是同一个对象,渲染器在替你做这件事。
精灵图游戏里没有共享对象。每张精灵图都是一张独立生成的像素图,于是问题接踵而至:走路动画第二帧的角色可能和第一帧不是同一个人;同一场景里不同精灵的光源方向会漂移;比例会走样,大体型Boss会缩水;四肢在格子边缘被裁掉。这些错误没有任何自动机制能捕获,它们会直接进入成品,让游戏看起来像拼贴画一样别扭。
把提示词当成接口规范来写
解决办法是停止把生成当成“委托美术”,转而把它当成“调用一个带严格模式的API”。每条提示词都钉死几何参数:
- 成品游戏精灵表:精确4列乘3行,1536乘1024画布,等分格子,纯品红#FF00FF背景用于色键导入。
- 不要文字、阴影、烟雾或边框。
- 每个角色完全落在自己的格子里,留足边距;每行脚部对齐同一基线。
- 所有角色以四分之三等距视角朝屏幕右方。
- 四列对应四个连贯的走路循环姿势:左脚在前、经过、右脚在前、经过。
每一句话都必须承担具体功能。品红#FF00FF而不是透明通道,是因为Alpha通道返回结果不可靠,色键剥离是确定性的。显式网格和画布尺寸,是因为导入器按固定坐标裁剪,网格一旦漂移,所有精灵都会错位。“每行脚部对齐同一基线”这句话如果不写,角色走路时就会上下跳动。给姿势命名同样关键——只写“走路动画”会得到四张互不相关的图,把四个阶段明确列出来,它们才构成一个循环。负面约束“不要文字、阴影、烟雾或边框”则是为了阻止模型添加破坏剪影的装饰。
导入器就是编译器,测试就是持续集成
如果提示词是规范,那么导入器就相当于编译器。它按固定坐标裁剪,剥离色键,把结果放进游戏资源管线。这个环节可以自动验证:检查格子数量对不对、背景色是否纯净、角色是否越界。把验证做成持续集成的一部分,生成结果不合格就直接打回,而不是等游戏跑起来才发现问题。
这套流程的核心转变在于:过去我们把AI生成当作一次性创作,现在它变成了一个可测试、可迭代的工程环节。提示词是接口定义,导入器是编译步骤,自动化检查是测试套件。2D精灵图的一致性难题没有靠“更好的提示词”解决,而是靠一套构建系统把生成结果约束在可验证的边界内。
对还在用AI做2D游戏的人来说,这个结论可能比任何提示词技巧都更有用:问题不在生成质量,在于缺少一个能拦住错误产物的流水线。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.