<!-- title: 《Cytopia》把模拟城市拆给你抄 -->
<!-- domain: games -->
<!-- repo: CytopiaTeam/Cytopia -->

模拟经营是小游戏世界变现能力最强的品类之一，但市面上你几乎找不到一个像样的开源范本——直到你搜到 Cytopia。这个仓库把《模拟城市》那套统治了行业三十多年的核心循环，从头到尾用代码写了一遍，挂在一个个人开发者发起的组织名下，协议开源，白送。对想入局经营类小游戏的独立开发者来说，这相当于别人把印钞机拆开了摆在桌上，就差你上手摸一遍齿轮。

## 一、仓库档案

| 项目 | 信息 |
|---|---|
| 名称 | Cytopia |
| 地址 | https://github.com/CytopiaTeam/Cytopia |
| Star | 千级规模（据仓库页面，本轮未在线核实具体数字） |
| 语言 | C++（SDL2 渲染，CMake 构建） |
| License | GPL-3.0（据仓库页面） |
| 作者 | 个人开发者发起，挂 CytopiaTeam 组织，核心提交长期集中在个位数人手里（据仓库页面） |
| 平台 | Windows / macOS / Linux 桌面端为主，社区做过 Web 端尝试（据仓库页面） |
| 定位 | 免费开源的城市建造游戏，玩法对标经典《模拟城市》 |

先说清楚它的成色：这不是引擎，不是 Demo，是一个能从头玩到尾的完整游戏——划住宅区、看小房子长出来、拉电线、调税率、看人口里程碑往上跳。仓库近年更新节奏不算激进（具体以仓库页面为准），但换个角度看，代码进入稳定期恰恰是研读的黄金窗口：功能不再大动，逻辑清晰可抄。

## 二、这游戏是什么

一句话说清玩法：**你在一块网格上铺路、划区、通水电，小房子自己长出来，市民交税，你用税收盖更多东西，从一个小村庄一路盖成大都市。**

听着平平无奇？这套公式是 Will Wright 在 1989 年发明的，此后 thirty多年，从《模拟城市》到《城市：天际线》再到微信小游戏里的各种“小镇经营”，全是它的变体。Cytopia 把它拆到了最核心的几个零件：

- **三区规划**：住宅区（R）、商业区（C）、工业区（I），划下去之后建筑自己长；
- **需求天平**：人口需要工作岗位，工厂需要工人，商业需要客流——三边永远互相拉扯；
- **市政循环**：发电厂、水塔、消防、警察、公园，每一个都要花钱维护，钱从税收来；
- **预算面板**：税率拉高来钱快，市民不高兴就搬走——幸福度与财政的永久拔河。

玩家每一回合做的事，和系统给的反馈，构成一个咬合极紧的循环：

```mermaid
flowchart TD
    A[玩家：铺路 / 划区 / 盖市政建筑] --> B[系统：建筑入驻，人口与岗位上涨]
    B --> C[税收进账，资金变厚]
    C --> D[解锁新建筑 + 人口里程碑]
    D --> E[需求天平移动：缺电？缺岗位？缺公园？]
    E -->|新缺口冒出来| A
    B --> F[赤字 / 拥堵 / 市民流失]
    F -->|坏消息把你拽回来修| A
    C --> G[城市截图，晒给朋友]
    G -->|一句"你这规划不行"| A
```

注意这个循环里三条回流线：**缺口驱动**（需求条永远不平）、**危机驱动**（赤字逼你回来救火）、**社交驱动**（城市是最好的晒图素材）。大多数游戏只有第一条，经营类游戏三条全占——这就是它“睡前必须再玩五分钟”的底层原因。

## 三、为什么上头

把 Cytopia 拆开看，上头感不是玄学，是五个具体的机制设计：

**1. 点哪长哪的即时反馈。** 你划下一块住宅区，几秒内一栋小房子带着动画冒出来。这个“我做了动作→世界立刻变化”的反馈密度，是消除类和建造类游戏共同的心跳频率。Cytopia 里建筑生长是逐级的：小房子→带院子的→楼房，每升一级都是一次微型奖励。

