<!-- title: 《Isleward》一个人把MMO开进浏览器 -->
<!-- domain: games -->
<!-- repo: Isleward/isleward -->

# 《Isleward》一个人把MMO开进浏览器

## 仓库档案

**Isleward**，仓库地址 `Isleward/isleward`（早年挂在作者个人账号 BigBadWaffle 名下，后来迁到同名组织下继续维护），一套全栈 JavaScript 写成的开源网页 MMORPG。作者是一个人，动工于 2016 年前后，这些年一直在更新，官方在线服一直开着，浏览器输入网址就能进世界（以上据仓库页面）。Star 数、License 等具体数据以仓库页面标注为准，此处不引。

在“开源游戏仓库”这个物种里，小游戏一抓一大把：贪吃蛇、2048、扫雷……但**由一个人长期运营、多人在线、还活着的网页 MMO**，稀有得多。MMO 是出了名的“团队游戏”——服务器、数据库、网络同步、内容管线、运营客服，哪一样都不是省油灯。这个仓库的价值不在“又一个能玩的 demo”，而在它示范了一件事：**一个人，也能把一座岛开进浏览器，而且一开好多年。**

## 这游戏是什么

一句话：一个像素风的 2D 多人在线 RPG，打开网页就玩，打怪、捡装备、做任务、下副本、跟陌生人聊天组队，角色数据存在服务器上，明天回来你的小人还在。

它的气质更像“把roguelike的掉落爽感，装进一个常驻世界”。玩家分职业、加属性点、学法术，怪物按区域分布，装备掉落带稀有度颜色，白绿蓝紫橙的配色一闪，心跳就快半拍。银行仓库、玩家交易、组队副本这些 MMO 标配一样不少——只不过这一切都发生在浏览器标签页里，没有任何安装步骤。

核心循环长这样：

```mermaid
flowchart TD
    A[打开网页 登录小岛] --> B[打怪 / 做任务]
    B --> C[随机掉落 按稀有度着色]
    C --> D{出好货了吗?}
    D -- 出了 --> E[变强 存仓库 向路人炫耀]
    D -- 没出 --> B
    E --> F[组队副本 / 玩家交易 / 聊天]
    F --> G[作者持续添新岛新任务]
    G --> H[明天再来 世界还在长]
    H --> B
```

注意这个循环里的第 7 步——**“作者持续更新”被焊死在了循环里**。这是它和一次性小游戏最大的区别：小游戏的循环靠机制自转，MMO 的循环靠“世界在变”。作者把地图编辑器直接内建在游戏里，内容生产工具就是游戏本身的一部分，所以他一个人也能常年往海面上添新岛。这是全仓库最值得盯的设计。

## 为什么上头

拆开看，它的每一层钩子都对应一种被验证过的人性：

**1. 随机掉落：赌徒的多巴胺。** 掉落表+稀有度，是 roguelike 和暗黑系反复验证过的最强组合。玩家杀第十只螃蟹时掉出一件蓝色装备，大脑给出的奖励信号和拉老虎机中了一个小奖完全同构——关键是“下一个可能更好”，这正是“再来一只”的全部动力。Isleward 把这套机制做得很克制：装备词条不多，但颜色分级足够刺激，捡起来那一瞬间有明确的爽点。

**2. 持久世界：登录变成看老朋友。** 一次性游戏下线即终局，而 Isleward 的角色、仓库、等级都躺在服务器里。第二天打开网页，你的小人站在原地，可能还多了几个新玩家在城里跑来跑去。这种“世界没有因为我下线而暂停”的感觉，是单机游戏给不了的留存力。网页 MMO 的留存靠的不是内容量，是**存在感**。

**3. 同屏陌生人：天然的社交攀比。** 你穿一件橙装在城里走，路过的人看得见。没有排行榜，NPC 不会夸你，但屏幕上晃动的其他小人本身就是参照系。多人在线把“收集欲”和“攀比欲”打包在一起——装备好一档，社交存在感就高一档。

**4. 打开即玩：把进入成本压到零。** 没有下载、没有安装、没有注册门槛（据仓库页面，网页直接玩），一个标签页就是一整个世界。这个“零摩擦入口”对碎片时间玩家极其致命：本想“就看一眼”，结果一行了。对开发者来说这也是宝贵的启示——**网页游戏的上头，一半是游戏设计，一半是“随时能玩”这个分发形态。**

**5. 世界在长：给老玩家一个回来的理由。** 单机游戏通关即弃，而 Isleward 隔三差五多出一块新陆地、新任务线。对独居开发者来说，“持续供内容”通常是最大的运营瓶颈，而这个仓库用内置编辑器把瓶颈磨薄了——这一点下一节细说。

## 技术拆解

这是全仓库对独立开发者最有抄头的部分。它的所有技术选型都指向同一个原则：**一个人维护得动。**

**全栈一门语言。** Node.js 服务端 + 浏览器端 JS 客户端，前后端同构，数据结构、工具函数甚至校验逻辑都能两端复用。对个人项目来说，“只装一种语言的工具链”省下的心智成本是实打实的。

**SQLite 做持久化。** 整个世界的账号、角色、仓库、进度，落在单个 SQLite 文件里。不碰 MySQL 集群、不碰 Redis、不碰 ORM 迷宫——备份就是复制一个文件，部署就是把文件带走。对于并发量在几百人量级的网页游戏，SQLite 的性能绰绰有余，而它换来的运维简单性是个人开发者最需要的。想做出下一个“一个人的 MMO”，这一条几乎是标准答案。

