一个基于zcode制作的第一视角手势赛车游戏

国庆在家,恰逢几个大模型都在赠送福利,领取后利用晚间零碎的时间,做了一个第一视角手势赛车游戏。分享如下:

使用的平台:智谱的Zcode,调用的大模型:GLM-5.3-flash,思考级别:高

需要说明的是,最开始的时候,我并不知道游戏该怎样做,不知道界面怎样设计,使用什么技术,最终交付是APP还是网页等。但我知道,你想让AI帮你做事,必须给他完整需求,所以使用其他有免费额度的大模型帮我写了一份游戏制作方案,然后交给Zcode,首先让Zcode帮我审核方案文件,让Zcode帮我确定是否可行。然后Zcode帮我对方案作了些微调,之后开始帮我生成代码。

但生成的过程是一波三折的,比如一开始帮我生成的是一个椭圆形的轨道,如下图:

摄像头画面也能识别显示,但无论怎样作手势,都没有任何反应。

后来与AI交互,手势交互有了,但画面完全不像赛车游戏。一度想是不是要放弃当前项目,从头开始,是不是会更好些,但又舍不得之前消耗的积分。

于是再和AI交互,明确说出了自己的需要,让AI帮我改,改了多轮,界面终于有点像个样子了,同时把手势识别的工具也作了调整,换成了本地可流畅运行的工具。最终形成以下界面:

完成后,我让Zcode生成一份可在其他电脑安装的安装包,整个文件放在文末,安装包的文件结构如下:

赛车游戏/
├── 启动游戏.bat ← 双击即玩(自动启服务+打开浏览器)
├── 游戏说明.md ← 新增:玩法、手势操作、规则、常见问题
├── 移植指南.md ← 移植到其他电脑的完整步骤
├── src/
│ ├── first-person-racing-final.html ← 游戏本体
│ └── images/ ← car.png + stone.png 贴图
└── libs/mediapipe/ ← 手势识别引擎8个文件(全部本地,无需联网)

因为调试的时间周期较长,耗费的积分也比较多,所以下次如果做同样的项目,能不能更快捷的完成,于是我给Zcode一条指令:

帮我总结上面的项目,写一份使用zcode创作该项目所需的提示词

Zcode的总结如下:

项目总结

第一视角手势赛车游戏 —— 从最初的多模块 TypeScript 项目,经过多轮迭代,最终收敛为一个零依赖、可整体移植的纯静态项目:

方面最终形态
技术栈纯 HTML + JavaScript(Canvas 2D)+ MediaPipe Hands(WASM 本地化)
运行方式双击 启动游戏.bat → 本地 8080 服务 → 浏览器,完全离线
核心玩法OK手势倒计时开局;张手加速/握拳刹车/食指指向按偏角转向(限速40);5公里赛程;S弯道赛道;动态障碍物(出发2秒静默、间隔≥2秒、同屏最多1个);撞车“车仰人翻→游戏结束”,完赛显示用时
健壮性file:// 检测、事件+轮询双保险初始化、20秒看门狗带完整诊断遥测、键盘备用控制
工程化?nocam 调试参数、像素采样自动化验证、三份文档(游戏说明/移植指南/创作提示词)

踩过的关键坑(都已写进提示词避免复现):MediaPipe UMD 包不能 ES module 导入;本地部署缺 binarypb/tflite 会静默 abort;WASM 被 file:// 拦截;中文 bat 的 GBK 编码问题;摄像头流就绪时序竞争。

Zcode帮我生成的提示词截图如下:

下面的是完整提示词,可直接下载:

总结:

人机交互是未来我们工作的一种重要形态,本次最终的作品当然还有很多提升空间,但通过本次实践仍然可以带来一些启发,主要有以下几点:

  1. AI可以为你生成方案,但你一定要有自己的想法,最好是先把你的想法告诉AI,让AI生成方案。生成的方案一定要自己去审核,不要迷信AI。
  2. 人机交互会有很多工具可选:Zcode、豆包、WorkBuddy、codex等,都是不错的工具,这些工具都可以调用多种模型,复杂任务尽量用好模型。比如我在使用Zcode创作该项目时,开始使用赠送的GLM-4.5-Air模型,虽然也是免费,但即便多轮交互,告诉它问题所在,就是解决不了问题,使用5.3-falsh就好了很多,好模型是可以节约时间的。
  3. 完成一个项目,要及时总结,如果这个项目是需要复用的,建议将其提炼生成skill。这样的好处,可以大大提升下次完成类似项目的效率,且可以减少token消耗。也可以让AI提炼生成提示词,很多时间我们发现,项目进展不顺利是因为我们给AI的提示词不明确,AI生成的提示词可以给我们做项目带来启发,本质上也是在帮我们节约时间,节约token。

最后附上完整的项目文件,感兴趣的可以自己尝试一下,相信大家可以做得更好。

1人评论了“一个基于zcode制作的第一视角手势赛车游戏”

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部