《守夜人》没有采用“无缝互联”的世界结构——对单人开发而言,那类工程量不现实。我选择的是以据点为中心的辐射式结构:用篝火之间的距离,和一处随剧情生长的据点,来承载魂like的空间感。
据点:辐射结构的中枢
游戏的核心是一张特殊地图——据点,类似《血源》的猎人梦境:玩家从这里出发前往各区域,再回到这里休整、升级、锻造。
据点随剧情生长:初始只是破房子加一炉火;每救回一名 NPC,便点亮一个席位、开放一项功能——维拉(升级/起名)、铁匠(锻造)、商人(买卖)。上面的截图是它填满后的状态:维拉在篝火旁,铁匠在锻炉前,商人支起摊位。
实现上采用了一个简化方法:据点一次性建全,所有 NPC 席位摆放到位,各由一个 flag 开关控制显隐,不做“破败→逐步修复”的美术过渡。“生长”由开关驱动,避免重复返工。
旅行:区域间经据点中转
区域之间不直接连通。跨区域移动一律经据点中转:坐篝火 → 打开旅行菜单 → 选择一盏已解锁的区域灯 → 传送。这一方面强化了据点的中枢地位(与《血源》一致),另一方面回避了横版最复杂的区域边界缝合问题——只有区域内部仍需步行连接。
该结构也与设定自洽:褪色的世界正在崩解,各区域是残存现实的孤岛,岛屿之间是虚空。旅行菜单因此不只是功能,也是一种世界观陈述。
篝火:存档锚点与死亡回流
篝火承担休整、存档、传送三项功能,死亡后回到上一个点亮的篝火。上图是第一章的第一个篝火(女儿的营地)。
死亡回流采用渐进设计:解锁据点之前,死亡回到上一个篝火(无选择);解锁据点之后,死亡二选一(据点 / 上一个篝火)。篝火之间的距离,构成了这款游戏的节奏基准。
第一章:线性节奏的编排
第一章是一条编排过的线性流程,而非开放世界:开局苏醒(无对话,系统式教学)→ 教学图 → 刷怪图 → 铁匠女儿(第一个篝火 + 强制任务:为父亲的锻炉收集命火)→ 石巨人 Boss(战后原地生成篝火)→ 力竭晕倒、维拉登场 → 火台段(三火台点亮)→ 与塞拉斯的必败战 → 黑屏,进入第二章。
其中两处设计值得记录:
- 维拉在玩家“力竭”后登场,而非“被击杀”后——将初见杀的挫败,替换为“力竭被扶起”的情绪基调;
- 必败战为数值上的确定失败,但不掉落命火——它不是可胜的战斗,而是剧情转折,黑屏后接入第二章。
小结:空间即叙事
将这些组合起来:一处随剧情点亮的据点、篝火之间的距离、区域灯的孤岛感、一条编排过的第一章——世界结构本身,即是“守住这一夜”这一主题的物理化表达。
无缝互联并非魂like空间感的必要条件;决定性的是节奏,而非技术形式。