下载 App
一条规则,九根蛹线——《蛹线》如何诠释「涌现」
一、对赛题的理解:
涌现不是"很多",是"不可预测地多" 。
或许有种实现方式是做增量:几百只蚂蚁、几万个粒子、一整屏的NPC——系统很复杂,但玩家看到的就是"很多"。那不是涌现,那是热闹。
真正的涌现有一个更苛刻的性质:系统的输出不能从规则本身直接读出。你知道每一条规则,却依然预测不了结果——就像你知道水的分子结构,却预测不了漩涡的形状。
另一种方式是把它做成"作者的藏宝图":我预设一个精彩答案,用规则引导玩家走向它。那是解谜,不是涌现。
涌现应当是生长出来的,而不是被放置的。
受限于我自己的技术实现水平和系统设计能力,我给《蛹线》定的规则十分简单:只写一条规则,然后让这条规则在所有玩家能看到、能听到、能抵达的终局上反复作用。
这条规则是:做一个选择,吐一根蛹线,拥有一个颜色,听到一个声音。
少即是多。
二、系统设计:
一只蚕在茧里醒来,面前是叶子、花、荆棘。每次选择,它吃下一口,吐出一根对应颜色的蛹线,蛹线永久留在身后的迷宫壁上。
九次选择,九根蛹线,然后蛹心显形——命运显形。
系统层面只有这些。但这条规则被允许在五个地方"涌现":
命运:
我没有写 7 个结局的严格触发脚本。我只写了1条判定区间:荆棘>60%进入bad ending,=0无法成蝶,中间即可解锁蝴蝶翅膀视觉涌现程序化生成结果。
视觉:
这个游戏里没有一件美术资产,我没画,ai没画,目之所及,都是TapTap制造程序化生成的——把吐出的蛹线颜色序列,沿着蝴蝶翅膀轮廓库展开。同一个玩家玩十局,每局选择同样的路线,同样的颜色,仍然能得到十只不同的蝴蝶。

听觉:
没有人类配乐师为它写曲子。我请TapTap制造辅助做了生长式配乐——
固定 drone:从开场到结局保持同一铺底。
叶子蛹线:加入细碎颗粒感的 shaker。
花蛹线:加入 Maraca 摇击与残响。
荆棘蛹线:加入低音 rolling 滚奏。
声部仍在编织完成时加入,选择顺序决定音色共振/低音音高、节奏与声像。通关时音乐推向高潮的那段旋律,是玩家这一局自己谱的——程序只是递了乐器。

选择:
我没做过多教程和规则说明。每种选择都可以,通向哪里都未知,没有输赢对错。
隐藏:
有一种结局,可见率不到 2%,README 里没有它,游戏里没有任何提示。我自己写完规则都打了20遍才触发。
或许永远也没人看到也没关系,蛹线想提供给玩家的就是意外的“涌现”,而我唯一要做的就是克制。
三、实现(Kimi辅助完成):
涌现的系统要"先信后算" 实现上最大的心得是:涌现系统不能先设计结果再调参,要先把规则跑起来,再看它长出了什么,最后再做减法。
整个游戏的数据结构简单到近乎寒酸:一张 21 节点的有向图、一个 silk_log 数组(九条颜色记录)、一个 path_stack(回溯栈)、一个纹路种子。
涌现系统的调参,本质是给"不可预测"划定边界——太宽则平庸,太窄则僵化,这个度只能靠模拟数据反复试。
翅膀生成用"种子+序列",不用随机贴图。
每一局生成一个纹路种子,颜色序列决定翅膀纹样的色彩走向,种子决定抖动、脉络分叉和 6 种基础轮廓的选择。

这样设计能保证两件事:每只蝴蝶唯一,且能复现——命运画廊里翻回任何一只翅膀,它都精确地记得那局的路。
最后说回到赛题。 《蛹线》的规则只有一条,剩下的终局命运、无数只蝴蝶、每局结尾不同的声响——没有一样是我设计的,我只是造了一只茧,放了一条规则,然后等。
涌现很难设计。涌现是允许发生。
