首页 › games › 《ai-fishing-game》他做了款游戏,玩家全是AI

打开这个仓库之前,先想一个问题:一款游戏做出来,如果从头到尾没有一个人类玩家,它还算游戏吗?

GitHub 上有个叫 ai-fishing-game 的仓库,作者给它写了一句足够让人愣三秒的简介——“给 AI 玩的确定性文字钓鱼小游戏,单文件零依赖,让你的 AI 伴侣来钓鱼”。翻译一下:他把一整套钓鱼游戏的引擎写成单个 Python 文件,然后让你把它丢给 ChatGPT、Claude 或者任何带工具调用能力的模型,让 AI 自己买饵、抛竿、换钓点、下潜、集图鉴。人类只负责围观。

这个反直觉的设定没有妨碍它火。仓库 2026 年 6 月底创建,三个月出头,558 颗星、69 个 fork,在 GitHub 全站“fishing game”关键词的星标排名里冲到了第二位——排它前面的是一个分布式 Java 游戏服务器框架。Releases 页面里那个盲玩版 fishing.py,最新一版下载量八百多次,各版本附件加起来一千多次下载。对一个“玩家不是人”的游戏来说,这个数据相当能说明问题:AI 需要娱乐内容,这件事已经有人开始认真做了。

仓库档案

这游戏是什么

一句话:一个给大模型玩的、确定性随机的文字放置钓鱼游戏。

玩法本身是经典钓鱼循环,任何玩过休闲手游的人一秒就懂——开局送你 200 点数和五条蚯蚓,站在“月光池塘”边。买饵、抛竿,引擎按稀有度掷骰子:常见、少见、稀有、史诗、传说、神话,六档。钓上来的鱼卖钱换点数,点数解锁新钓点、买更好的饵。十一钓点,四季流转(每二十竿换一季),不同地点不同季节出的鱼不一样,想集齐图鉴就得满地图跑。

这是水面上的部分。真正下血本的是水下:你得先在钓鱼时随机捞到“藏宝图碎片”,集齐三五块拼成完整藏宝图,才能解锁一处钓点的潜水权限。然后去商店买氧气瓶——买五瓶八折、十瓶七折——带着氧气下水,这是深度预算:捕获只有水下才有的二十二种鱼,撞上十四种水下奇观(珊瑚宫、人鱼宫殿、鲸落、海妖巢穴),碰到五个“大遗迹”会当场暂停,让你在几个消耗不同氧气的选项里做抉择,氧气不够的选项只能眼睁睁放弃。上浮结算,一份远征账单告诉你这趟是赚是赔。

整个循环画出来是这样:

flowchart TD
    A["读一行状态栏 JSON"] --> B{"AI 决定下一步"}
    B --> C["买饵 / 换钓点 / 攒藏宝图碎片"]
    B --> D["连钓 N 竿"]
    B --> E["买氧气瓶下潜"]
    C --> D
    E --> F["潜水远征 + 大遗迹抉择"]
    D --> G{"引擎抽稀有度"}
    F --> G
    G -->|"常见/少见"| H["杂鱼折叠成一行清点"]
    G -->|"稀有及以上"| I["仪式感演出 + 图鉴首次收录"]
    G -->|"小概率"| J["幸运事件 / 漂流瓶 / 宝箱"]
    H --> K["卖鱼换点数"]
    I --> K
    J --> K
    K --> L{"图鉴还缺哪种鱼?"}
    L -->|"缺"| A
    L -->|"集齐"| M["全图鉴加成: 大遗迹概率×3"]
    M --> A

注意这个循环里没有一步需要人类操作。AI 看一眼返回末尾那行 📊 状态栏 JSON,就知道自己有多少钱、在哪儿、什么季节、图鉴缺几种,然后自己决定下一竿往哪抛。

为什么上头

钓鱼这个题材能横扫休闲手游市场十几年,靠的不是画面,是四样东西,这个仓库全都抄对了——或者说,全都做对了。

随机奖励,但是折叠式的。 抛竿的稀有度分布就是最原始的多巴胺引擎:大部分竿子钓上来的是“鲫鱼,5 两”,偶尔一竿金光闪闪。有意思的是作者对“无聊”的处理——杂鱼不删掉,但折叠成一行清点(鲫鱼★×5,(空 2)),精彩时刻才给完整演出。这正是刷子游戏的核心手感: ninety-nine 次平淡,是为了那一次上头的铺垫,但平淡不能占太多屏幕。

