你如果去问大多数开发者“什么游戏能赚钱”,十有八九会得到一个劝退答案:做画面,买素材,上Steam。但今天这个仓库偏偏反着来——没有一张立绘,没有一段动画,界面全是表格和按钮, player 是一行行数字。它叫 Basketball GM,一个人写的网页篮球经营游戏,跑了十来年,作者靠它全职吃饭。
对想搞副业的开发者来说,这个仓库的价值不在于“抄一个篮球游戏”,而在于它验证了一条极其省钱的路线:零美术 + 纯数值 + 网页免费玩 + 订阅变现。整条链路上每个环节的开销都低到令人发指。
| 项目 | 情况 |
|---|---|
| 仓库 | dumbmatter/basketball-gm |
| 作者 | Jeremy Elberson(GitHub: dumbmatter),个人开发者 |
| 语言 | TypeScript(早期为 CoffeeScript/JS,后整体迁移) |
| Star | 四位数量级,长期活跃(据仓库页面) |
| 更新 | 至今持续迭代,提交频率以天计(据仓库页面) |
| License | 开源,具体以仓库 LICENSE 为准 |
| 在线版 | zengm.com(原 basketball-gm.com,免费可玩) |
一个人的项目能连跑十年、几乎天天有提交,这件事本身就比 Star 数更说明问题——它是被收入持续供养的,而不是被热情燃烧三个月就熄火的典型个人仓库。
一句话说清:你是 NBA 球队的总经理兼教练,从选秀、交易、签约、排兵布阵到看比赛结果,全程在网页上点按钮,目标是建立王朝。
没有画面怎么“看”比赛?游戏生成一段文字战报和比分走势,你看着自己82分的核心第四节6犯离场,看着交易来的替补砍下生涯之夜——脑补,全靠脑补。而这恰恰是这类游戏的第一性原理:画面越少,想象越满。
核心循环长这样:
flowchart TD
A["开档:接手一支球队"] --> B["查看阵容/薪资/财政"]
B --> C["操作决策"]
C --> C1["交易:AI 会跟你讨价还价"]
C --> C2["签约/续约:工资帽内抠钱"]
C --> C3["排兵布阵:轮换/战术"]
C1 --> D["模拟比赛日"]
C2 --> D
C3 --> D
D --> E["即时反馈:文字战报/数据/士气/伤病"]
E --> F{"赛季结束"}
F --> G["选秀乐透:抽签定新人"]
G --> H["休赛期:自由市场/球员老化/退役"]
H --> I{"夺冠了吗?"}
I -- "没夺" --> B
I -- "夺冠:冠军数+1" --> J["王朝成就解锁"]
J --> B
D -.->|"随机奖励:新秀爆发/绝杀"| C
注意图里那条虚线:每一场比赛都是一次开盲盒。这是整个循环能转起来的燃料。
这类纯数值经营游戏的上头机制,拆开来其实是五根杠杆,每一根都能对应到具体玩法细节:
1. 没有天然的停止点。 打一局FPS,一局结束你天然会放下手机。但 Basketball GM 的循环是“赛季→选秀→休赛期→新赛季”,休赛期结束的那一瞬间,新赛季又开始了。“就再看一眼新秀”和“再打一个赛季”之间没有边界,你一抬头,凌晨两点。放置游戏靠数值膨胀留人,经营模拟靠日历推进留人,这是后者更凶的地方——它模拟的是时间本身。
2. 随机奖励精确地埋在每个节点上。 选秀乐透是老虎机:抽中状元那种多巴胺,和开卡包是同一种东西。球员潜力值是雾里看花——你签下一个“潜力A-”的19岁新秀,他要两三个赛季才揭盅,这段悬而未决的等待期,就是留存期。AI交易机制更是把老虎机嵌进了谈判桌:你永远不知道报价发过去对方是秒拒还是秒同意,秒同意的那一下,爽感直逼抽到SSR。
3. 进度感是复利式的。 一个新秀从潜力A-练成联盟第一人,横跨七八个游戏赛季。这种慢进度有个特点:你投入越久,越舍不得走。沉没成本在这里不是贬义词,是留存工具。游戏还配合做了名人堂、历史记录、冠军计数器——你的第3个冠军和第9个冠军意义完全不同,后者意味着王朝,意味着截图发到社区里炫耀。
4. 决策有真实的策略深度。 工资帽、奢侈税、鸟权、-max合同、买断,这套财政系统是从真实NBA规则里抠出来的。它意味着玩家会主动去看攻略、算公式、做Excel——玩家开始自己做表的瞬间,就是他戒不掉的瞬间。这一点对中文玩家尤其致命:中国体育社区的“云经理”文化(虎扑里排兵布阵的帖子)根基极深。
5. 社交攀比自带出口。 单机游戏怎么攀比?靠存档的含金量。社区里晒“82胜0负”、晒“二轮秀养成MVP”、晒“摆烂三年抽中三个状元”,这些战绩图全是游戏数值自动生成的天然传播素材——不需要开发者做任何分享功能,玩家自己会做图发帖。
把这五根杠杆抽象一下,你会发现它们和《A Dark Room》《Football Manager》是同一族:用文字和数字塞满你的想象力,再用日历和时间锁住你的退出路径。
这才是对开发者最值钱的部分。这个仓库的架构选型,几乎每一条都是为了“一个人维护十年”服务的,可以直接抄:
1. 游戏逻辑跑在 Web Worker 里。 模拟一个赛季可能要算几千场比赛,放在主线程里页面直接卡死。Basketball GM 把整个模拟引擎放在 worker 进程,UI 线程只负责收发消息和渲染,用户操作时永远跟手。这套“sim in worker”的架构,是你做任何放置/经营/模拟游戏的地基,照搬即可。
2. 存档用 IndexedDB,而且封装成了库。 多个存档位、自动保存、云端同步前的本地兜底,全靠浏览器数据库。作者为了把 IndexedDB 的回调地狱变成 Promise,自己写了个封装库(backboard)并开源。你做网页游戏存档,这一层不用再发明轮子。
3. jsbi:一个顺手改变生态的副产品。 薪资空间的计算要求金融级精度,JS 的 Number 会丢精度,而当年 BigInt 还没普及。作者干脆自己写了纯 JS 实现的 BigInt 库——jsbi。这个库后来被 Babel 生态采纳为 BigInt 的官方 polyfill,成了基础设施级别的开源项目。一个游戏副业顺手养出一个被 V8 生态引用的库,这是个人开发者技术影响力复利的最佳样本。
4. 求助真随机:random.org。 选秀乐透的抽签结果,据仓库文档,走的是 random.org 的真随机数 API。用意很妙——乐透是这个游戏最敏感的随机点,玩家输了会怀疑“伪随机坑我”,真随机数从源头堵住了“黑箱操纵”的指控。做抽卡类玩法的可以借鉴这个信任设计。
5. 可直接复用的组件清单。 翻这个仓库,下面几块代码剥出来就能用在你自己的项目里:工资帽/奢侈税财政模块(任何经营游戏都缺这个)、AI 交易评估逻辑(“AI凭什么接受你的报价”的量化写法)、球员成长曲线生成器(潜力→成长的进度感引擎)、文字战报生成器(把比赛数据翻译成叙事文本的模板系统)。最后这个尤其值钱——它就是“没有美术的画面”,一套把数字变成故事的文本模板。
技术栈本身毫无炫技:TypeScript + React + IndexedDB + Web Worker,全部是十年不过时的朴素组合。这也解释了它为什么能一个人维护十年——没有用任何会死的框架。
这个仓库的变现路径,可能是所有开源游戏里最值得抄的一套组合拳:
免费网页版 + 广告 + 订阅去广告。 在线版免费玩,非付费用户看广告;订阅 Zen GM Gold 后去掉广告,并解锁上帝模式(随意改阵容、改规则,相当于内置的“作弊器付费点”)。注意这个设计的聪明之处:广告不是收入主力,是付费转化器——看广告的烦躁感就是订阅的推销员。据作者在社区的公开分享,这游戏是他的全职收入来源,一个人、一个网页、一套订阅,跑了十年。
对比同品类的传统路线,更能看出这条路的省钱程度:同类型经营游戏上 Steam(如 Out of the Park 系列卖几十美元一份),要对付商店审核、退款、打折节奏;做移动端 F2P 体育经营(各路篮球经理手游),要买量、接SDK、对抗渠道分成。而 Basketball GM 零买量——它是开源的,GitHub 本身就是它的流量入口,玩家从仓库点进在线版,转化路径短到只有一个链接。
它的天花板也摆在那里:没有移动端原生包(错过手游大盘)、没有多人模式(错过社交裂变)、题材美式篮球(中文市场天然窄)。但反过来想:一个上限不高但下限极其稳固的生意——基础设施近乎零成本,养活一个人绰绰有余——这不正是副业最想要的形态吗?
灵感一:换题材做“电竞战队经理”。 体育经营的核心资产是数值系统,不是题材。把球员换成电竞选手(枪法/意识/心态三维评分),把选秀换成青训营,把工资帽换成直播合约,模拟引擎几乎照搬 Basketball GM 的架构。电竞题材在中文社区的自带流量远超美式篮球。MVP 工作量:2-3周(数值系统一周、模拟引擎一周、前端一周)。变现:网页广告 + 一次性付费解锁上帝模式,别急着上订阅。
灵感二:直接偷它的“文字战报生成器”思路。 这个组件的适用面远超体育:棋牌对局回放、Roguelike 战斗日志、养成游戏的一生总结,本质都是“把结构化数据翻译成有情绪的文本”。配合现在的大模型 API,你可以做一个“AI 解说的对战游戏”——自己先做模板系统兜底,AI 只负责润色。MVP 工作量:1-2周。变现:挂广告的网页工具站,或接 API 按次付费。
灵感三:给经营游戏加“每日挑战”钩子。 Basketball GM 最大的留存缺口是没有每日回访理由(存档想什么时候玩就什么时候玩)。抄Hello Wordl的思路:每天发一个固定种子的开局——“0胜8负的烂队,30场比赛内打进季后赛”,所有玩家同一天玩同一个局,战绩榜全球可比。这一个功能的开发量不大(种子随机数生成器是现成方案),却把单机游戏做出了天梯感。MVP 工作量:加到现有作品上约1周。变现:挑战结果页挂激励视频广告,“看广告解锁一次重赛”。
最后说句实在的:这个仓库最值得偷的不是代码,是它的克制。十年时间,作者抵抗住了加美术、加多人、上 Steam 的所有诱惑,只在数值深度和存档体验上做加法。小而美的“美”,一半是做出来的,一半是忍住不做的。
[!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 等场景全覆盖。