**WebSocket 实时同步。** 位置移动、战斗结算、聊天、掉落广播，全走一条长连接。有意思的是它的同步粒度做得很“省”：基于瓦片的 2D 世界，只需要广播视野范围内的实体，服务端按区域切图管理状态。这套“视野同步”写法直接照搬就能用在任何 2D 联机小游戏上，是最值得读源码的模块之一。

**模块化架构。** 仓库里服务端和客户端都按模块切分，银行、交易、任务、副本这类功能各自成块，像插件一样挂进主循环。对想复用代码的人来说，这意味着你可以只抽“背包+掉落”模块，不用背上整个世界。对想学架构的人来说，它示范了**单人项目如何避免长成一团面条**：不是靠文档和纪律，是靠“每个功能都是一个可插拔模块”这条硬规矩。

**编辑器内建。** 传统游戏工作室的内容管线是“美术出图→策划配表→程序打包→发版”，一个人根本跑不动这个流程。Isleward 的解法是把地图编辑器做进游戏客户端，作者直接在自己世界里铺地形、摆怪、放任务。这条经验可以泛化成一句口诀：**独居开发者要把“内容生产工具”当成游戏功能来开发**，而不是当成团队才配拥有的内部设施。

**可直接复用的组件清单：** WebSocket 视野同步、SQLite 存档层、掉落稀有度表、网格背包 UI、内置地图编辑器、模块化服务端骨架。以上任何一个单拎出来，都够你开一个周末项目。

## 变现观察

先说仓库本身：据仓库页面，这是一个完全免费、没有明显付费墙或内购入口的项目，代码开源，官方服免费玩，顶多有捐赠渠道。它更像作者的“作品集旗舰”——十年之约式的手艺证明，直接收入未必多，但它带来的行业声誉、社区、可能的职业机会，是典型的“开源攒人脉”路径。

再看同类有没有跑通的钱——**网页 MMO 这条赛道，恰恰是个人开发者跑通过真金白银的**：

- **Melvor Idle**：一个澳大利亚开发者做的浏览器放置游戏，灵感来自 RuneScape，先在网页上免费起家，打磨几年后上 Steam 卖断制，最终被 RuneScape 母公司 Jagex 相中签下发行。一个人，一个浏览器游戏，从零做到被游戏巨头收编——这是这条赛道最励志的完整体。
- **Torn**：一个 2004 年上线的纯文字浏览器 MMO，没有画面，靠订阅和增值服务养活小团队活到今天，二十年不倒。它证明了“网页+常驻世界+轻付费”的生命力可以长到什么程度。
- **更轻的路径**：itch.io 上像素 MMO/联机小游戏走“免费游玩+打赏”，或者把开源项目当成引流入口，用 Patreon/爱发电养“更新直播”——很多 roguelike 开发者靠这个模式月入几百上千美元，量级不大但真实。

对 Isleward 这种开源结构，其实还藏着一个被低估的玩法：**代码开源≠不能赚钱**。服务器代码在你手里，你完全可以自建一个私服，靠外观、仓库扩容、会员标识这类“不吃平衡性的付费点”回收成本——只要守住不碰原作官方服的玩家，这条路在开源游戏社区是体面且常见的。

变现方式排序建议：**Steam 断制（拿到正反馈最快）> Patreon 更新订阅（长线）> 网页广告（量级太小，别指望）**。

## 给我的灵感

**点子一：两周做一个“迷你 MMO”。** 砍掉一切：一张 32×32 的小地图、三种怪、一套白绿蓝三档掉落、聊天和组队。技术栈照抄 Isleward：Node.js + WebSocket + SQLite，客户端一个 Canvas。第一周搭骨架（登录、移动、同步、存档），第二周填内容（地图、怪、掉落表）。MVP 总工作量对熟手就是两周，变现走 itch.io 免费+打赏试水，数据好看再上 Steam。

**点子二：换题材——把“常驻世界”搬进中文语境。** 同一套骨架，皮可以整个换掉：修仙门派的浏览器 MMO（灵石掉落=装备稀有度，洞府=银行仓库，宗门任务=副本线），或者办公室题材（摸鱼大厦里打工怪、捡绩效装备）。MMO 框架是通用的，题材才是你 differentiation 的地方。注意别做成放置游戏——钩子在“同屏有活人”，不在挂机。变现同上，且中文题材在爱发电/公众号引流这条路走得通。

**点子三：加一层钩子——把“更新”做成节目。** 学它最聪明的那部分：编辑器内建+持续供内容。你可以更进一步，把每周内容更新固定成一个仪式——“每周五晚八点，新大陆开荒，全服集合”。运营动作本身变成游戏事件，玩家为“见证更新”而登录，这是一个人能做到的、大公司反而做不了的亲密感。成本几乎为零，全靠自律，而自律恰好就是你最大的护城河。

## 上手

- 仓库：`https://github.com/Isleward/isleward`
- 在线试玩：据仓库页面，README 提供官方在线服入口，浏览器打开即玩；本地部署按 README 起一个 Node 服务即可，SQLite 单文件存档，跑起来比想象中容易得多。

读它的源码，建议按这个顺序：先看服务端启动和 SQLite 层，再看 WebSocket 同步，最后啃模块系统——走完这一趟，你对“一个人怎么撑起一个在线世界”就不会再有任何神秘感。剩下的，就轮到你在浏览器里开自己的岛了。

> [!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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