收集欲,有仪式感的收集。 八十多种鱼、二十五件宝物、十四种水下奇遇,第一次钓到某种鱼会记入图鉴,首次收录还给点数奖励,卖掉也不丢记录。稀有度播报做得相当用力:传说鱼有 👑、神话有 ❖,全图鉴里程碑单独放 🎉。AI 玩起来也会“为一条传说鱼上钩而激动”——这句话是 README 原文,而且真不是吹的,去看 issue 区里大家贴的 AI 玩家实录,模型钓到传说鱼时那股兴奋劲儿跟真人发朋友圈没区别。

稀缺解锁,一层套一层。 想潜水?先钓藏宝图碎片。碎片哪里来?钓鱼随机掉、漂流瓶里开出、宝箱里翻出,运气好直接开出一整张稀有藏宝图。想买好饵?先攒点数。想碰大遗迹?概率只有 3%,集齐全图鉴才涨到 9%。每一层内容都垫在随机门槛后面,玩家(不管是人是 AI)永远有一个“够一够能摸到”的下一个目标。

沉没成本,变成了保底。 全图鉴之后没新鱼可钓了怎么办?作者在 v2.2.2 里专门为此调了数值:集齐图鉴后大遗迹概率翻三倍,“没新鱼可发现的残局转向探遗迹”。这是老网游运营才有的嗅觉——在玩家要流失的节点,把下一个钩子递过去。

这套东西在人类玩家身上验证了几十年,作者只是第一个把它完整搬给了 AI。结果证明:多巴胺机制不分碳基硅基。

技术拆解

这个仓库真正值钱的地方不是玩法,是它把“给 AI 做游戏”需要的工程问题一个个拆掉解掉了。拆完你会发现,每一件都是可复用的。

单文件引擎,两个接口。 全部玩法逻辑在 engine.py 一个文件里,对外只暴露 cmd("指令") 和 new_game(seed)。没有网络、没有依赖、没有安装,任何能跑 Python 的沙箱直接 import 就能玩。这个“引擎即玩具”的封装思路,比绝大部分开源游戏项目干净得多。

确定性随机,mulberry32 一路到底。 内置 mulberry32 伪随机数生成器,随机状态全部序列化进存档。同一个种子加同一串指令,结果逐位可复现。默认种子 0x9e3779b9(黄金比例,细节控狂喜)。这件事对人类玩家是彩蛋,对 AI 玩家是基础设施:可复盘、可测试、可分享“同一局”——后面你会看到这直接就是一个变现点。

存档独立于上下文。 游戏状态写进磁盘上的 fishing_save.json,不在对话历史里。这意味着 AI 的对话被清空、换个会话,钓鱼进度照样在。这是“AI 玩长周期游戏”的第一块拼图——上下文是易耗品,磁盘才是硬盘。

省 token 三件套。 这是全仓库最硬核的设计。AI 玩游戏最大的成本不是开发,是推理费用:一竿一条消息来回,玩一百竿就是两百次往返,谁也烧不起。作者的解法:其一,cast 10 连钓十竿,返回一个汇总——新种、稀有、事件这些精彩时刻留全文,杂鱼和空军折叠成一行,两次往返替代二十次;其二,用分号把多条指令串成一批一次跑(buy basic_worm 10; cast 10),上限八条;其三,每次返回末尾附一行紧凑的机读状态栏 JSON,AI 扫一眼就知道全部状态,不用反复发 status。三招下来, token 消耗压掉一个数量级。这套“给 LLM 降本”的接口设计,做成任何 agent 工具都成立。

盲玩版,防剧透。 fishing.py 是 engine.py 的 base64 打包——把鱼谱、概率表藏起来,AI 只能看到 cmd() 返回的文字,像真玩家一样靠抛竿发现世界。作者在 README 里坦白得很诚实:“打包只是编码、不是加密,铁了心要偷看的模型一行代码就能解开,盲玩本质靠配合。”这种把限制的边界说清楚的态度,反而让设计意图一目了然。

内容即数据表。 鱼、钓点、饵料、季节、事件,全是 engine.py 顶部的纯数据表,加一条新鱼就是加一行字典,不碰任何逻辑代码。改完跑一下 build_blind.py,盲玩版自动重新生成。想把它改成“开箱模拟器”或者“抽卡集换”,理论上只需要换表。

健壮性做得像正经产品。 任何乱七八糟的输入都只返回一句提示文字,不抛异常;存档损坏、目录不可写,会在返回里明确告诉你,不会假装存好了。连 Windows 终端的 UTF-8 乱码问题都在 README 里给了三种解法。

