<!-- title: 《Kingdom》只会按左右的国王，卖了百万份 -->
<!-- domain: games -->
<!-- repo: noio/kingdom -->

**仓库档案**

- 仓库：[noio/kingdom](https://github.com/noio/kingdom)
- ⭐ 203 stars / 54 forks / 23 watching（据仓库页面，2026-10-07）
- 语言：ActionScript 99.4%（Flash 时代的 AS3）
- License：自定义许可——可以学习、魔改、分享，但**禁止拿去商用**
- 作者：Thomas "noio" van den Berg，个人开发者，仓库共 44 次提交、无正式版本发布，2013 年前后封存至今

这不是一个还在更新的项目，而是一份被完整开源的“游戏设计标本”：一个只有两个按键的周末原型，后来长成了销量以百万计的商业系列（据发行商 Raw Fury 历年公布）。今天拆它，看的是两件事——极简怎么做到上头，以及一个 48 小时的原型如何变成一门生意。

**这游戏是什么**

一句话：你是一个骑在马上的国王，马永远不停，你只能按左和右；白天你捡硬币、扔硬币，看王国自己长起来；天一黑，怪物从森林深处的传送门里涌出来，抢你的钱、你的工具和你的人民——你能做的，只有提前把墙砌到足够远。

没有菜单，没有按钮，没有教程。所有建造行为都被压缩成同一个动作：把一枚硬币抛到想去的地方。想雇一个流浪汉？扔一枚硬币在他面前，他捡起来就成了你的臣民；想让某个工匠去砌墙？把硬币扔到墙的工地上；想买弓箭、买锤子、买农具，全是同一枚硬币，扔在不同的位置。

整个游戏的核心循环长这样：

```mermaid
flowchart TD
    A[白天：骑马巡视] -->|射兔子 / 翻遗迹宝箱| B[金币进袋]
    B -->|把硬币抛向目标| C[流浪汉拾币成为臣民]
    C -->|领工具后自动干活| D[种田 / 砌墙 / 造箭塔]
    D --> E[黄昏：收工回城，紧张感上升]
    E --> F[夜晚：Greed 怪从传送门涌来]
    F -->|墙够硬| G[守住金币与人口，天亮]
    F -->|墙被破| H[丢钱、丢工具、丢王冠]
    G --> A
    H -->|从头再来| A
```

驱动“再来一夜”的，是这个循环里天然的时间压力：每一夜都是一个存档点，也是一次审判。活过第 N 夜，天亮那一刻系统什么都不给你——但你自己会想“这波赚的钱，该拿去把南墙推远两格了”。

**为什么上头**

《Kingdom》是“极简主义做到上头”的教科书案例，值得逐层拆。

**第一层：剥夺输入，反而放大决策。** 玩家唯一能做的是控制国王的朝向。马不能停、不能加速、不能攻击，这意味着传统 RTS 里“同时操作十个单位”的多线程快感被整个砍掉，只剩一个单线程问题：**现在该往哪边走？** 每一次折返都有机会成本——往东多捡两枚硬币，西边的墙就晚砌一分钟。这种“永远差一点”的取舍感，是两个按键撑起策略深度的全部秘密。很多新手做的游戏上不了头，恰恰是因为给了玩家太多按钮，每个按钮都稀释了下一次点击的分量。

**第二层：金币即指令，反馈链短到极致。** 硬币抛出去、落地、叮一声、目标拾起、行为改变——这条反馈链不到两秒。更妙的是，同样的硬币扔给不同对象产生完全不同的结果：扔给流浪汉是招募，扔给工匠是开工，扔进许愿池纯属图个响。玩家在五分钟内就能建立“钱是万能动词”的心智模型，之后所有的贪婪和犹豫，都围绕同一个道具展开。这是随机奖励和即时反馈的复合：捡钱是即时的，钱变成什么又是未定的。

**第三层：间接管理带来的涌现感。** 你永远不能直接命令任何臣民。给流浪汉一把锤子，他会自己跑去最近的工地；给一把锄头，他会自己找水边开田；弓箭手白天自己射兔子创收，晚上自己站上城墙。你做的只是环境工程——钱撒在哪，人就在哪。这带来一种传统管理游戏给不了的体验：**王国是自己活起来的**。农民在雨里插秧、工匠在火把下敲墙，这些画面不是你操作的，是你“安排了条件”之后自己发生的，成就感因此翻倍。

**第四层：昼夜循环自带压力曲线。** 一天 24 分钟（体感），白天越到黄昏越慌，夜晚紧绷，黎明松一口气——一个内置的心跳节律。对比多数放置游戏匀速的进度条，这种张弛让“再玩一天”变成生理本能：天亮了，谁舍得在存档点退出？

**第五层：氛围替玩法讲故事。** 雨点打湿旗帜、雾从森林里漫进来、萤火虫围着营地转、月亮有阴晴圆缺——这些纯视觉元素不参与数值，却让玩家脑补出整个王国的命运感。上头游戏的共同点是**留白让玩家自己写故事**，而留白需要用氛围去填。

**技术拆解**

仓库本身就是一个 AS3 时代的独立游戏标本库：

- **技术栈**：ActionScript 3 + Flixel 引擎（`org/flixel/` 目录整个内置在仓库里）。Flixel 是当年 Flash 独立游戏圈的明星框架，和 Canabalt 作者的 Flixel 系出同门。今天读它，类名结构可以直接翻译成任何现代引擎的心智模型。
- **文件即系统**：看文件名就能读出整个游戏——`PlayState.as` 主循环、`Player.as` 国王、`Citizen.as` 臣民、`Troll.as` 怪物、`Coin.as`/`Coinsack.as` 经济系统、`Wall.as`/`Castle.as`/`Farmland.as`/`Campfire.as` 建造体系。一个几百行的状态类就是一个玩法模块，单文件可读性极高，非常适合当“怎么把游戏拆成类”的入门读物。
- **氛围工程占了半壁江山**：`Weather.as`、`WeatherPresets.as`、`weathers.json`、`Fog.as`、`Haze.as`、`Light.as`、`Torch.as`、`Firefly.as`、`Sparkle.as`、`SunMoon.as`……一个玩法极简的游戏，把最多的代码花在了天气、光效和情绪上。还有 `convert_weather.py`、`convert_tiles.py`、`convert_sounds.sh` 三个素材管线脚本——个人开发者自己写工具链的经典操作。
- **细节的奢侈**：`Minimap.as` 小地图、`ExplodingText.as` 爆炸文字、`Dust.as` 尘土粒子，连兔子（`Bunny.as`，前期唯一的稳定收入来源）都有独立类。`todo.txt` 还躺在仓库里，你可以看到作者自己的开发清单。
- **可直接借鉴的三个组件**：① 昼夜状态机（一个全局时间值驱动光照、怪物刷新、NPC 行为切换）；② 间接指挥系统（道具投放→NPC 状态变更→自主寻路干活）；③ 金币抛掷交互（物理抛物线+落地判定复用于一切购买行为）。
- **一个时代的眼泪**：仓库里躺着 `mochi/as3/` 目录——MochiAds，Flash 时代最大的游戏广告分成平台，2014 年关门。也就是说，这个开源仓库里连**当年的变现基础设施**都一起埋着。

**变现观察**

这个仓库最值得抄的其实是它的许可协议和它背后的路径。

**License 本身是一份“防扒皮协议”范文。** 作者在许可里写得很直白：禁止把这份代码编译了上手机商店卖钱，禁止加广告、加内购——因为他见过太多 Flash 游戏被人扒皮上架。但他紧接着补了一句：如果你用这里的素材和思路做出一个**全新的游戏**，尽管去赚钱，赚多少都随你。一句话划清了“搬运”和“创作”的边界，既保护了自己，又给学习者留了完整的商业化通道。做开源小游戏的开发者都该抄这份作业。

**真正的变现路径在仓库外面，而且跑通了。** 时间线是这样的：2013 年 4 月，Ludum Dare 26，主题"Minimalism"，van den Berg 用一个周末交出这个只有左右键的原型；原型免费开源后放了两年；2015 年，扩展版《Kingdom: New Lands》上架 Steam 和主机、手机平台，由发行商 Raw Fury 发行；2017 年底系列第三作《Kingdom Two Crowns》（Noio 与 Fury Studios 合作开发）全平台发售，系列累计销量达到百万量级（据发行商历年公布）。全系列走的是**付费买断**路线，不靠广告不靠内购——极简玩法的商业版，恰恰把收入做在了“内容增量”上：新地图、新君主、坐骑系统、双人合作。

**给个人开发者的参照系**：原型免费开源，作用是积累社区和反馈（203 颗星在这个体量里不算多，但 LD 社区的曝光和后继开发者的引用才是隐性收益）；商业版做垂直增量和多平台发行，收入全在买断。这条“周末原型→开源放养→商业系列”的路径，比“先憋三年大作”的风险低得多。

**给我的灵感**

**点子一：换皮“守夜人”。** 把“骑马国王+昼夜防御”的骨架整个搬过来，换成中式题材：你是一座边城烽燧的守将，白天巡视城墙、给民夫扔铜钱，夜里狼群和流寇从荒原扑来。美术可以全用像素剪影（原版就证明了剪影比细节省事），保持“只有一个方向键”的交互。网页版免费引流，itch.io 放付费完整版。工作量：核心循环一周，打磨两周。

**点子二：继承制 roguelike。** 原版死了就重开，这里加一层钩子：国王死了，继承人登基——每个继承人随机带一项“祖训”（开局多一枚金币 / 弓箭手射程 +20% / 墙便宜一半），血脉可以延续三五代。随机继承人就是随机奖励，家族树就是收集欲，两套上头机制几乎零成本接进原循环。适合做成手机买断或 Steam 小品。工作量：两到四周。

**点子三：每日一城。** 给网页版加“今日种子”：全世界玩家同一天拿到同一张地图、同一波怪物时序，比谁活过更多夜，配一个每日排行榜。这是 Wordle 验证过的传播机制，成本只是一段种子随机数生成器和一个记分板，换来的是每天回访的日活结构。变现走网页广告或赞助位。工作量：两到三周。

**上手**

- 仓库：https://github.com/noio/kingdom （代码、素材、`todo.txt` 全在里面）
- 在线试玩：原型是 Flash 制作，如今需要 Ruffle 这类 Flash 模拟器才能在浏览器运行；Ludum Dare 26 的参赛页（ldjam.com，搜"Kingdom"）能看到当年的原始入口
- 商业版：《Kingdom: Two Crowns》在 Steam、Switch、PS、Xbox、iOS、Android 各平台均有售，想先感受完整形态可以从它入手

一个只有左右键的周末原型，把“做减法”做到了能卖百万份的程度。下次立项前，先问问自己：我的游戏，能不能砍到只剩两个键？

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