最近尝试使用Deepseek Harness,顺便测试GLM基模的能力。参考这篇博客,做了一次简单的验证------给定提示词,让AI开发简单的游戏。
提示词如下:
1、开发一个致敬国产动画电影《牛来》的3D网页跑酷冒险游戏。
2、必须先用Firecrawl联网搜索《牛来》这部电影的视觉风格和角色设计资料。
3、游戏主角是疯狂动物城的尼克狐。
4、开发过程中通过Loop Engineering方式推进:每完成一个功能模块就自己在浏览器中验证效果,发现问题立刻修复,确保最终交付时所有功能正常运行、没有报错。
下面是简单的技术报告。
一、项目背景
《狐来》最初只是一次 AI 编程能力测试。我想看看,在持续提出需求并让 AI 自己阅读代码、实现功能、运行测试和修复问题的情况下,一个简单的网页小游戏最终能发展到什么程度。
项目从基础的三轨跑酷开始,后来逐渐加入四张地图、十二条赛道、自动跑关、开放探索、技能、载具、角色动画、合成音乐和移动端操作,意外变成了一个真正可以玩的 3D 浏览器游戏。
二、使用的技术
项目的技术栈并不复杂:
- HTML 和 CSS:菜单、HUD、结算页面与移动端界面;
- 原生 JavaScript:游戏状态、物理、碰撞、输入和自动驾驶;
- three.js:3D 场景、角色、道路、灯光和镜头;
- Web Audio:用代码合成背景音乐与音效;
- localStorage:保存地图、皮肤、模式和最佳纪录。
项目没有使用后端、数据库、前端框架或构建工具。启动一个静态服务器即可运行,发布时直接上传 publish/ 文件夹。
当前项目约有 7,800 行 JavaScript ,发布包共 17 个文件、约 1.68 MB。
三、主要功能
游戏目前包含:
- 三轨换道、跳跃、滑铲和障碍碰撞;
- 大平原、篮球场、星际环道和霓虹都市四张地图;
- 每张地图三条随机赛道,共十二条;
- 关卡、自动、无限和开放探索四种模式;
- 自动避障、自动使用技能和主动追逐金币;
- 自行车、摩托车、护盾、吸铁石等道具;
- 狐狸尾巴、耳朵、手臂、跳跃和冲线庆祝动画;
- 键盘、触屏和手机虚拟摇杆操作;
- 程序化模型、纹理、场景和音频。


四、项目中比较有意思的技术点
1. 程序化生成
游戏没有使用外部角色模型。狐狸、公牛、车辆、建筑、陨石和道路主要由 three.js 基础几何体组合而成,部分纹理和远景也由代码生成。
这样做降低了素材依赖,修改造型时只需要调整代码参数,很适合 AI 快速迭代。
2. 共享弯道系统
道路、障碍、金币、公牛和镜头都使用同一套赛道曲线。这样在连续弯道中,各个物体仍能保持正确的位置和方向,而不是只有道路在视觉上弯曲。
3. 自动跑关
自动模式会根据前方障碍决定换道、跳跃或滑铲,并在安全时选择金币较多的路线。
它的第一版并不可靠,完整压力测试中一度只有 1/12 局能够通关。后来加入速度相关的起跳时机、车道规划、目标锁定和紧急纠错,最终达到 12/12 通关。
在相同随机序列的测试中,主动追币策略收集了 5,124 枚金币,关闭追币时为 3,204 枚,提升约 60%。
五、测试方式
项目内置了 259 条自动化断言,覆盖状态机、碰撞、地图、动画、自动模式、开放探索、移动端操作和通关流程。
测试使用固定的 1/60 秒时间步直接推进游戏,不依赖真实帧率,因此可以快速、稳定地复现问题。
项目还提供:
- 完整自动跑关压力测试;
- 固定状态截图模式;
- 运行时诊断信息;
- 相机 NaN 检测与恢复;
- 独立发布目录回归测试。
六、AI 编程过程中的发现
AI 最明显的优势是开发范围很广。它可以连续处理 3D 渲染、碰撞、动画、音频、UI 和移动端输入,让一个人快速尝试原本不熟悉的领域。
但 AI 的第一版实现通常只是"逻辑上看起来合理",不一定真的可靠。例如:
- 自动起跳过早,狐狸会在碰到障碍前先落地;
- 一个变量没有初始化,最终用
NaN污染了相机位置; - 冲线功能虽然完成了,但动作很少,切换结算时显得僵硬;
- 清空对象数组时忘记隐藏对象池中的模型,导致重新开始后残留物体。
这些问题说明,AI 不能代替测试。真正提升项目质量的,是"实现---运行---观察---修复"的连续反馈循环。
七、结论
《狐来》使用的单项技术都比较基础,但组合起来已经形成了一个中等复杂度的实时交互系统。
这次实验没有人工开发对照,也没有完整记录 token、费用和每轮耗时,因此不能严谨地宣称 AI 将效率提高了多少倍。不过它至少说明:AI 可以显著降低跨领域开发的门槛,并把创意到可运行版本之间的距离缩短很多。
我最大的感受是,AI 最有价值的地方不只是"帮我写代码",而是让试错变得足够快。最初只是想测试一下性能,最后却因为不断看到新的可能性,把一个小玩具做成了意外有趣的游戏。