跳到正文
zenn · 游戏开发社区· 来源· ワドメ堂·· 11 小时前AI 评分61

现役卡车司机用Claude Code制作浏览器游戏的故事

現役のキャリアカー運転手がClaude Codeでブラウザゲームを作っている話

正文 · AI 翻译

前言

在担任汽车托运车(可一次装载并运输多台车辆的卡车)司机的同时,我独自开发了一款可在浏览器中游玩的装车游戏《我们是汽车托运工》。

代码几乎全部由 Claude Code(Anthropic 的 AI 开发工具)代为编写。画面、音效、背景音乐和语音,也是请另一款生成式 AI 制作的。

本文讲述「完全交给AI能做到什么程度」,以及实际操作中遇到的瓶颈和提高制作效率的技巧。聊的不是游戏内容,而是与AI协作制作的方式。

可玩内容(免费・无需注册): https://wadoooomedou.itch.io/we-are-car-carriers
介绍站点: https://bokuriku-game.netlify.app/

正在制作的内容

  • 2D浏览器游戏(HTML5 Canvas + JavaScript)
  • 再现将汽车逐台装载到7台层叠式半挂车上并固定到位的过程
  • 地板的升降、坡道、汽车物理模拟(因台阶下沉、碰撞轮挡等)也都是参照实车运动精心制作的

没有使用框架。只需放置文件即可运行,可以直接放到 itch.io 或 GitHub Pages 上。

1. 先确定角色和分支

如果让 AI 在一次对话中做所有事情,它会在各处改写并破坏代码。
因此,我在仓库根目录下的 CLAUDE.md(AI 在对话开始时必定会读取的备忘)中,将角色分成了三类并写入。

役割 可以触摸的东西
開発 游戏代码
图形 画像素材
宣传·网站 介绍网站
  • 一次对话中,只扮演一个角色
  • 分支也按角色划分(dev/… graphics/… site/…)。
  • 跨角色的委托事项,需带编号写在备忘录(用于传递请求)中再交付。

跨越会话后,AI 不会记得之前的内容。
因此我加入了作业中断时必须让其在备忘录中写明"做了什么、接下来要做什么"的规则。下一个会话只需阅读该备忘录即可从断点继续执行。

2. 在云端验证(这一步最卡壳)

我大多数时候只用手机工作,所以让 AI 在云端环境中运行。这里有两个坑。

后台运行的处理每次回复后都会消失

无法将开发服务器或冗长的验证"放到后台运行、之后再查看结果"。因为每次AI完成回复,后台处理就会消失。"服务器偶尔会崩溃"的真相正是如此。

解决办法是将验证整合为一条命令,在前台一直运行到结束。

# サーバー起動 → 通しプレイ → 結果表示まで、1コマンド
bash .claude/tools/verify.sh 7

使用无头 Chromium(Playwright)打开游戏,通过实际操作让7辆车堆叠起来,检查是否存在扣分或错误。耗时数分钟的验证交由子代理在前台执行,主对话中则继续进行其他工作。

\n 验证脚本掩盖了真正的bug

当车碰到挡车器时,出现了车从画面中消失的bug。原因是函数内部 fm(拥有地面机制的对象)未被定义。

// seatCar の中で定義していない fm を使っていた
fm.deckDrop(...)  // ReferenceError: fm is not defined

为什么验证时没有发现?因为验证脚本在全局作用域中放置了 window.fm。即使主代码中忘记定义 fm,也能在全局中找到并正常运行,错误因此被掩盖了。

修复方法有两个。

  1. 在主体的函数中正确获取 fm
  2. 验证脚本在运行前需先 delete window.fm

教训是"验证工具有时会掩盖本体的缺陷"。如果把验证也交给AI,就不容易察觉这类偏差,因此我在 CLAUDE.md 中将其作为教训留下。

另外,为了方便用户端调试,我在URL上加了 #debug=1 这个标志,使画面显示车辆的状态和最后一个JavaScript错误。通过这一点,就能从手机复现时的截图中找出原因了。

3. 让AI用数学公式做出"与实车相同的动作"

悬空踏板(第5节与第6节之间升起的小地板)的运动,是根据实车照片和视频,按四杆机构(四根杆组成的环形机构)来计算的。

  • 四个连杆:车体、前立柱、地板、后立柱
  • 改变前立柱角度时,后部安装点在地面滑动 → 后立柱缩短 → 固定后由两圆交点确定姿态

我交给AI实车照片和我的说明("这里会缩短""在这里停住"),让它写出公式。数值由我在实机上观察后修正,比如"再往后""更接近水平"。公式由AI负责,现场的正确性由我负责,这就是分工。

4. 图像、声音、语音分别交给不同的AI

  • 代码:Claude Code
  • 插画:ChatGPT 图像生成(草稿)+ 手动修正
  • 音效、BGM、调度员声音:ElevenLabs

把任务全交给一个AI反而效果不太好。一是因为各AI擅长的领域不同,二是为了控制AI的使用费用(每周限额)。我还会把简单的任务分给轻量级模型(Haiku),以应对每周限额。

试着做之后才知道的事

  • 越是让AI来承担,决定"做什么"和"对不对"的人类工作就越重要。就我而言,实际现场的知识的
  • 养成书写备忘录(CLAUDE.md·委托箱·交接)的习惯,是即便会话更换、工作仍能延续的最大支撑。
  • 验证要看的是实际运行的结果,而非AI的回答。而且还要对验证工具本身保持怀疑
  • 仅凭一部手机也能做到这个程度

结语

游戏目前正在公开浏览器版(测试版)。也在考虑应用化(iPhone/Android)。开发背后的故事,写在note「ワドメ堂」上。

如有任何问题或感想,请在评论区留言。

来源:zenn · 游戏开发社区 · zenn.dev