下载 App

《公交公司》开发者日志5

修改于10/226 浏览
《公交公司》开发者日志 5 · 教学从 6 步重做成 10 步,以及下一步
这一期聊新手教学的重做、声音系统,以及我们对「涌现」这个主题的最终回答。

一、为什么要重做教学

第一版教学是 6 步硬编码链:if step==1 ... elseif step==5。它教了建线、延长、加车、第二条线、换乘。
但玩家反馈「玩到后面不知道能干什么」,一查发现:游戏已有的编辑能力,大半根本没教。
能力  原教学
缩短线路  未教
加站 / 拆站  未教
连成环线 / 取消环线  未教
移动公车  未教
回收公车  第 4 步后才显示按钮,从未解释
删除整条线路  有按钮,从未解释
概念:乘客 / 座位 / 候车容量  未教
玩家不是不会玩,是不知道这些操作存在。

二、三个关键设计决策

决策 1:教学用独立地图。
原教学和自由运营共用同一张 12 站地图,教学「完成」就是让同一个世界继续跑。这导致教学地图没法为「环线闭合」「缩短绕行」这类需要特定路网的课程专门编排。
现在教学用一张 6 站专用小图,教学结束后重建世界,玩家从正式局的标准初始局面开始。
            6 创意园
            │
   1 ─────── 2 ─────── 5 新港
   │ ╲      ╱ │      ╱
   │   ╲  ╱   │    ╱
   │     ╳     │  ╱
   │   ╱  ╲   │╱
   │ ╱      ╲ │
   4 ─────── 3 街角
决策 2:每步分「操作」和「观察」两个阶段。
act 阶段等玩家操作(自动暂停),watch 阶段等仿真证据(自动运行)。玩家操作时暂停,操作完自动开始——不用玩家自己去点暂停/继续。
决策 3:概念卡分散弹出,可随手划掉。
三张概念卡挂在第 1、3、8 步完成后:
  • 乘客(第 1 步后):每位乘客有自己的出发站和目的站。只有线路真的把他送到目的站,才算送达。经过、路过都不算。
  • 公车座位(第 3 步后):一辆公交有座位上限。车到了站但坐满了,站上的人就上不来——这时候要加车,不是加线路。
  • 站点候车容量(第 8 步后):每个普通站点能容纳 6 人候车。站上满 6 人、或有人等超过 60 秒,该站开始警戒。

三、10 步课程表

#  步骤  动机  玩家操作  完成条件
1  连接  松林社区有人要去中心办公  拖线连 1→2  一名真实乘客送达
2  延长  街角商店开放  端点拖到 3  去商店的乘客送达
3  加车  线变长、车回来慢  拖车到红线  第二辆车实际接客
4  缩短  红线绕远了  拖端点柄到空白  站数减到 3
5  加站  新港社区开放  拖线路段到站 5  站 5 获得真实服务
6  第二条线 + 换乘  创意园还没服务  建蓝线 4→2→6  一位乘客完成换乘抵达
7  环线开合  环线免掉头  红线闭合 → 再打开  先环线再往返
8  车辆调度  一条线车多、一条车少  拖车换线 + 拖车回收  车实际改属
9  删除线路  前任留下一条重复线  点 ✕  金线停靠清空
10  概念收束  —  读卡  —

四、第 4 步「缩短」是最值得讲的一步

这一步我们在设计上花了最多心思,因为它跟玩家的直觉相反。
流程是这样:
  1. 进入时激活站 4,指示玩家「河畔社区开放,把红线延到 4」→ 红线成为 1→2→3→4;
  2. 站 4 与站 1 之间有直连道路,所以 1→2→3→4 其实绕了一圈,班次间隔变差;
  3. 目标改为:「红线现在绕远了,车回来更慢了。把末端 4 从红线上摘掉——拖住 4 的停靠柄,拖到地图空白松开。」
这正好对应设计文档里的一句话:延长不是唯一办法,有时要收回。
很多模拟游戏的隐含暗示是「线路越长越好」,我们想让玩家在第 4 步就学会:网络规划里有减法。

五、几个实现上的坑

