2015年春天,互联网上同时火了两个"球"。一个是巴西少年 Matheus Valadares 周末鼓捣出来的 agar.io,据当时的报道,这游戏靠论坛口口相传,几个月就被 Miniclip 收编;另一个球,是越南开发者 Huy TD 把这套玩法拆开、重写、挂上 GitHub 的开源克隆——agar.io-clone。前者赚走了流量和收购案,后者没赚一分钱,却成了后来无数个".io 小游戏"的地基。今天要深挖的就是这第二个球:它可能是你能在两周内读懂、改完、上线的最完整的实时多人游戏教材。
先把家底交代清楚。以下信息无法全部在线核实,均注明口径,Star 数等以仓库页面为准:
一句话说清玩法:你控制一颗球,满地图吃比自己小的,躲比自己大的,越大越慢,越大越容易被围剿,死了从头再来。
规则表比规则本身有意思:
用一张图看玩家每一分钟在干什么:
flowchart TD
A[开局: 一颗小球] --> B[满图捡食物攒体重]
B --> C[体型变大, 速度变慢]
C --> D{视野里有谁?}
D -- 比我小 --> E[追上去吞掉, 体重暴涨]
D -- 比我大 --> F[贴着刺球躲, 苟发育]
E --> G[冲进排行榜前10]
E --> H[分裂咬人, 后半身暴露]
F --> I[被大球围猎]
H --> I
G --> I
I --> J[结算: 差一名就进前十]
J -->|再来一局| A
注意这个循环里没有一个环节需要动脑学习——没有教程、没有装备、没有技能树。所有策略都是玩着玩着自己长出来的。这正是小团队能抄、该抄的那类结构。
第一道,即时反馈密度。 你每移动一帧,视野里都有十几个食物球被吸进来,每个都伴随体重数字跳动和吞咽音效。开发者最该学的是这个反馈频率:新人进场的第一分钟里,他至少完成五十次"操作→正反馈"闭环。对比很多独立游戏"打十分钟怪才升一级",差距就是留存率。
第二道,动态难度藏在了物理里。 "越大越慢"这一条规则同时干了三件事:给小alls留活路(新人永远有机会跑掉)、给大球制造威胁(慢就是弱点)、逼大球分裂冒险(不冒险就吃不到人)。不是靠关卡策划去"平衡难度",一条物理规则自己就形成了生态。你换题材做玩法时,先找你的这条"根规则"。
第三道,赌性开关——分裂。 分裂去咬人,赌的是对方反应不过来。赌赢,体重翻倍;赌输,你的另一半身体暴露在全图猎手面前。人类对"可以主动按下去的风险按钮"毫无抵抗力,这就是为什么赌博机要有摇杆键——把命运做成一个动作,而不是一个等待。
第四道,排行榜攀比。 屏幕右上角常驻前十名单。进前十的人想守住名次,前十外的人只差一个"再吃一个大胖子"。结算画面永远是"差一点",而差一点的挫败感,恰恰是"再来一局"的最佳燃料。这一点跟《Hello Wordl》一天一题、晒分数逼人攀比,是同一套心理。
第五道,非对称复仇叙事。 小球苟在刺球后面看大球巡游的那几分钟,玩家在憋一个故事:等我长大了第一个吃你。复仇是最好的钩子,因为它自带情绪,不需要任何剧情文本。你的游戏如果能让人"记住一个具体的敌人",留成就有了。
这仓库对开发者真正的价值在工程侧。它用最少的代码把"实时多人"四个字全部踩了一遍,每一脚都是你以后做联机小游戏要交的学费,他先替你交了。
架构一句话:服务端权威,客户端只演。 所有球的位置、体重、碰撞判定都在 Node.js 服务端算,服务端按固定心跳(tick)把视野内的世界状态广播给每个玩家;客户端收到的只是一串坐标和半径,负责画。这样外挂最多改改自己的画面,改不了"你被吃了"这个事实。你以后做任何联机小游戏——棋牌也好、io也好——第一课都是这个。
带宽优化藏在视野里。 服务端不是把全地图几百颗球都推给你,而是只推你视野范围内的。这一招一石三鸟:省带宽、防透视外挂、顺便实现了"大球视野更远"的玩法设定(视野半径随体重增长)。你会发现好的技术方案经常能倒过来变成玩法,这是独立开发者最便宜的"设计升级"。
半径与体重的换算。 画布上一颗球的显示半径不是体重本身,而是接近质量开根号的换算。为什么?如果半径线性涨体重,大球在屏幕上会大到离谱,小球直接看不见。一个平方根,保住了整个游戏的视觉可读性。数值策划的第一课:先保证"看起来正常",再谈手感。
分裂与合体的状态机。 分裂后两颗球有单独的动量、有最短合体倒计时、有互相排斥再缓慢吸附的过程,全部是一个小状态机在跑。这类"倒计时+状态迁移"的代码逻辑,你做棋牌回合计时、放置游戏离线收益结算,全都用得上。
断线与房间。 Socket.IO 自带的房间(room)概念被拿来隔离对局,断线重连后状态从服务端拉回来。你做双人棋牌、联机派对游戏,这套模型照抄即可。
AI 对手是白送的复活甲。 仓库里带了简单的 bot 逻辑(游走、捡食、见小就追)。这意味着你可以把服务器整个砍掉,用十几个本地 bot 冒充真人,把联机游戏改成单机游戏——这就是下一节要说的变现起点。
可复用组件清单,直接抄:Socket.IO 心跳同步框架、视野裁剪广播、质量-半径换算、分裂状态机、排行榜推送、bot AI。一个周末能把这套骨架抽成你自己的"io 模板",之后每换一个题材就是一款新游戏。
先说原作。agar.io 据当时报道由巴西开发者 Matheus Valadares 在 2015 年做出,靠 Reddit 和 4chan 自来水引爆,同年被 Miniclip 收编,后来靠网页广告加手游内购(皮肤、加速币)变现。它证明了"零美术、零剧情、一个核心循环"的网页游戏可以做到顶级流量。
更值得个人开发者看的是它身后那条 .io 赛道:slither.io、diep.io、wings.io……全是大球吃小球这套骨架的变奏。这批游戏的共性变现路径有三条:一是网页端贴片广告和插屏;二是手游端"广告+内购"混合,激励视频换复活、换加速;三是把游戏挂到 Poki、CrazyGames 这类 H5 游戏门户,门户卖广告、开发者按流量分成。第三条对个人最友好——不用自己买量,把游戏做好提交上去就有被动收入,这是 2026 年仍然在运转的模式。
一句话总结这条赛道的账:io 玩法本身免费(代码开源),服务器成本可控(视野裁剪省带宽),收入靠广告(门户分成或激励视频),竞争靠题材(骨架一样,皮决定生死)。
点子一:io 玩法单机化,两周上架微信小游戏。 直接拿本仓库的骨架,砍掉 Socket.IO,把 bot 逻辑加强成"假真人"(bot 起中文名、会骂人、会围猎,体验像联机)。题材换皮是关键:吃的是汉字(吃对成语长大)、吃的是卡路里(健身题材)、吃的是城市(吞噬进化题材),任选一个差异化皮。变现走激励视频(死亡复活一次)+ 插屏(结算页)。工作量:MVP 一到两周,主要时间花在 bot 手感上。适合想快速跑通"上线-广告-数据"全流程的个人。
点子二:竖屏吞噬+轻养成,打碎片时间。 把大地图改成竖屏一局三分钟,体重结算成金币,金币换皮肤和"球球宠物"。养成层解决 io 类最大的死穴——死了就清零,玩家没有留存资产;每局收益都能带走,广告和内购(皮肤、宠物栏位)就有了插入点。工作量:两到三周,需要一点 UI 功底。适合想做大一点、冲一下平台推荐位的。
点子三:自建联机服+赛季,卖给已有社群。 如果你有现成社群(游戏公会、校园群、直播间粉丝),保留原仓库的联机架构,加皮肤系统和周末赛季榜,把"和熟人互吞"做成直播节目效果。变现靠皮肤+打赏,不必买量。工作量:一个月上下,服务器运维是真成本。这条路别裸开——没有社群就先回去做点子一。
优先级建议:先点子一。它的全部风险都集中在"bot 手感"这一个点上,试错成本最低,跑通了数据,再决定要不要往二、三走。
老仓库的好处是:它已经替你把 2015 年那波 io 热潮的全部教训写进了 issue 和提交记录里。你要做的不是复刻 agar.io,是拿走它的骨架,给它穿一件 2026 年的新衣服。
[!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 等场景全覆盖。
