Ludo Atlas · 类型手册 · 殖民模拟(Colony Sim)¶
类型手册 · 第二辑。定位:不扮演英雄,而是指挥一群有自己想法的人在一个危险的世界里活下去。玩家是规划者与应对者,故事不是写出来的,是从需求、心情、事件与应对的相互作用里长出来的。 配套:《游戏设计手册》(核心循环与叙事系统)·《技术实现手册》(AI 代理与性能)·《制作管理手册》(范围与估算)·《案例研究集》(长线项目复盘)。 本文不放外链。标杆只列大众熟知的作品,没玩过的先玩再看;文中数字均为量级参考,以自己项目的实测为准。
1. 定位与核心循环¶
一句话定位:殖民模拟是管理一群个体代理(agent)的类型。玩家没有主角,操作对象是一个营地与其中的每个人;个体有自己的需求、心情与技能,自己吃饭、睡觉、干活,也会自己惹祸。玩家的乐趣分两层:当管理者(规划、分配、优化),当应对者(危机来了,看你怎么接)。它的原型难度在类型矩阵里属于偏高一档,因为四根硬骨头同时出现:个体模拟、涌现叙事、性能、存档。
与相邻类型划边界:
| 相邻类型 | 边界 |
|---|---|
| 生存建造 | 那类玩家自己砍树盖房;殖民模拟里动手的是小人,玩家决定“让谁去、什么时候去” |
| 模拟经营 / 城市建造 | 那类管理抽象的资源与统计曲线;殖民模拟的细到“一个有名有姓的人,今天没吃上饭,跟室友吵了架” |
| RTS | RTS 的单位是可以牺牲的数值;殖民模拟的个体是资产加故事载体,死一个有名字的人是一个事件 |
| 4X / 大战略 | 那类以帝国为单位远距离操盘;殖民模拟通常围着一个据点与几十个人做深 |
一个自检问题:把个体模拟换成无名的数字劳动力,游戏还成立吗?答案若为“不成立”,你做的就是殖民模拟。
核心循环用动词环写:
规划与建造 → 指派工作 → 个体自己生活(吃、睡、社交)→ 事件与威胁打断 → 应对与善后 → 扩张与升级 → 更重的威胁
循环的嵌套层级,每一层都要有钩子:
| 层级 | 时长(现实) | 玩家在做什么 | 结算点 |
|---|---|---|---|
| 分钟级 | 十几秒一次 | 一个决策:接不接这个活、修不修这堵墙 | 即时反馈 |
| 天 | 10-30 分钟 | 一段日常加一个事件 | 事件结束、日志更新 |
| 周 | 数小时 | 建设阶段:住房、防御、供暖、医疗 | 里程碑(新房间、新科技) |
| 整局 | 数十小时 | 从落难者到堡垒 | “故事讲完了”或重建 |
开工前先定死三个问题:一局是什么形态(无限沙盒、有限目标,还是分阶段的叙事节拍);殖民地规模的目标区间(常见量级十几人到几十人,见 §4);压力从哪里来(外部世界、内部情绪,还是两者交替)。三个答案决定后面所有系统的形状。
2. 玩家体验目标与标杆作品¶
玩家来玩这个类型,要的是四样东西,按优先级排。注意第三条与第四条天然打架,立场必须选一个,摇摆会两头不讨好:
| 体验目标 | 玩家的原话 | 设计着力点 |
|---|---|---|
| 故事所有权 | “这是我的故事” | 个体有名有姓、事件有因果、日志可回看 |
| 管理乐趣 | “把每个人安排到该在的位置” | 工作优先级、分区、自动化设施 |
| 危机应对 | “袭击来了,先救谁” | 事件强度匹配实力,多解且可恢复 |
| 依恋与失去 | “我不能接受他死” | 关系网、技能专精、墓碑与纪念 |
标杆作品(只取大众熟知样本,结构差异比质量高低更重要):
| 作品 | 核心取向 | 可学的一招 |
|---|---|---|
| 环世界(RimWorld,也译边缘世界) | 故事生成器范式的定义者 | 用“节奏策略 + 事件池 + 强度评估”把随机事件编成故事 |
| 矮人要塞(Dwarf Fortress) | 模拟深度的天花板 | “失败即乐趣”:世界先于玩家存在,死得其所也是内容 |
| 监狱建筑师 | 需求与政策的小场地样本 | 把“需求 → 政策 → 反馈”链条做成可读的界面系统 |
| 缺氧 | 物理模拟叠殖民管理 | 让压力来自系统耦合(气体、温度、液体),而不是外敌 |
| 风暴之城 | 殖民循环的局内化变体 | 用 roguelite 的单局结构解决“后期膨胀与玩太久” |
几款共享一个前提:个体有需求与情绪,故事从系统里长出来。抄它们的“系统密度”,不要抄它们的“第一版”。
3. 设计要点¶
3.1 个体模拟:需求、心情与技能¶
个体是这个类型最小的叙事单位,也是最大的成本项。三件套先立住:
需求(needs):每个需求是一条随时间衰减的量,衰减速度决定节奏;需求与解法成对投放,没有解法的需求等于纯惩罚。常见清单:
| 需求 | 满足方式 | 惩罚线 | 设计注意 |
|---|---|---|---|
| 饥饿 | 进食 | 低值掉心情,归零伤身 | 前期最常见的打断源,衰减放慢 |
| 睡眠 | 睡觉 | 缺觉掉心情、效率下滑 | 床的品质做差异化 |
| 休息/娱乐 | 消遣设施 | 娱乐不足慢慢抑郁 | 中期上线,防“干完活没事干” |
| 社交 | 聊天、聚会 | 孤独掉心情 | 关系网的故事发动机(见 §3.4) |
心情(mood):需求满足度的加权和,加上事件修正(正面与负面 buff)。心情不是装饰,是可干预的仪表:
- 阈值要分层:低心情先提示,再进入“崩溃行为”(发疯、暴食、出走、斗殴);崩溃之后给恢复窗口(睡觉、吃药、倾诉),不要一次性毁掉角色。
- 每个修正都要能被查到:“他为什么心情差”必须有一个确切答案,否则玩家会把系统当成随机数。
技能与特质:技能决定工作速度与质量,带兴趣加成学习更快;特质修正行为而不只是数值(懒惰的人干活慢,也更容易在娱乐上花时间)。两者相加制造差异,差异制造分工,分工制造故事:“我们唯一的医生受了伤”比“医疗产能下降 20%”好听一百倍。
3.2 工作指派与优先级¶
殖民模拟的管理层只有三根杠杆:谁去(分组)、做什么(工作类型)、先做哪个(优先级)。全部围绕一张工作表展开。
- 工作类型做成清单(采集、建造、搬运、烹饪、医疗、战斗等,常见 10-20 种),每个个体对每种工作有等级与开关;优先级用简单分级(禁用、低、中、高这类 3-5 档)比伪连续的百分比好懂,默认值必须设计过,否则新手一进游戏就看到小人乱跑。
- 指派要能批量与模板化(人群分组、职业预设、复制设置);给“等待”一个可见性:谁在偷懒、谁被卡住,一眼能看到,玩家才不会把系统问题当成 AI 智障。
3.3 故事生成器:事件驱动叙事¶
理念一句话:不写剧情,写会生成情节的系统。玩家想要的不是编剧写好的桥段,而是“这一局,只有我经历过”的故事。实现上是三件套:
- 强度评估器:给殖民地算一个实力值(人口、财富、装备、防御),这是事件系统的节拍器。环世界的做法是让威胁强度跟随殖民地财富,于是“越富越危险”,玩家攒下的每一分家当都在变成未来的麻烦。
- 事件池:事件按类型(威胁、机遇、琐事)与强度分档,触发条件可组合(季节、天气、位置、前置事件)。
- 节奏策略:同一套事件系统,换一个节奏就换一种体验。稳步加压型、长喘息型、无规律型各做一个,让玩家在开局选,或随难度解锁。
故事从系统里长出来,还有两个放大器:
- 关系网:个体的社交自动生长(朋友、恋人、仇人),吵架、重归于好、亲友死亡都被继承,这是免费的故事发动机。
- 记录与呈现:事件日志、家谱、墓碑、纪念物,把系统的“输出”翻译成玩家能复述的“故事”。日志本身就是叙事界面;不呈现的模拟等于没发生(见 §3.5)。
3.4 事件与随机性:危险事件的压力曲线¶
事件是殖民模拟的“关卡”。玩家能接受的随机量这样分层:
| 随机层 | 内容 | 作用 | 失控的后果 |
|---|---|---|---|
| 世界生成 | 地图、同伴特质、初始位置 | 定义“这一局的问题” | 开局就注定没法玩(无食物、无矿区) |
| 过程随机 | 事件、天气、疾病、来客 | 制造节奏与意外 | 事件连发,玩家疲劳或麻木 |
| 结果随机 | 命中、作品质量、手术成败 | 制造紧张 | 读档刷结果,紧张感归零 |
压力曲线的四条规则(与《关卡设计手册》的强度曲线同源):
- 强度跟实力走,不跟时间表走:威胁档次按实力评估选择,前 30 分钟不该出现灭顶级事件。
- 高潮之间留喘息:每次重大事件之后给一段平静的生产期,长喘息与危机交替。
- 重大事件前有预告:伏击之前有侦察报告,寒冬之前有换季提示。看不见的灾难是差评重灾区。
- 给死亡螺旋一个止损出口:崩一个环节导致连锁崩盘(食物断供、全员虚弱、更没法生产)是这个类型的经典失控。至少留一条救命通道:盟友救援、商队、难度选项、撤退重建。
随机性还有一个来源要克制:重试。单机游戏的玩家会读档,把“可以刷”的随机量降权(结果随机只给小幅修正,不给成败),把刷不了的随机量加重权重(世界生成、事件)。读档刷还是赌一把,这是设计立场,要提前定。
3.5 涌现叙事的边界控制¶
涌现叙事会从两个方向崩掉,边界控制就是防这两头。
一头是无感:系统在运转,玩家没有感知。症状:心情掉了玩家不知道;事件发生了玩家不关心;故事只存在于日志里。对策:
- 状态可见:每个异常状态都要能在一到两次点击内查到原因和出口。
- 输出靠筛选:呈现层只留“可讲的故事”(有名字、有因果、有后果),琐事沉进日志;每个事件至少要能对应一个玩家决策(预防、应对、善后),对应不上的事件是噪音。
另一头是失去:玩家失去掌控,叙事变成霸凌。症状:事故无法预防、惩罚不可恢复、被迫看自己的心血被随机数碾碎。对策:
- 打断预算:每单位时间强制打断玩家心流的次数设上限,琐事不弹窗。
- 失败分级:从受伤、损失财物,到建筑被毁,再到死亡,惩罚逐级加重;每一级都有恢复窗口,不要一步到位。
- 玩家是作者之一:危机的解法至少两种(硬扛、躲、谈、逃),单解的高压事件只在罕见的大节点使用。
- 收尾仪式:失去要可讲述,墓碑、遗物、以死者命名下一艘船,把损失转化成故事的结尾而不是删除键。
自检方法只有一个:试玩之后请玩家复述“这一局发生了什么”。讲不出故事,说明系统再复杂也没有转化为叙事。
4. 技术要点¶
殖民模拟的工程难点集中在:模拟循环(tick)、个体 AI、寻路、存档与性能,全部与引擎无关,本节只给结构。另有一条贯穿全部系统的底线:数据驱动,个体不是脚本,而是数据组件与行为系统的组合;它是模组与社区长尾的前提(见《技术实现手册》与《Mod 与 UGC 手册》)。
模拟循环与 tick 策略(数量与性能的平衡点):
- 逻辑用固定步长的 tick(常见 30-60Hz),渲染与逻辑解耦;模拟量分频率层:位置与执行高频(每 tick),需求与心情评估降频(0.5-2 秒一次),作物生长、温度、经济等宏观量最低频(秒级或更粗)。
- 错峰(time slicing):给每个个体一个 nextThink 时间戳,把决策摊到不同帧;禁止“同一帧所有个体一起评估”。几十个个体就值得用,几百个个体没它必卡。
- 模拟降级(sim LOD):远离玩家视线的个体降频,或只算事件;访客与敌人按必要性排序。
- 决策架构用效用评分而不是硬编码状态机:每个候选行为按需求紧急度打分,选分最高执行;需求过阈值或目标失效时打断重评估。状态机分叉爆炸是这类项目的头号技术债。
- 把每帧的毫秒预算写进设计文档:个体 AI 与寻路占多少,超了就降频、降级,而不是“加机器”。
寻路与空间:
- 一张共享的可走性图(网格或分层图),个体不各自持有地形数据;工作与休息只是图上的点与区域。
- 寻路缓存:按区域缓存路径,目标变化才重算;大图用分层寻路(房间图加房间内网格);门、家具、可拆除建筑会动态改图,改图时给受影响区域打脏标记,不要全图重算。
存档:
- 存档就是整个世界:地图格子、个体、物品、事件状态、随机种子全量序列化。从第一天就带版本号与迁移函数,改数据结构时老档必须能升上来;坏档是差评重灾区。
- 存档体积随物品与地图增长,物品要能堆叠、压缩;自动保存异步写盘(先写临时文件、成功后改名,防崩溃损坏)。联机(若有)是另一个量级:先做好单人,再评估同步粒度(见《联机与后端深入手册》)。
5. 内容量与工作量参考¶
以下为同类项目的常见量级,用于估算范围,不构成承诺。
| 内容单元 | 单位成本(量级) | 最小可行 | 商业体量 | 备注 |
|---|---|---|---|---|
| 一个模拟系统(需求、工作、战斗、医疗等) | 1-4 周 | 5-7 个 | 12-20 个 | 单做都不难,成本在系统耦合 |
| 一个事件(含条件与结果) | 2 小时-2 天 | 20-30 条 | 80-200 条 | 文字、平衡、测试各过一遍 |
| 一种物品与配方 | 1-4 小时 | 60-100 种 | 200-400 种 | 含图标与平衡 |
| 一个工作类型 | 半天-2 天 | 6-10 种 | 15-25 种 | 连带优先级与动画 |
| 一个特质的写作 | 0.5-2 小时 | 30-50 条 | 100-200 条 | 成本低、故事密度高,多做 |
| 一个派系 / 生物 | 1-3 天 | 3-4 个 | 8-15 个 | 含行为逻辑与平衡 |
| 首局时长 | 10-20 小时 | 30-60 小时 | 100 小时以上 | 沙盒形态下由玩家决定 |
几条量级结论:
- 成本结构是“前重后长”:模拟骨架(需求、工作、寻路、事件系统)占前期大头;之后是持续的内容与平衡(事件、物品、更新),没有终点。给强度评估器留出可视化与调参工具:平衡是无底洞,全靠感觉调,后期必失控。
- 环世界由一人主导开发、经历多年早期访问;矮人要塞由两人开发二十余年。任何“半年做一个环世界”的估计,先乘三再乘三。
- 压缩优先级从高到低:砍地图尺寸,合并派系与生物,减物品与配方,减事件数量。不要砍个体模拟的深度,那是这个类型的卖点;宁可少一半内容,也要保住“人会自己活”的感觉。
6. 第一个原型怎么起步¶
目标:两周到一个月,做出“一个小人自己活着”的最小循环。占位美术,一个房间,一个人。
| 里程碑 | 做什么 | 验收(看行为,不看问卷) | 参考工期 |
|---|---|---|---|
| M1 一个会活的人 | 两种需求(饿、困)加吃饭睡觉加寻路 | 不操作,小人自己找食物吃、找床睡 | 3-5 天 |
| M2 三个人与分工 | 工作优先级加 2-3 种工作 | 玩家改优先级,能看到行为随之改变 | 5-7 天 |
| M3 心情与日志 | 心情系统加事件日志加状态查询 | 玩家能说出“他为什么心情差”并干预成功 | 3-5 天 |
| M4 一个威胁与善后 | 一次袭击或疾病,加医疗与恢复 | 危机结束后,玩家能讲出发生了什么 | 5-7 天 |
| M5 建造与存档 | 放置与拆除,加全量存档 | 关掉重开,世界还在,继续昨天的事 | 5-7 天 |
起步纪律:
- 先定“一局的形态与失败条件”再写一行代码(无限沙盒和有限目标,事件系统的写法完全不同);每一档规模先自己玩一小时,只回答一个问题:“这一小时里有没有发生过值得讲的事?”
- 不做美术、不做多题材、不做大地图;数据表从 M1 就开始外置(需求、工作、特质)。这个类型的第一乐趣是“看小人活着”,先验证它。
7. 常见坑¶
- 用硬编码状态机写个体 AI:分支指数增长,第五个系统之后没人敢改。改用效用评分加数据表(§4)。
- 心情系统不可读:小人崩溃了,玩家查不到原因。每个修正都要有出处,阈值分层(§3.1)。
- 事件强度不看实力:前期灭顶、后期无聊,两个方向都是失败。强度评估器优先做(§3.3)。
- 事件连发没有喘息:玩家从期待变得麻木,叙事疲劳。打断预算进设计文档(§3.5)。
- 死亡螺旋不可逆:食物一断,全员虚弱,越来越没法翻盘。至少留一条救援通道(§3.4)。
- 工作优先级默认值没设计:新手进来看到小人乱跑,判定“AI 很蠢”。默认值就是产品的一部分。
- 每帧全量评估所有个体:几十人卡到不能玩。分频、错峰、模拟降级三个工具都用上(§4)。
- 模拟没有呈现层:内容很丰富,玩家感知不到,等于没做。日志、告警、状态面板是核心系统,不是界面边角料(§3.5)。
- 存档从简:世界全量状态加后期改结构就是坏档。版本号与迁移函数从第一天就有(§4)。
延伸阅读¶
- 《游戏设计手册》:核心循环、系统互锁与叙事三节,是第 3 节的底稿。
- 《技术实现手册》:AI 代理、寻路与性能预算的方法论,第 4 节的完整展开。
- 《制作管理手册》:估算、范围控制与长线排期,与第 5 节互为补充。
- 《案例研究集》:找模拟与建造类的拆解,重点看内容消耗速度与更新节奏的真实数字。
- 《独立开发者深度谱》的 Tarn Adams 专题:矮人要塞式的二十年单人长跑样本。
- 《避坑大全》:项目管理与协作类坑位,立项评审时逐条对照。