<!-- title: 《Canabalt》一个按钮，跑出一个品类 -->
<!-- domain: games -->
<!-- repo: AdamAtomic/CANABALT -->

# 《Canabalt》一个按钮，跑出一个品类

## 一、仓库档案

| 项目 | 情况 |
|---|---|
| 仓库 | [AdamAtomic/CANABALT](https://github.com/AdamAtomic/CANABALT) |
| 语言 | ActionScript 3（据仓库页面） |
| 引擎 | 作者自研并开源的游戏框架 Flixel |
| 作者 | Adam "Atomic" Saltsman，个人开发者，Flash 时代独立游戏的代表人物之一 |
| 许可 | 自定义许可：源码可以看、可以学，直接拿去上架不行，商用要另谈（以仓库许可文件为准） |
| 状态 | 2010 年前后的时间胶囊，本体早已不动，但它带出来的品类活到了今天 |

一句话定性：**这不是一个还活跃的项目，这是一份“品类起源地”的活体标本**。价值不在代码新，而在它是无数后来者抄过作业的原始图纸。

## 二、这游戏是什么

一句话说清玩法：**你是一个西装男，在正在被巨型机器人拆掉的城市屋顶上狂奔，全程只有“跳”一个按钮，跑多远，分多高。**

没有血条，没有背包，没有剧情演出。整座城市在背景里缓缓塌陷，你踩着楼顶一路向东，唯一的操作是按一下跳跃键——跳早了撞墙，跳晚了掉缝，落地滚一圈损失速度，速度越慢越容易被身后的爆炸追上。这就是全部规则。

```mermaid
flowchart TD
    A[开局：自动起跑] --> B[扫一眼前方：楼距、箱子、炸弹、断桥]
    B --> C{一键决策：现在跳吗}
    C --> 跳错了 --> D[撞墙或坠楼]
    D --> E[死亡结算：距离就是分数]
    E --> 就差一点超越自己 --> A
    C --> 时机正确 --> F[满速落地 速度还在涨]
    F --> G[决策窗口越来越窄]
    G --> B
```

这个循环最狠的地方在于**它连“再来一局”按钮都省了**——死亡结算的瞬间，分数和“最佳”摆在你眼前，误差通常只有几十米，手指自己就按下重开了。后来所有“一局三十秒”的品类设计，都在这个循环里。

## 三、为什么上头

把它拆开看，四条机制撑起全部成瘾性：

**1. 决策压缩到一个比特。** 大部分游戏上头靠选项多，Canabalt 反着来：把操作删到只剩“跳/不跳”，但把*时机*的精度做到帧级。决策空间越小，每次决策的心理权重越大——你在空中那一秒想的不是“接下来干嘛”，而是“这楼我跳不跳得过”。这是把策略深度藏进了反应深度里。

**2. 加速即失控，失控即乐趣。** 速度自动往上走，且不回落——你能感觉出第 40 秒和第 10 秒完全是两个游戏：楼距没变，留给你的反应时间腰斩。**难度不是被设计出来的，是时间的函数**。这让“再多跑十秒”永远是一个够得着但抓不住的目标，典型的“之”字形心流曲线。

**3. 死亡即复读的误差设计。** 注意它的死亡体验：几乎从不“惨败”。你死在离上一个落脚点一步远的地方，死因肉眼可见——“刚才那跳早了 0.2 秒”。这种**可归因的失败**是重开率的发动机：玩家不觉得是游戏刁难，只觉得是自己手抖，而手抖是可以修的。对比一下那种死因不明的硬核游戏，留存差距就在这。

**4. 随机但公平的城市。** 城市每局都是程序生成的，但生成器按难度曲线排布障碍——前期必有垫脚楼，后期才给你断桥加炸弹的组合拳（据作者访谈）。随机性保证新鲜感，生成规则保证“死了不能怪地图”。再加上满城乱飞的鸽子、偶尔从窗户里跳出来陪你跑的路人、砸穿楼层的炸弹——**这些纯表演性质的细节没有一个影响判定**，却把“末日感”演满了。上头的游戏大多有一个共同点：核心规则极简，世界却好像很忙。

## 四、技术拆解

这是 ActionScript 3 写的 Flash 游戏，2026 年看技术栈像看出土文物，但骨架一点不过时：

- **Flixel 框架**：作者自己的开源 2D 引擎，State 状态机 + 精灵 + 摄像机三件套。它后来移植成 Haxe 版 HaxeFlixel，至今活跃——本栏目之前写过的《Funkin》（周五夜放克）用的就是它。你等于在一份源码里同时看懂一个游戏和一个引擎。
- **程序化关卡**：楼顶布局由生成器按节奏曲线拼装，不是手摆的地图。这是今天所有“每日种子”玩法的祖师爷级实现，代码量小到一个人一周能吃透。
- **手感细节清单**：镜头跟随带前瞻偏移（往跑动方向多看一截）、落地镜头轻震、速度损失用翻滚动画消化。这三样几乎零成本，却是“跟手感”的全部来源——想抄跑酷的，这份清单比代码本身值钱。
- **输入即全部**：整个游戏逻辑收敛成一个“跳跃请求”，意味着你今天用 Phaser、PixiJS、Godot 重写，第一天就能出原型。

可直接复用的组件：程序化平台生成器、速度-难度映射曲线、镜头跟随方案。许可方面注意：**代码教学用途没问题，美术音效和直接上架受自定义许可限制**，商业化请换素材、重写实现。

## 五、变现观察

Canabalt 的变现路径是教科书级的“小杠杆撬大钱”，而且踩中了两个时代红利：

**第一波：Flash 门户赞助。** 2009 年前后，4399 式的 Flash 游戏门户抢爆款抢红了眼，流行玩法是买断“站内版”——给游戏换个水印、锁个域名，付费独占或分站授权。Canabalt 这种一眼爆款，属于门户排队要的货。作者后来在多个访谈里提过，这游戏靠授权和后续版本，把一个手感练习项目变成了持续收入（据公开访谈）。对个人开发者，这就是那个时代最干净的变现：**做产品，不接广告，门户替你分发和收款**。

**第二波：iPhone 付费下载。** 2010 年它登陆 iOS 走付费下载，拿到了苹果的推荐位，成了早期“一键游戏也能卖钱”的标杆案例之一（据当年报道）。之后的事实更夸张：Temple Run、Subway Surfers 沿着这条跑道把“无尽跑酷”做成了移动端下载量最大的品类之一——而它们的核心结构，距离、速度、一键、复活，和 2009 年那个西装男一模一样。

**本仓库的变现痕迹**：没有广告 SDK，没有内购，变现全在仓库外面——授权、付费移植、以及最大的那笔隐形资产：**Flixel 的开发者心智**。作者后来和妻子创立了发行工作室 Finji，《林中之夜》《Overland》都是他们发出来的——从写框架的个人开发者，到发行别人的游戏，这是开源游戏作者升级的完整路径。同类游戏跑通的案例就更不用数了：超休闲跑酷至今还是广告变现之王，“死亡后看一次激励视频原地复活”这个广告位，就是这个品类发明的。

## 六、给我的灵感

**灵感一：两周版“一键跑酷”Web MVP。** 用 Phaser 或 PixiJS，只做三件事：恒定加速的自动奔跑、抛物线跳跃、按难度曲线的种子化楼顶生成。美术可以用纯色几何剪影——原版全程灰蓝双色调，恰恰证明了这品类不靠美术吃饭。上线挂 itch.io 走 PWYW，网页版接广告联盟跑数据。验证指标只有一个：玩家死亡后 3 秒内重开的比例。这个数字过了 60%，你就有一个能养的产品雏形。MVP 工作量：业余时间两周，其中手感调校占一半。

**灵感二：换皮不换骨，把“跑”塞进中国式场景。** 一键跑酷的结构对题材极其友好：赶末班地铁的通勤者（站台间隙）、下楼的骑手（红灯就是断桥）、晚自习翻墙的学生（探照灯就是炸弹）。核心不变：速度自涨、一键、死亡可归因。这类题材在移动端天然适配**激励视频“复活一次”**——这是被全行业验证过几十亿次的广告位。MVP 量级：在灵感一基础上换皮加难度表，约一个月。

**灵感三：加一层“每日城市”钩子。** 原版城市随机生成但局局不同，你把它收敛成 Wordle 式结构：每天全球同一个种子、同一座城市、同一条难度曲线，比谁跑得远，排行榜只显示好友和前 1%。实现成本约等于零——种子即关卡，成绩即一个整数——但它把单机跑酷变成了社交攀比场，回访率、分享率一起涨。这一层叠在灵感一或二之上，一周工作量，换留存翻倍，是这个清单里性价比最高的一笔。

## 七、上手

- 仓库：<https://github.com/AdamAtomic/CANABALT>（ActionScript 3 源码 + Flixel 框架代码，当教材读价值最高）
- 想玩原版：Flash 已退役，用 Ruffle 这类 Flash 模拟器跑原版页面，或搜任意 HTML5 移植版；仓库本身没有打包 Release，需要自己搭 Flash 运行环境
- 引擎续作：HaxeFlixel（<https://haxeflixel.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)
