<!-- title: 《A Dark Room》没有画面，照样登顶付费榜 -->
<!-- domain: games -->
<!-- repo: DoublespeakGames/a-dark-room -->

2014年6月，美国App Store付费榜第一名，换成了一款满屏黑底白字、连一张图片都没有的小游戏。没有引擎，没有美术，没有音效撑场子，开局第一句话是“屋里冷得刺骨，火已经灭了”。它叫A Dark Room，最初只是一个人写给浏览器玩的文字游戏，最后靠一美元一份的定价，给两位开发者各自带来了数十万美元量级的收入。对想搞副业的个人开发者来说，这个仓库几乎是个标答级案例：把“没资源”三个字，活生生变成了卖点。

## 仓库档案

- 仓库：DoublespeakGames/a-dark-room
- Star：7k+（据仓库页面）
- 语言：JavaScript——原生JS加jQuery，没有前端框架，没有构建工具链
- 作者：Michael Townsend，个人开发者，“Doublespeak Games”其实是他一个人的署名；据作者访谈，灵感来自另一款文字游戏Candy Box。iOS版由开发者Amir Rajan移植
- 更新状态：核心玩法代码多年前就定型，后续提交以社区翻译和维护为主（据仓库页面）——对学习者反而是好事，代码量小，没有历史包袱
- License：以仓库LICENSE文件为准，动手复用前必读，这直接决定你的换皮项目能不能商用
- 在线试玩：adarkroom.doublespeakgames.com，右上角可切中文

一个2013年的网页游戏仓库，至今仍被反复翻出来研究，原因不复杂：它是“个人开发者用最低成本做出爆款”这条路上，被引用最多的样本之一。

## 这游戏是什么

一句话：纯文字增量游戏。你从“生一堆火”开始，捡木头、下陷阱、盖小屋，村民闻着火光陆续住进来，你给他们派活，资源自己涨，然后不断解锁新建筑、新职业、新地图，最后一座塔修到顶，见到这个世界的真相。

它表面是放置游戏，骨子里是叙事游戏。每一层进度都被包装成剧情碎片：你不只是“解锁了小屋”，而是“一个衣衫褴褛的陌生人踉跄进门，倒在角落”——她成了你的第一个村民。你不只是“木材+100”，而是“猎人带回了过冬的肉”。文字在这里不是省美术的妥协，而是玩法本身。

核心循环长这样：

```mermaid
flowchart LR
    A[生火与添柴] --> B[解锁动作：捡木头、下陷阱]
    B --> C[资源入账：木材、毛皮、肉]
    C --> D[盖小屋，村民入住]
    D --> E[派工：采集、狩猎、冶炼]
    E --> F[新建筑解锁 + 随机事件]
    F --> G[离开小屋：荒原探险]
    G --> H[推进剧情与战利品]
    H -->|更强的产出，更大的悬念| A
```

这个循环里最妙的是G到H那一段：屋内经营是“松”，点几下等收益；屋外的荒原探索是“紧”，一格一格走地图，撞上袭击就进入指令式小战斗。一松一紧交替，放置游戏最常见的枯燥感就被打掉了。

## 为什么上头

拆开看，它把低成本反馈做到了极致，每一条都值得抄：

**1. 即时反馈的成本几乎为零。**按下“生火”，界面从一行字变成两行字。每一次点击都有新东西浮出来——对文字游戏来说，反馈就是多打一行字，边际成本约等于零，但玩家感知到的“世界在回应我”是实打实的。

**2. 进度感被切成细密的档位。**火有五档状态：熄灭、闷烧、摇曳、燃烧、熊熊；温度条一格一格爬；建筑列表里的灰色占位符一个个点亮。你永远处在“有东西马上要好”的状态。这是增量游戏的命根子，它做得比大多数同类更密。

**3. 随机事件制造开箱感。**游牧商人会路过，陌生人会敲门，村民会生病，野兽会夜袭。你离开再回来，总担心错过了什么。本质上是把抽卡的心理机制，用一行行文字实现了。

**4. 收集欲的对象不是装备，是剧情。**“下一个解锁会写出什么句子”成了最强驱动。文案把每个功能点都翻译成世界的一块碎片，玩家读着读着就在拼图。这是纯文字游戏独有的优势——你的好奇心有明确地址。

**5. 放置层负责留存。**村民自动化之后，关掉页面资源照涨，回来一次收割一波。离线收益给了玩家“随时回来都划算”的理由，配合随机事件，回来永远不亏。

**6. 终局有真正的悬念。**塔要修到天上，地图尽头有真相。很多放置游戏死于“数值到头就弃坑”，它靠叙事给了玩家一个非数值的终点，撑到最后一屏。

## 技术拆解

这套代码对小团队的价值，比游戏本身还高：