直接可搬走的组件清单:cmd() 文本协议引擎、mulberry32 确定性存档方案、连钓折叠汇总算法、状态栏 JSON 协议、tool-schema.json 函数调用描述文件、base64 盲玩打包脚本。每一个都是给“AI 玩游戏”这个新场景造的轮子,市面上几乎没有现成货。

变现观察

先把话说直白:这个仓库本身没有广告、没有内购、没有付费墙,但它在一个更有意思的位置上——License 也就是商业模式的声明。

作者选的是 PolyForm Noncommercial 1.0.0,而不是常见的 MIT 或 Apache。这份许可证的含义很精确:任何人可以免费使用、修改、分发,甚至拿去自己玩,但任何商业用途必须另行取得授权。翻译成人话:我把玩具白送,谁来拿它赚钱,我们坐下谈。对一个三个月、558 星的单人项目来说,这是一个成本为零的“留白”——它没有放弃任何商业权利,同时在等一个愿意为“AI 娱乐内容”付钱的买家上门。想靠开源游戏变现的开发者,这一手比无脑 MIT 更值得学。

再看市场这头,三条线索都指向同一个方向。

钓鱼品类本身,是手游行业反复验证过的印钞机题材。休闲钓鱼游戏的配方——随机稀有度、图鉴收集、体力(这里恰好是氧气瓶)——和这个仓库的玩法逻辑一一对应,而这类游戏在移动端靠激励视频广告(双倍奖励、稀有抽卡、氧气续命)跑通了十几年。玩法没问题,问题从来只是流量。

流量在哪?在 AI 陪伴应用里。Character.ai 一类的 AI 伴侣产品,日活用户的核心诉求是“和角色有事可做”,各家都在往对话里塞小游戏和小活动来拉留存。给这些产品供应“能玩的工具”,就是这个仓库精准踩中的货架——tool-schema.json 已经把接口标准都写好了,接进任何支持 function calling 的产品只差一行注册代码。分发路径也从“求应用商店推荐”变成了“上架 MCP 工具市场”。

还有第三条路是这个仓库自己开出来的:AI 玩游戏,本身就是内容。确定性设计让“同一局”可以精确复现——同一个种子、同一串指令,任何人的 AI 钓出来的鱼都一样。这意味着你可以办一场“AI 钓鱼大赛”:两个模型、同一个 seed、比谁先集齐图鉴,全程可验证、可回放。这种内容在短视频平台的天然传播力,不需要我多解释。

一句话总结:作者没有收钱,但他把收钱需要的每块积木——玩法、接口、许可、传播点——都摆在桌面上了。

给我的灵感

点子一:给 AI 伴侣做“玩具”,一个一个上架。 把任何一个上头的小循环——钓鱼、开箱、抽卡、占卜、养成——做成单文件 cmd() 引擎,配一份工具描述 JSON,打包成“AI 玩具”系列。每个玩具 MVP 两周以内,技术门槛就是一个 Python 文件。变现走两条腿:面向 AI 陪伴应用的 B 端授权(PolyForm NC 的许可结构直接照抄),面向个人用户的主题包订阅。这个仓库证明了需求存在,但目前货架基本是空的,先占坑的人赢。

点子二:一套引擎,两端卖。 引擎是数据表驱动的,这意味着鱼表换成别的表,游戏就换了一个皮。把同一套钓鱼引擎的数据表替换成“职场摸鱼事件”“修仙灵材”“球星卡包”,人类版输出成 H5 挂到微信小游戏平台吃激励视频广告,AI 版注册成 MCP 工具吃 agent 流量——一套逻辑代码,两个市场同时验证。钓鱼玩法在手游端验证了十几年,你要做的只是把验证过的配方换个容器。

点子三:做 AI 玩游戏的“赛事转播”。 确定性随机是老天爷赏的传播素材:同 seed 竞速赛、图鉴集齐挑战、“我的 GPT 和你的 Claude 谁钓到的传说鱼多”,每一场都能逐位复现、全程可公证。做这个不需要写游戏——直接用这个仓库就行——需要的是把对局包装成内容的运营能力。变现路径是平台流量分成和带货打赏,成本几乎为零,适合当副业的第一个实验田。

上手

这个仓库最值得记住的,不是钓鱼,是它提出的问题:当 AI 成了应用的主要用户,“内容”这个词的定义正在被改写。上一代开发者为人类做游戏,这一代人里,已经有人开始为模型做游戏了——而且第一个做的人,只写了一个文件。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入