上班摸鱼的时候,你打开一个网页,没有加载动画、没有注册登录,点一下「挑战副本」,屏幕上的小人就开始自动砍怪。十秒钟后怪物倒下,掉了一件装备——破旧的皮甲,词条是「攻击+3」。你顺手卖掉,下一轮挑战已经自动开始。第三十轮,一件紫色的「神器」跳出来,带两条词条,其中一条是暴击伤害+18%。你坐直了。第四百轮,一件五个词条的「独特」武器落进背包,你截了图。
这个网页叫 vue-idle-game,仓库首页的自我介绍极其朴素:「一个全随机的刷装备刷词条小游戏」。作者是长沙的前端工程师 Couy69,GitHub 个人签名只有五个字,「兴趣使然。」就是这个兴趣使然的项目,仓库页面显示 1355 个 Star、250 次 Fork,MIT 协议,一个人写、一个人维护、一个人更新了十几版,最后被授权搬上了 TapTap 和 iOS 商店。今天把它拆开看:刷装备为什么让人上头,以及一个人怎么把「上头」变成一条变现路径。
| 项目 | 内容 |
|---|---|
| 仓库 | Couy69/vue-idle-game |
| ⭐ Star / Fork | 1355 / 250(据仓库页面,2026-10) |
| 语言 | Vue(Vue CLI 工程,npm run serve 起服务) |
| License | MIT |
| 作者 | Couy69(couy),长沙,个人账号,9 个仓库,签名「兴趣使然」 |
| 最近更新 | 2023-01-28(最后一次版本更新为 2021 年初的 1.3.3) |
| 在线试玩 | couy.xyz(README 附的官方入口) |
从贡献者栏看这就是一个标准的个人项目:没有组织、没有团队页,连 README 里都留着「作者现在沉迷赛博朋克2077」这种只有独狼才写得出的更新公告。作者本职做前端图形方向,另有一个 242 Star 的 Fabric.js 画板项目,游戏只是副业——这个背景很重要,后面讲技术选型会回头看。
一句话:一个纯浏览器的暗黑式刷宝游戏——你操纵一个勇者反复挑战副本,怪物掉落属性完全随机的装备,你用更快的击杀去够更高难的图,用更好的装备去开启无尽模式,卡关了就转生重来,带着永久加成再刷一轮。
游戏说明书短得像便签:通过副本获得装备与金币;装备分破旧、普通、神器、史诗四档,另有极难掉落的「独特」档(五词条);主角每秒回血 2%,默认暴击伤害 150%;通关后开启无尽挑战。就这么多规则,剩下的全部交给随机数。整个游戏没有剧情、没有地图美术、没有音效演出,装备品质用颜色区分,战斗过程是一行行滚动的结算文字——它把「角色扮演」剥得只剩数值和掉落,反而把刷宝这件事的骨架露得干干净净。
flowchart TD
A[选副本 / 无尽挑战] --> B[自动战斗结算<br/>每秒回血2% · 暴击150%]
B -->|通关| C[掉落判定<br/>独特装备约4%掉率]
B -->|卡关| H[打不过了]
C --> D[随机装备入库<br/>品质×词条 双重随机]
D --> E[对比 / 穿戴 / 锁定<br/>低品质自动出售]
E --> F[金币入账]
F --> G[强化冲+13 / 词条重铸 / 商店刷新]
G -->|数值变强| A
H --> I[转生<br/>转生点数永久强化基础属性]
I -->|带着加成再开一轮| A
看这个循环图会发现一件事:玩家唯一的主动操作是「选哪张图」和「穿哪件装备」,其余全部由系统自动推进。刷宝游戏的成瘾性恰恰建立在这一点上——把玩家从操作者变成验收员。
第一层:双重随机,掉落即开箱。 装备的随机不是「随机出一件剑」,而是先掷品质(破旧到独特五档),再按品质掷词条数量,最后每条词条独立掷属性类型和数值。三段随机叠在一起,意味着每一次掉落都是一次独立的开箱:白装也有三条废物词条,紫装可能偏偏出你缺的暴击。行为心理学里这叫可变比率强化——奖励不按固定次数出现,斯金纳箱里鸽子在这种机制下啄杆最勤。仓库 README 白纸黑字写着独特装备掉率 4%(早期版本 2.5%,后来作者调高了),这个数字的选择本身就是设计:两百次副本出一根,一次摸鱼下午茶刚好两三根的期待感。
第二层:对比微决策,制造「金体验到」瞬间。 掉落的每件装备都和新旧对比并排显示,多 2% 攻击还是多 8 点生命,玩家在三秒内做完一道算术题。这类高频微决策是刷宝游戏的隐藏引擎:它让玩家的注意力始终有一件事可做,又不会重到像上班。作者后来加了「重铸时显示当前词条品质等级」,等于把「这条词条是不是毕业属性」变成一个可以持续优化的目标——优化目标越细,玩家停留越久。
第三层:自动化是加速器,不是替代品。 这是最值得抄的一点。版本更新日志里,「自动挑战」「自动出售(低于神器)」「自动强化」「无尽自动挑战」是一步步加上去的,每一步都砍掉一段重复劳动。直觉上自动化会让玩家流失——没事可做了嘛。实际相反:把枯燥环节交出去之后,玩家的单位时间掉落量翻了几倍,多巴胺供给密度同步翻倍,剩下的操作(对比、穿戴、重铸)恰好是最好玩的部分。所有刷宝类手游的「扫荡券」「连抽十次」都是同一个原理的产品化。
第四层:转生把挫败感折算成资产。 卡关是这个品类必然发生的负反馈。vue-idle-game 的处理是 1.3.0 版加入的转生系统:清空等级,按进度发放转生点数,永久强化基础属性。负反馈瞬间被折算成下一轮的初始优势,「归零」变成了「带着存档重来」。同类机制在放置游戏里叫 prestige,在roguelike 里叫 meta progression,本质相同:失败也要产出。
第五层:近失效应与商店钩子。 商店可以用金币刷新,且有小概率刷出独特装备,刷到时会有专门提示。玩家明知概率低,还是会点几下刷新——「差一点就出」的心理和老虎机拉杆同源。配合背包 25 件容量上限的温和压力,你永远有一件装备待处理,永远有理由再打一轮副本。
整个项目是一个 Vue CLI 标准工程,npm install 之后 npm run serve 就能跑起来,打包直接 npm run build,产物是静态文件,扔任何静态托管都能上线。没有游戏引擎、没有 Canvas 渲染层、没有后端——战斗结算和掉落生成全是纯函数式的数值计算,UI 用 Vue 的响应式直接绑。这个选型对前端开发者极其友好:你会写表单后台,就会写这个游戏,因为它的技术内核就是「一堆带权重的随机表 + 一个 tick 定时器 + 一个状态对象」。
几个可以直接搬走的设计:
装备生成器(最值钱的模块)。 品质表定掉率,词条池定属性类型,每条词条带独立的数值曲线(更新日志里专门提过「调整了百分比词条的曲线,前期低等级时获得更高属性」——成长曲线是按体验调的,不是按数值调的)。整个生成器就是一个嵌套的随机函数,一百行代码量级,换一张词条表就能变成钓鱼游戏、开箱游戏、抽卡游戏。
副本调度器。 1.3.0 之后副本按人物等级随机生成,带 30 秒刷新冷却,难度线性增长(作者自述 100 级副本强度是 1 级的约五倍)。这解决的是内容消耗速度问题——随机生成的图永远刷不完,美术量为零。
战斗与挂机。 回血 2%、暴击 150% 这些常量写在明面上,战斗是按秒结算的数值循环,且支持切到后台继续推进——更新日志里还专门修过「后台挑战副本失败时自动回血失效」的 bug,说明挂机是核心场景而非附加功能。五分钟自动保存、存档导入导出(作者特意提示背包太满存档会变长)、右下角一键清档,这套存档三板斧是所有网页游戏的标配基建,这里都有现成实现可抄。
前后端的分界线。 有意思的是作者另开了一个仓库 idleGame-service,用 KOA2 给这个游戏写服务端,但主线游戏始终是纯前端 + 本地存档。网页版用 localStorage 就够,服务端只在你要做排行榜、联机或者防作弊时才需要——这个「先纯前端、后补服务端」的演进顺序,是个人开发者最省力的路径。
MIT 协议意味着上面所有东西你都可以合法地拆走重用。对想入门游戏开发的前端来说,这可能是全 GitHub 上门槛最低的刷宝游戏完整教材。
这个仓库的变现路径,比大多数开源游戏都完整,因为它真的走完了三步:
第一步,开源网页版当流量入口。 couy.xyz 免费可玩,GitHub 收 Star,玩家口口相传。更新日志里作者提过一句关键观察:「从后台来看用手机玩的用户好像也不少」——于是 2020 年 11 月专门做了移动端适配。免费版同时完成三件事:验证玩法、积累用户、充当演示 Demo。
第二步,授权给移动端运营方。 README 的授权说明写得很直白:网页版授权给 TapTap 开发者「不会社交的二哈」运营(作者本人继续负责更新),iOS 端也完成授权,以《轮回勇者传说》的名字上了 App Store。也就是说,代码开源、网页免费,但手机端的商业运营权是授出去的——这是个人开发者很值得记住的模式:开源不等于放弃商业化,你保留的授权权本身就是资产。移动端接入广告或内购,授权方赚钱,作者收授权费并继续掌握更新权。
第三步,作品集价值。 1355 Star 的游戏加一个 242 Star 的图形组件库,对一个前端工程师的职业身价贡献,可能不比工资少。开源游戏是最容易出圈的程序员副业作品,因为它能被点开、被玩到、被转发。
同类对照也支持这条路:bitburner 同样是开源网页放置游戏,网页免费、Steam 版收费照样卖出去了;Melvor Idle 一个人做挂机 RPG,从网页版做到被 Jagex 官方发行;吸血鬼幸存者把「刷怪掉宝」的爽感卖到了几十亿美元流水级别。刷宝是一个被反复验证过付费意愿的品类,缺的从来不是商业模式,是那个让人愿意点开第二局的随机数手感。
点子一:换皮复刻,把「副本」换成任何高频场景。 骨架全留——品质表、词条池、强化、转生,只把战斗换成钓鱼(钓上来的鱼带词条)、开快递(包裹里开出随机物品)、考古(文物带年代词条)。MIT 协议允许直接基于原码改,纯前端两到三周能出 MVP。变现走微信小游戏:广告位天然存在——「看激励视频,掉落翻倍一小时」就是为这个品类设计的,可变比率强化加广告奖励,是免费游戏里被验证过千次的最稳组合。
点子二:给循环加一层社交攀比。 原版是纯单机,你可以加三样东西:词条图鉴(收集欲,全服多少人造出过五词条毕业装)、每日种子副本(当天所有人打同一张随机图,比通关速度)、毕业装展示码(导出存档分享,别人一键导入试穿)。这三样都不需要重游戏逻辑,但把单机循环接上了攀比和晒图,留存曲线会明显变陡。工作量约一个月,适合在点子一的壳上迭代。
点子三:不做游戏,卖刷宝的铲子。 把「品质×词条」装备生成器抽成独立的 npm 包,配一个在线的词缀表可视化编辑器——小游戏开发者填表就能生成自己品类的掉落系统。社区里已经有先例:为放置游戏服务的 break_infinity.js 这类数值库养活了一整批增量游戏,说明这个生态愿意为基础设施付费。变现走 GitHub Sponsors 加付费模板,量不大,但几乎零边际成本,而且和任何一篇游戏作品都不冲突。
npm install → npm run serve → 浏览器打开。建议第一件事是去看掉落装备的生成函数,第二件事是把词条表改成你自己的题材——一个能让人截图发群的毕业装系统,离你只有一张表的距离。[!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 等场景全覆盖。