- **纯DOM渲染，没有Canvas，没有游戏引擎。**全部是HTML加CSS加jQuery，状态一变，改几个文本节点就行。好处非常实际：性能天花板远高于这类游戏的需要、调试就是改网页、美术成本为零。做文字、卡牌、菜单驱动型游戏，这套思路今天依然成立。
- **数据驱动的配置表。**物品、建筑、职业、升级、事件，全是JS里的配置对象，结构接近JSON。加一个新建筑约等于加一段配置加一句文案，不用碰逻辑代码。想换皮——修仙、丧尸、开店——引擎一行不改。
- **事件系统是小状态机。**随机事件、定时事件、条件触发日志，统一是“满足条件→插入文本→发道具”的三段式。这张事件表就是游戏的心跳，也是最容易扩容的部分。
- **存档走localStorage，支持导出导入字符串。**玩家把进度码复制走，发到论坛里接着玩——当年这游戏就是这样在小圈子裂变的。社交传播的技术载体，要在第一天就想好。
- **国际化文件齐全。**社区翻出了几十种语言，说明配置结构对本地化友好。你的游戏从第一天就该留这一层，那是海外变现的门票。
- **iOS版不是网页套壳。**Amir Rajan用RubyMotion（用Ruby写原生iOS）把游戏重写了一遍上架。这传递了一个重要信号：这个体量的游戏，网页验证、原生收割，两段式开发完全可行。
- **可直接搬走的四件套：**资源结算循环（每tick按工人数乘产出、扣消耗）、建筑解锁树、随机事件表、localStorage存档管理。这四个组件拉出来，就是任何放置、文字、单机卡牌游戏的骨架。

动手前看一眼LICENSE，另外记住：可以学的是结构和机制，文案是别人的版权——换皮不是抄句子。

## 变现观察

这个仓库本身是零变现的：网页版免费、无广告、连打赏按钮都没有。但它的商业链条清清楚楚，是教科书级的“开源养声量、付费做收割”：

- **网页版是免费试玩加传播层。**零门槛、可白嫖、有传播点，为它积累了第一批死忠玩家和口碑。
- **iOS版是收割层。**2014年Amir Rajan把它移植上架，定价0.99美元，几周内冲到美国区付费总榜第一，此后长期霸占付费策略榜前列，收入与原作者合作分成（据公开访谈），两位开发者各自拿到数十万美元量级——一款网页游戏，零美术成本，利润率约等于售价减平台抽成。
- **长尾还在继续。**后来上了Switch（约5美元，据公开报道），还催生了续作《The Ensign》。“一个点子，多平台反复收割”在它身上完整走通。
- **同类路径普遍跑通。**放置、文字品类里，从Cookie Clicker的Steam版到itch.io上一批付费放置游戏，“网页免费养口碑、移动端或Steam收钱”是这条赛道被验证最多的路径。变现有两处天然卡位：移动端卖断（0.99到2.99美元）或插激励视频（放在离线收益结算处最不招人烦）；Steam端靠“终局叙事加成就系统”撑住5到8美元的定价。

对个人开发者，它的启示浓缩成一句：先做免费的网页版测留存，数据好看，再花一两周移植上架——风险被切成了两段。

## 给我的灵感

三个可以直接动手的点子，按工作量从小到大：

**1. 换皮复刻，两三周出MVP。**沿用它的配置表结构和事件系统，把“生火过冬”换成你熟悉的题材：点香炉、开面馆、给猫铲屎都行。核心是保住“细密档位加随机事件”这两件事。变现：itch.io免费版引流，移动端0.99美元，或挂激励视频做纯广告流。工作量：2到3周。

**2. 加一层每日事件钩子。**在随机事件表之上加一个“每日全局事件”——服务器上放一个静态JSON，每天换内容，玩家为了不漏剧情每天回来。这是把单机游戏做出运营感的最便宜方式。变现：每日事件之间插激励视频，或订阅制解锁事件回放。工作量：MVP之上加1周。

**3. 接大模型做活NPC。**文字游戏的对话本来就是文本，把“陌生人敲门”的固定文案换成大模型生成的对话——每个NPC每次见面说的话都不一样，玩家会把对话截图发社交媒体，这是天然的传播点。注意本地缓存对话、控制API成本。变现：Steam付费（5到8美元），创意工坊接玩家自定义NPC人设。工作量：MVP之上加2到3周，成本主要在API调用设计上。

## 上手

- 仓库：github.com/DoublespeakGames/a-dark-room
- 在线试玩：adarkroom.doublespeakgames.com（自带中文，右上角切换）

最后说回那个开头：满屏黑底白字，付费榜第一。它证明的不是“文字游戏能赚钱”，而是“变现的瓶颈从来不是资源，是你有没有把反馈、进度、悬念这三件事做密”。这三件事，一台笔记本、一个文本编辑器，就够了。

> [!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)
