让AI做了一个不一样的H5放置挂机游戏
缘由
最近薅了不少中转站羊毛,每次注册就送几块几十块的余额,加上中转的模型倍率低,这些天暂时实现了tokens自由。
正好手痒想试试gpt-5.6-sol的智力,于是打算让它自己做一个放置挂机游戏。
但是一个普通的放置游戏没什么新意,所以我就想如果做一个所有人共用一个数据会怎样。
每个玩家都能为公共账户赚取金币,也能花掉公共金币购买设施、升级点击收益;所有操作都会实时同步,大家还可以在同一个频道聊天。
这意味这从一个单机游戏变成了联机网游,而且还是全服同屏。
根据这个设想,便开始让AI实现出来。
并且我全程不写任何代码
游戏截图
线上版本:https://nocodb.krjojo.com/ (已被通关)
展示效果


技术栈
- golang
- gin
- sqlite
- websocket
html/template+ JS + CSS
数据通信由websocket完成,整个游戏只有一份全局状态,由服务端统一计算和保存。浏览器只负责发送点击、购买、强化和聊天等操作,再通过 WebSocket 接收最新状态,避免把关键数值交给前端决定。
更新迭代历程
第一版做得太过平稳,低估了“人多力量大”,只有 10 个设施,上线后半个小时就被升满了。
只好不断增加新设施,逐步拉高后期倍率。
到了后期,金币长度越来越长,服务端单次计算消耗的性能也越来越大,渐渐的,哪怕是go语言构建也吃不消。

金币的长度都快11KB了

为了支持无限单位,只好舍弃了精度,用科学计数法来存储。
1.38254395006090713633668356048496727414e223
// 小数点向右移动 223 位
这样保留有限的数字,换来了稳定的计算和传输成本。对于核心乐趣是“看数量级不断增长”的放置游戏来说,这个设计更合理。
加各种各样的小优化,组合起来,才让这个最初的实验逐渐有了一点完整游戏的样子。
规则
- 所有玩家共享金币、钻石、点击等级和设施状态;
- 初始每次点击获得 1 金币,点击收益可使用金币升级;
- 点击收益和升级成本均按
1.05倍增长; - 购买设施后会自动产生金币,设施数量越多,总秒产越高;
- 设施购买成本公式为 $\text{成本}=\text{基础价格}\times\text{成长倍率}^{\text{已拥有数量}}$;
- 不同阶段设施的成长倍率为
1.05、1.25、1.5、1.75或2.0; - 每次点击有 1% 的概率获得 1 枚钻石;
- 已购买的设施才能强化,每次强化消耗 1 枚钻石,使该设施的单位收益乘以
1.01; - 强化次数没有上限,第 $n$ 次强化后的单位收益为 $\text{基础收益}\times1.01^n$。
项目源码
项目地址:https://github.com/miniwater/click
项目不依赖外部数据库和前端构建工具,安装 Go 后即可编译完成。
也可以之前下载已编译版本:https://github.com/miniwater/click/releases
然后访问 http://localhost:3001 即可开始打工。