下载 App
《公交公司》开发者日志3
修改于10/225 浏览综合
《公交公司》开发者日志3 · 让城市的成长,变成「新问题」而不是「新数字」
这一期聊成长节奏、环线,以及我们怎么把「到点反转」改成一条连续曲线。
一、一个被试玩否定的版本
先说失败的部分。
第一版中局做了 18 分钟,六个阶段,城市一阶段一阶段地长。骨架是对的,资源、站点、需求都按计划到账。但试玩反馈很直接:
「18 分钟版主要是把相同内容摊长了,节奏变慢。」
这句话很致命。它说明我们做的是拉伸,不是成长。18 分钟里玩家没有遇到新的问题类型,只是同一件事做得更久。
于是这一轮我们做了个反方向的决定:不继续拉长时间,先增加决策密度。
二、成长必须改变「问题」,不能只加「数字」
设计文档里有一条硬约束,是这次反思的核心:
每次城市成长,应改变至少一种网络问题:
- 新增服务范围
- 改变主要出行方向
- 增加换乘需求
- 让既有通道承担更多线路
- 使原本合理的线路长度变得不再合理
不能只在原站点把乘客生成速度持续调高。
于是「成长版」改成这样:600 模拟秒,每 40 秒开放一个新站,五站起步,最终 18 站。同时资源陆续到账:
时间 新资源 累计车数 线路资格
起步 四辆普通车 4 红、蓝、金 3 线
1:20 +1 普通车 5 3
2:20 大容量车开放,+1 大容量车 6 3
3:20 +1 普通车、紫线资格 7 4
4:20 快速车开放,+1 快速车、+1 枢纽名额 8 4
…… …… …… ……
8:20 +1 普通车、+1 枢纽名额 12 5
注意一个细节:新站开放后有 15 秒的「无新区需求」窗口。这不是 bug,是刻意留的:让玩家有时间规划、投车,而不是刚看到新站就被需求淹没。
三、三种车型:不是数值大小,是能力不同
成长版引入了三种车。我们没有做成「贵的更好」,而是让它们能力不同、代价不同:
车型 容量 理想速度 停站 用途
普通车 8 人 22 米/秒 0.8 秒 基础班次与分散覆盖
大容量车 16 人 22 米/秒 1.0 秒 集中客流,一班带走更多人
快速车 8 人 30 米/秒 0.8 秒 外围长距离与较短周转
大容量车不等于「班次翻倍」——它停站更慢。快速车也不能穿过慢车、不能凭空获得独立车道,桥梁仍然限速 14 米/秒。快车的优势只在「前方有空间」时才成立,堵在路上一样要排队。
我们花了不少力气确保这些差异是真实的:车型在发车时固定,改线、闭环、撤销都不会在途中偷偷换掉车的能力。分车型的库存总和必须等于总空闲车辆——不能凭总数造出不存在的车。
四、环线:为什么它值得单独做
往返线(shuttle)和环线(loop)看起来只差一个「首尾相连」,但对玩家的决策影响很大。
往返线的车到终点要掉头,环线不用。这带来一个真实的取舍:环线能省掉掉头时间,但一辆环线车只提供一个方向的班次——正向的车不会顺便把反向的人也带走。
实现上最容易出错的是「方向」这个语义。往返线的方向由站序唯一确定,没有第二种走法;但环线里,同一对站点有两条真实的弧线——从站 6 到站 1,既可以沿正绕过首尾,也可以倒着穿过中间所有站。两条路长度不同,是不同的物理行程。
这里我们踩了个跟第 02 期同源的坑:当两条弧代价完全相等时(对径站点在四站环线上很常见),方向其实不携带任何信息。这时如果还锁死规划时枚举到的那个方向,就等于凭空拒绝了先到的反向车。
所以判据是信息量,不是「代码好写」:
- 代价不等时 → 方向有意义,必须尊重;
- 代价相等时 → 方向没信息量,谁先到谁承运。
五、把「到点反转」改成一条曲线
中局原本有一个回程潮汐:705 秒那一帧,全城的需求权重瞬间从「住宅→办公」翻成「办公→住宅」。
问题有两个:
- 不真实——现实通勤不会在某一秒集体掉头;
- 不可读——玩家只看到候车突然涌向另一个方向,面板上却没有任何趋势提示,只能事后从失败里反推。
于是我们把它做成一条梯形曲线:
1.0 | ┌──────┐
| / \
0.0 |__________/ \__________
渐升 保持 渐落
峰值、保持时长、渐升渐落窗口都是手工设定的固定曲线,不读取玩家成绩来偷偷调难度。同时面板上加了实时文案,让玩家能看见趋势:
回程强度 文案
≥ 0.999 回程高峰:办公与商业向住宅的出行达到本局峰值。
≤ 0.001 通勤去程:需求仍以住宅出发为主。
> 0.5 回程正在增强(约 N%);住宅方向的到达需求上升。
其余 去程向回程过渡(回程约 N%);注意双向需求开始并存。
验证时我们让 OD 方向占比从 0.62 → 0.37 → 0.29(住宅出发占比)连续变化,确认是渐变而不是跳变。
六、这一期的教训
- 时长不等于深度。 把 6 分钟拉到 18 分钟,玩家不会觉得更耐玩,只会觉得更慢。要增加的是新的问题类型。
- 参数要能被看见。 潮汐曲线做得再平滑,玩家看不见趋势也白搭。数据变了,界面就得跟着说人话。
- 「二选一」不该是「选错就死」。 资源包改变的是路径,不是结局。












