![一个机器人在游戏手柄上方](/images/blog/blog-37.svg)

HN Claude Code Adoption 2026-09-22T23:47:46.229851

用 opencode 做游戏

今年早些时候,我在陪产假期间挤出的一点空闲时间。带女儿去图书馆、在花园里铲土、把无数玩具放回箱子之余,我做了一个小网页游戏。你可以在 thisdungeoneternal.com 玩到它。

氛围编程行不通

我尝试只通过 opencode 使用 GitHub Copilot,尽量少自己读代码和改代码。这种方式成功地搭出了一个 Phaser JS 的 Hello World 项目,让角色在屏幕上移动,还做了一些像素艺术动画。

那还是在 GitHub Copilot 每月 10 美元无限量套餐的美好年代。也许是因为我用的是非前沿模型(Claude Sonnet),但我发现,当我不给它任何帮助,只以非技术产品经理的身份给它功能指令时,智能体就会把代码写成一团乱麻。它似乎只关心完成当前任务,完全不考虑未来可能的改动。

它创建了一个 MainScene.js 文件,然后基本上一直在这个文件里写,直到文件膨胀到 1200 行,嵌套层次极深。放任它自己搞下去,最终格式和嵌套问题会严重到光是让花括号待在正确的位置、验证 JS 语法正确就要花大量时间。它不会主动写测试,也不会使用格式化或 lint 工具,更不会自动重构来消除重复代码。

好处是,我们开发者未来可能还有饭碗,因为智能体似乎不太擅长为自己创造成功的条件。烦人的是,我们得证明这些东西确实提升了生产力,所以最好学会用它。AI 领域几个月就变一次天,今天用前沿模型做同样的实验,结果可能已经不一样了。

在我看来,答案(也是很多人的共识)是:尽可能多地借助自动化(非大语言模型)代码工具来设置约束。也就是说,格式化、代码检查、测试、静态分析,任何能把大语言模型的不确定输出变成确定结果的手段都算。

真正的突破

当我对代码有了更多话语权之后,确实用 opencode 和 sonnet 做出了一些很酷的东西。我让它给背景音乐加上了随机低通滤波和干湿混响平衡的编程处理。这些全靠 Web API 实现,如果自己去研究,少说也得几天甚至几周。而且不用为了搞懂一个不熟悉的库去翻 YouTube 视频或者啃一堆文档,这种感觉太好了。你只要用大白话描述需求,至少能得到一段可以继续改的代码。

还有一点:我在这款游戏上花的时间少得可怜。开发那段时间我几乎没有空闲。没有 opencode,这款游戏根本不会存在。也许我能搭出个框架,但那些精致的菜单、动画和移动端支持都不会有。

哪些东西不是 AI 做的?

所有音效、音乐和游戏内的精灵图都不是 AI 生成的。我试过做像素画素材,但完全不行。市面上有一些付费工具专门用来生成 AI 像素画,我没试过,但应该比聊天机器人好用。最后我从 itch.io 上买了现成的精灵图。不少配音是我自己录的。音乐是用 Ardour 加一些免费 VST 插件做的。部分音效来自 Wikimedia 开放共享资源。大语言模型只用来写代码和生成城堡的主视觉图。


查看原文