坑 1:教学和玩家手动暂停互相顶掉。
原来教学推进时直接写 world.paused = true,会覆盖玩家自己的暂停状态。改成派生值:
paused = pausedManual or pausedByTutorial or status ~= "playing"
教学只写 pausedByTutorial,玩家/HUD 只写 pausedManual,二者任一为真则世界冻结。
坑 2:步骤一重排,散落的硬编码判断全线错位。
HUD 里有十几处 step >= 3、step < 6 这种判断控制按钮显隐。10 步一重排必然全错。改成能力解锁集合 tutorial.unlocked.addBus,判断「这个能力解锁了吗」而不是「第几步」。
坑 3:环线闭合段必须走真实道路。
红线成环是 1→2→5→3→1,闭合段 3→1 如果没有直连道路,只能走 3-2-1(重复经过停靠站 2)或 3-4-1——而这两条长度相等,最短路算法会二选一,结果不确定。
所以我们在教学地图里专门加了一条 1-3 直连道路,让闭合段稳定走直连、不重复经过任何停靠站。
这个细节值得一提:看起来只是地图上多一条线,实际上是为了让教学结果可复现。
坑 4:未知模式静默降级。
场景构造器对未知模式会静默 fallback 到默认短局。如果不显式加教学分支,教学会悄悄跑成 360 秒短局。加了显式分支。

六、声音系统

教学和主界面都补齐了声音。这块设计原则很朴素:
  • BGM 带淡入淡出:3 秒淡入、2 秒淡出,切场景不会突然断掉;
  • 音效节点池:预创建 6 个节点环形复用,播放路径零分配、零资源加载,不产生 GC 压力;
  • 音乐/音效独立开关,互不影响。
音效按场景分类命名(UI 交互 / 抽卡 / 成就奖励 / 展馆交易 / 升星),业务代码直接调用对应方法,不在业务里直接创建音源。

七、回到「涌现」

现在回头看,我们这一路做的所有事情,其实都在服务同一个目标:
让玩家的每一个决定,都能在城市里长出一个可以观察、可以理解、可以挽回的后果。
  • 城市成长不是为了拉长时间,而是为了改变问题类型;
  • 乘客不是计数,而是带着真实行程、真的被送到目的地;
  • 诊断不弹「运力不足」,而是指向具体的站、具体的目的地、具体的班次;
  • 界面砍到只剩地图,是为了让后果一眼可见。
大量简单规则相互作用,诞生出未曾预设的结果——我们希望这个「结果」不是随机数,而是玩家自己造出来的。同一个城市布局,两个玩家会画出两张完全不同的网络,然后面对两种完全不同的问题。
这就是我们对「涌现」的回答。

八、下一步计划

  • 存档与继续游戏:目前一局结束后进度不保留,这是最该补的;
  • 网络画像:让玩家看到「哪条通道被几条线路共用」,把瓶颈可视化;
  • 完整六阶段长局:把 A—F 六阶段的完整曲线做出来(目前只实现到三阶段 + 潮汐);
  • 真机体验打磨:触摸热区、手指遮挡这些只能在真机上验证的细节。

九、写在最后

