Command Palette

Search for a command to run...

让AI做了一个不一样的H5放置挂机游戏

约 1270 字预计阅读 5 分钟

缘由

最近薅了不少中转站羊毛,每次注册就送几块几十块的余额,加上中转的模型倍率低,这些天暂时实现了tokens自由。

正好手痒想试试gpt-5.6-sol的智力,于是打算让它自己做一个放置挂机游戏。

但是一个普通的放置游戏没什么新意,所以我就想如果做一个所有人共用一个数据会怎样。

每个玩家都能为公共账户赚取金币,也能花掉公共金币购买设施、升级点击收益;所有操作都会实时同步,大家还可以在同一个频道聊天。

这意味这从一个单机游戏变成了联机网游,而且还是全服同屏。

根据这个设想,便开始让AI实现出来。

并且我全程不写任何代码

游戏截图

线上版本:https://nocodb.krjojo.com/ (已被通关)

展示效果

电脑网页版

moblie

技术栈

  • golang
    • gin
  • sqlite
  • websocket
  • html/template + JS + CSS

数据通信由websocket完成,整个游戏只有一份全局状态,由服务端统一计算和保存。浏览器只负责发送点击、购买、强化和聊天等操作,再通过 WebSocket 接收最新状态,避免把关键数值交给前端决定。

更新迭代历程

第一版做得太过平稳,低估了“人多力量大”,只有 10 个设施,上线后半个小时就被升满了。

只好不断增加新设施,逐步拉高后期倍率。

到了后期,金币长度越来越长,服务端单次计算消耗的性能也越来越大,渐渐的,哪怕是go语言构建也吃不消。

load

金币的长度都快11KB了

ws

为了支持无限单位,只好舍弃了精度,用科学计数法来存储。

1.38254395006090713633668356048496727414e223
// 小数点向右移动 223 位

这样保留有限的数字,换来了稳定的计算和传输成本。对于核心乐趣是“看数量级不断增长”的放置游戏来说,这个设计更合理。

加各种各样的小优化,组合起来,才让这个最初的实验逐渐有了一点完整游戏的样子。

规则

  • 所有玩家共享金币、钻石、点击等级和设施状态;
  • 初始每次点击获得 1 金币,点击收益可使用金币升级;
  • 点击收益和升级成本均按 1.05 倍增长;
  • 购买设施后会自动产生金币,设施数量越多,总秒产越高;
  • 设施购买成本公式为 $\text{成本}=\text{基础价格}\times\text{成长倍率}^{\text{已拥有数量}}$;
  • 不同阶段设施的成长倍率为 1.051.251.51.752.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 即可开始打工。

评论
爱评论的人,运气不会太差
0/999

善语结善缘