**2. 需求条是永动的钩子。** 三区需求条永远不会真正平衡——住宅区盖多了岗位不够，工业盖多了污染拉低幸福度，你去补公园，人口涨了，又缺住宅。**填掉一个缺口的同时制造下一个缺口**，这是比“体力值”高明得多的留存设计：玩家永远处在“就差最后一块”的状态里。你做任何经营类游戏，这一条直接照抄。

**3. 数字替你打工的进度感。** 城市建造有个独门杀器：增长是持续发生的。你规划完，关掉界面，回来发现人口从 500 涨到 1200——**你不在线的时候，游戏还在替你产出**。这和放置类的心理机制同源，但多了一层“这是我亲手规划出来的”的自豪感。人口里程碑（村庄→小镇→城市）把这条增长曲线切成一截一截的可见目标。

**4. 预算天平的策略深度。** 税率是这游戏的“难度旋钮”：拉到 12% 来钱飞快，市民开始跑路；降到 5% 人人爱你，财政赤字。同样，消防局覆盖半径怎么排、电厂放在下风向还是上风向，全是可优化空间。**策略深度不靠复杂规则，靠的是“几个变量互相牵制”**——这一点对个人开发者极其友好，三个变量的拔河就能撑起一整晚的游玩。

**5. 收集欲加晒图欲的双保险。** 每个人口里程碑解锁新建筑，这是图鉴式收集；而一座错落有致的城市本身，就是天然的社交货币。看看社交平台上“我的小镇布局”类内容的传播力就知道：**经营类游戏的截图自带炫耀属性**，这是消除类、跑酷类都不具备的。

## 四、技术拆解

**技术栈**：C++ + SDL2 + CMake，几乎没有重型依赖。没有 Unity、没有 Godot，就是裸的 2D tile 渲染加一层 UI。对读代码的人来说这是好事：**没有引擎黑魔法，所有游戏逻辑都是明写的**。

**值得你重点看的四个组件**（按含金量排序）：

1. **格子世界模型**。Tile（地块）→ Zone（分区）→ Building（建筑）三层结构，地块承载状态，分区定义规则，建筑是分区上的实例化结果。任何网格类游戏——农场、餐厅、修仙宗门——用的都是这套三层抽象。

2. **需求模拟器（经济 tick）**。每隔一段时间统计全城供需差：住宅容量、岗位数量、人口，三条曲线互相校正，输出三色需求条。这是整个游戏的心脏，代码量可能就几百行，但它是“模拟经营”和“装修摆设”的分水岭。

3. **预算与幸福度回路**。税率→收入、支出→赤字、市政覆盖→幸福度→人口迁入迁出。一个闭环，四个变量，抄走就是一套完整的经济系统底座。

4. **存档系统**。城市就是一张可序列化的数据结构，存档即导出。这意味着“分享城市布局”“异步比拼”这类社交功能天然可实现——存档结构设计得好，后期的裂变玩法几乎免费。

**给你的实操建议**：如果你不写 C++，不用硬啃。这个仓库的正确用法是**读结构、抄逻辑、换语言重写**——经济 tick 和需求天平用 TypeScript 重写也就几百行，渲染层交给 Canvas 或任意引擎都行。真想要 JS 直接可跑的参考，可以去看 Micropolis（初代《模拟城市》官方开源版本）的 HTML5 移植版 micropolisJS，年头老但结构干净，两个仓库对照着看，你会把这类游戏的骨架看得非常透。

## 五、变现观察

Cytopia 仓库本身**零变现痕迹**：没有广告位、没有内购、没有付费版本，纯开源白送。它的价值不在自己赚钱，而在证明两件事：这套玩法一个人写得出来，以及——它周围全是别人赚钱的背影。

**同类跑通的变现案例，按路径分四条：**

- **买断制手游**：《Pocket City》，个人开发者做的移动端城市建造，无广告无内购，纯付费下载照样卖得不错，是“经营题材+一次付费”的代表样本（据公开报道，未核实具体收入）。
- **免费+内购**：手机端的 TheoTown 一类，游戏免费，卖高级建筑包和去广告——把收集欲直接变现。
- **Steam 买断**：《Townscaper》这种“玩具型建造”证明了题材上限——不需要目标感，光“摆得好看”就能卖钱。
- **微信小游戏广告流**：这是对个人开发者最现实的一条。经营类是国内小游戏生态变现能力最强的品类之一，插屏广告、激励视频（“看广告领急救金”“看广告加速建造”）都是平台现成组件，接入成本按天算。