从「被试玩否定的 18 分钟版」到现在能跑通的四种节奏,中间推翻重做了不少东西。最深的体会是:
做模拟游戏,最难的不是加系统,而是让每个系统都说真话。
一辆车是不是真的到站了、一位乘客是不是真的到了目的地、一次改线是不是真的让候车下降了——只要有一处是「假装」的,玩家迟早会察觉到,然后整个游戏的可信度就塌了。
这一路上我们修掉的每一个 bug,本质上都是「某个系统在说假话」。
《卡牌工业》开发日志 01|从“涌现”到产线对打截图
《卡牌工业》开发日志 01|从“涌现”到产线对打
大家好,我们正在用 Godot 做一个暂名《卡牌工业》的游戏。目前已经跑通了最小的生产与战斗循环,也做了两轮迭代。这篇先记录一下:面对“涌现”这个题目,我们讨论过什么,又为什么最后收敛到卡牌和工厂。 第一步:头脑风暴,涌现可以是什么? 刚看到“涌现”这个题目时,我们的想法几乎朝每个方向散开了。塔防、物理搭建、探索、解谜、经济系统、叙事,甚至增量游戏,都能让简单规则在玩家的操作中长出新的结果。再想下
1 回复
【童谣镇】聚光灯第二次开发日志截图
【童谣镇】聚光灯第二次开发日志
开发进度: 美术 1、主角人物立绘已细化完成 2、所有NPC的QQ人形象与呼吸动画已设计完成 3、大部分UI界面已设计完成 4、面包房建模与树屋建模以及基础房屋、路灯、树木模型已完成。 5、制作过场动效,制作通用动效材质ing 6、广场资产替换、永续桥和植被的资产替换、房屋资产替换,河流制作 7、学校模型的材质完成 8、石墩子、小道具模型制作ing 9、NPC正比胸像绘制ing 策划 1、任务系统
11 赞
10 回复
00:34
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!截图
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!
- 人类曾因掌握元素合成技术而一度辉煌,又因滥用元素能量而逐渐从内里衰败。 - 30世纪80年代。社会文化充斥着激进乐观主义与庞大机械美学,在这里,污染和能源共生,幸福与痛苦并存。官方广播和宣传画里依旧在宣扬“科学将战胜一切”、“元素能量将再造新农田”的口号,而世界主城却已经因为污染过度而濒临崩溃、空间挤压严重。为了寻找新的生存空间与无污染能源,官方启动了“重构拓荒计划”。 - 玩家将作为前线拓展
18 赞
6 回复
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
6 回复
00:30
《失心》游戏开发者日志01|游戏UI迭代及实机演示截图
《失心》游戏开发者日志01|游戏UI迭代及实机演示
进入《失心》之前,玩家首先看到的是我们工作室 UNLOOK 的标识。我们将原来的标识转成 SVG,并让其中的红色瞳点转动、观察,再逐步显露完整字形,希望这个短暂的开场能带出一点好奇和不安。 这次《失心》的开局 UI,我们围绕小灵通(因为游戏的主要交互道具就是小灵通)做了几轮调整,希望玩家从打开游戏开始,就能感受到故事里的年代和气氛(故事年代背景为2000s)。 早期版本先确定了一个方向:把菜单放进
15 赞
10 回复
开发者日志#01:涌现!! 披着科幻外衣的涌现式增量游戏!!!!截图
开发者日志#01:涌现!! 披着科幻外衣的涌现式增量游戏!!!!
随着Game Jam 主题公示,我们团队立马着手维持了三天的激烈讨论!决定做一个披着科幻外衣的蚂蚁农场以boids算法为灵感的涌现式增量游戏!!! 至此,方案敲定,我们团队将开发一个可升级的自主群体模拟,并且初步规划了玩家游戏时的体验流程: (1)阶段1(开局30s,触发痛点,会有一次提升,但是游戏仍然艰难):一张地图分布着资源点和仓库,玩家此时只能徒手采集资源点的矿石拖入仓库,矿石可以造机器人;
14 赞
7 回复
00:07
雨天決行 开发者日志02-人工智能的自我修养截图
雨天決行 开发者日志02-人工智能的自我修养
又和大家见面啦!第二篇日志,说实话一开始不知道该怎么编排,但团队里惊喜的成果越来越多,我们已经迫不及待把更新的内容端上来给大家啦!那么事不宜迟,快来看看都有什么新情报吧ദ്ദി˶ー̀֊ー́ )✧ 一.美术(重磅升级) 以主美小为的生命力作为燃料(bushi)本次美术组取得了大进程!首先是各个ui界面的优化和细化,上次大家看到时还只是初具雏形的草稿,现在大多都完整起来了哦! 同时,随着配色的补全,手
43 赞
36 回复
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?截图
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?
大家好啊,我是官方小编,一位还在学校的独自开发的苦逼带学生 这次算是第二次正式参加GameJam,而这回的比赛主题是【涌现】 嗯…老实说,一开始我还真只是从中文语义上来看,理解成“大量的出现”,直到询问ai哦哦哦我这就才想起来还有英文的“整体大于部分之和”意思来着 说起这个主题的意思,立马想起的类 吸血鬼幸存者 ,或者是 文明 系列的各种爆怪,爆兵的设计,即大量的出现敌人或者单位 而从第二个
4 赞
4 回复
《木林森森》开发日志 01:森林不会停止生长截图
《木林森森》开发日志 01:森林不会停止生长
运营日志 #01|森林正在醒来 21 天 Game Jam · 主题「涌现」 这次比赛的主题是「涌现」。 最开始看到这个主题的时候,其实有点没有头绪。“涌现”很容易让人想到复杂的生态模拟、群体 AI,或者大量简单规则互相作用之后产生的意外结果。但对于只有 21 天的 Game Jam 来说,如果真的奔着复杂模拟去做,很可能最后只剩下一堆系统,却没有一个完整的游戏。 所以最开始给自己定下来的方向是:
6 赞
1 回复
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
4 赞
1 回复