结论很直白：**经营类是“管道最成熟、题材决定上限”的品类**。玩法骨架（本仓库已经免费给你了）不构成壁垒，壁垒在题材选择和钩子设计——这正是下一节要解决的。

## 六、给我的灵感

**点子一：单屏小城，微信小游戏版（MVP 两周）。** 把 Cytopia 的系统砍到只剩四个：三区规划、道路、税收、三个市政建筑。棋盘就一屏，16×16，人口里程碑只做三档。变现：插屏（每次里程碑弹出）+ 激励视频（“市民急救金”：赤字时看广告救现金流）。核心是做减法——《模拟城市》有几十个系统，上头感其实来自其中三个，砍掉其余的，开发周期从一年变两周。

**点子二：中文题材换皮——修仙宗门模拟器（MVP 两到三周）。** 逻辑一字不改，皮肤全换：地块=洞府山头，住宅区=弟子居，工业区=炼器坊，商业区=坊市，税收=灵石，幸福度=宗门声望，市政建筑=护山大阵。经营类玩家对“.numbers 变大”的渴求是通用的，但**中文题材在传播上有天然红利**——宗门、县城、食堂、火锅店，每个都是自带搜索量和梗属性的类型。同类换皮思路在网文和放置游戏里被反复验证过，城市建造这个壳还很少有人用。

**点子三：加一层钩子——同种子每日盖城挑战（MVP 一周，架在点子一上面）。** 借 Wordle 的日更逻辑：每天全网同一张地图种子、同一笔初始资金，72 小时倒计时内盖城，按人口+幸福度计分，晒图排行榜。技术上只需要把随机数改成带种子的伪随机（把 `Math.random()` 换成可复现的 RNG），再加一个分享卡片。裂变逻辑现成：输了的人发挑战卡，赢的人晒规划。经营类的攀比欲一直存在，只是原版没给出口。

三个点子的共同底座都是 Cytopia 这一个仓库：**玩法被验证了三十六年，代码已经开源，管道全部现成——你真正要做的决定只有一个：给这套骨架穿哪件衣服。**

## 七、上手

- 仓库：https://github.com/CytopiaTeam/Cytopia
- 试玩：GitHub 页面的 Release 区和 itch.io 上能找到各平台构建包（据仓库页面）
- 阅读顺序建议：先玩三十分钟，亲手感受“填缺口→新缺口”的心跳；然后直奔经济模拟的 tick 函数（几百行，本仓库最值钱的部分）；再看存档的数据结构——它决定了你后面能加什么社交玩法；渲染层最后看，甚至可以不看。

## 结语

城市建造是个老掉牙的品类，老到很多人以为它没机会了。但看看国内小游戏畅销榜，经营类常年霸榜——**玩法从不老，老的只是没换题材的壳**。Cytopia 的意义是把这套玩法的每一个齿轮都摊开给你看：需求条怎么互相拉扯，税收怎么和幸福度拔河，里程碑怎么把长曲线切成短目标。

三十六年前这套公式卖出了百万份拷贝；今天它开源在 GitHub 上，等你换一件衣服，装上广告管道，重新上架。剩下的问题不是“能不能做”，而是“这周动手还是下周动手”。
### 1. 完成摘要（What was done）

### 2. 下一步计划（What's next）

- 若需精确 Star/License/更新时间，网络权限恢复后补核仓库页约 1 分钟
- 下轮选题建议：① 华容道/数独益智类（栏目连续两轮建议、仍未覆盖）② 你画我猜派对类（需先找到可核实的高星仓库）③ 拓麻歌子类宠物养成（注意与今日已发 VPet 保持题材距离）

### 3. 注意事项（If applicable）

- 本文 Star 数、License、更新时间未在线核实，均按规则标注“据仓库页面”，未编造具体数字；作者 GitHub 句柄等低置信度信息已做模糊化处理
- 《模拟城市》为 EA 商标，文章已在灵感节明确“换皮换题材”路线，避免读者直接套用名称踩 IP 坑
- 文中 Pocket City / TheoTown / Townscaper 仅作变现模式佐证，未引用未核实收入数字

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