State Stacker · 思考的食粮
地基之上的每一块砖都必须搁在一个地理上的邻居之上,这把一个简单的堆叠游戏变成了对地图相邻结构的考验。
本文以英文撰写和编辑。此中文版本由机器翻译生成;凡涉及准确性之处,以英文原文为准。 阅读英文原文 →
游戏引擎把两个截然不同的领域融在一起:常识问答与地理相邻关系。玩家答对一道关于某个州的问题,就把这个州作为一块砖赢到手,然后把它放到不断长高的塔顶。奥妙在于稳定规则:一块放下的砖,只有当它正下方那个州——也就是当前的塔顶——与它共有一条陆地边界时,才算稳。只有第一块,也就是地基,可以豁免;它总是稳稳地待着。这条相邻要求把塔变成了地图连通性的实体化身,每一次放置都必须尊重数据集中记录的现实世界邻居关系。2
这一设计的基础是游戏自己的州数据集,其中包含美国各州集合的全部五十个条目。每个条目保存着名称、两个字母的邮政缩写、首府城市、人口普查分区、一份邻居清单,以及一条简短事实。邻居清单尤其关键:它只收录陆地接壤的邻居,并以邮政缩写记录。因此,隔着五大湖之一相望的州,例如 Michigan(密歇根)与 Illinois(伊利诺伊),并不算邻居;而 Alaska(阿拉斯加)与 Hawaii(夏威夷)根本没有陆地邻居。这个精确的相邻定义,成了裁判每一次放置的规则。2
当玩家放下一块砖时,引擎会拿它与塔顶那块作比较。只有当两个州各自都把对方列为陆地邻居时,它们才算相邻。由于这项检查要求双方都有记录,这个关系在构造上就是对称的:州 A 能承托州 B,当且仅当州 B 也能承托州 A。这种对称保证了整座塔的一致性——任何稳定的连接都必须满足同一个双向条件,与两个州中谁先到来无关。2
在赢得一块砖之前,玩家必须回答一道关于某个州的选择题,从四个答案中挑一个。引擎会生成四种不同类型的问题,每一种取用州档案中的不同部分。首府类问这个州的首府是哪座城市。分区类问这个州属于四个人口普查分区中的哪一个:Northeast(东北部)、Midwest(中西部)、South(南部)还是 West(西部)。事实类问四条简短事实中哪一条对这个州成立,另外三条借自别的州。邻居类问四个州中哪一个与它接壤:一个是真邻居,另外三个不是。四种类型合起来用到每个条目六个字段中的四个——首府、分区、事实与邻居——而名称和缩写则用来标注题目与砖块。2
每种题型在这个循环中各有用途。首府题与分区题考查对固定属性的了解。一个州的首府是唯一一座城市,它的人口普查分区则是四种可能之一,所以每道分区题给出的都是同样四个选项。事实题考查对一句简短描述的记忆。邻居题考查的正是对相邻清单本身的了解,而这套结构稍后将决定稳定性。每个州在一轮中只会被问到一次,题型按固定顺序轮换——首府、分区、事实、邻居,然后再回到首府——因此一轮二十四道题会把四种类型均匀地混在一起。2
答对就赢得该州作为一块砖;答错什么也得不到,随即进入下一题。手里有砖时,玩家只有一个决定:堆上去,还是丢掉。位置无从选择,因为每块砖都放在顶上;但游戏会事先说明这块砖能否稳住,点明当前位于塔顶的是哪个州,以及刚赢得的州是否与它接壤。把赢得与放置分开,造出了一层策略:会摇晃的砖可以扔掉而不是堆上去,而且确实应该扔掉,因为堆上去会让整座塔倒下。2
稳定规则是让这款堆叠游戏区别于其他同类的设计要素。在常规的堆叠游戏里,稳定是物理问题:一块砖的底面是否安稳地压在下面那块上。这款游戏根本没有物理。稳定完全由地理决定:一块砖只有在按照游戏数据集的记录、确实是它下方那块的邻居时,才算稳。这把塔从一个物理结构变成了一个拓扑结构,其中的连接代表现实世界中的相邻。2
相邻检查实现了这条约束。它取两个州,看它们是否各自把对方列在自己的邻居之中。这比在某种抽象意义上共有一条边界更为严格:这种关系必须在数据集中被明确记录。例如,隔着五大湖相望的两个州不算相邻,因为数据集只记录陆地边界。Alaska(阿拉斯加)与 Hawaii(夏威夷)根本没有陆地邻居,永远无法构成稳定的连接,所以游戏从不拿它们出题;不过它们的名称与事实仍可能出现在错误选项之中。这些设计选择体现出一个刻意的决定:把相邻建立在一个明确的定义之上,而不仅仅依赖地理直觉。2
这个关系的对称性对一致性至关重要。如果州 A 能承托州 B,那么州 B 同样能承托州 A。一个连接有效与否,取决于固定的邻居清单,而与两个州中谁恰好先出现无关。这一性质简化了玩家的推理:无论塔顶是哪个州,它的任何一个邻居都能落在上面,唯一的问题是刚赢得的那块砖是不是其中之一。2
获胜条件由两个相关的数字定义:目标高度与稳固高度。引擎把目标高度当作一个参数接收,而游戏总是传入它的默认值八;这是塔必须撑住的稳定砖块数,其中把地基也算在内,所以八意味着地基加上七块放在邻居之上的砖。稳固高度从地基往上数稳定的砖;而由于一次不稳的放置就当场结束本轮,仍然立着的塔里每一块砖都是稳定的:稳固高度就等于塔的高度。每一次稳定的放置都让它加一。当一次放置不稳时,砖会摇晃,塔随之倾覆。2
稳固与不稳固之分造出了真实的风险。由于堆在一块摇晃的砖之上的东西永远不可能计入稳固高度,游戏不会让玩家继续玩下去:一次不稳的放置立刻以失败结束本轮,标题写着“Tower Toppled!”(塔倒了!),并点名那个没有与下方砖块接壤的州。已经拿到的分数会保留。这正是游戏提供丢弃按钮、并在每次放置前警告这块砖会不会摇晃的原因;警告直白地说明,摇晃的砖会让塔倾覆并结束本轮。张力来自这样一个事实:赢得一块砖并不保证取得进展,只有落在未被打断的塔上的稳定放置,才推动玩家接近目标。2
一轮有二十四道题,因此要达成八的目标,就得把其中恰好三分之一变成稳当的砖。答错不会损伤塔,但会浪费一次机会;而且由于题目是从一个邻居串到下一个邻居的,漏掉一个州可能让下一个州与塔顶的州之间没有边界可依。每答对一题得 10 分,每次稳定放置再得 15 分,达成目标另加 100 分奖励并立即结束本轮。如果题目先用完,塔就是没到线就“topped out”(封顶)了;如果先堆上了一块摇晃的砖,那就是倾覆。2
每一组题目都由一个带种子的随机数生成器生成。给定同一个种子,引擎会产生完全相同的题目序列,顺序相同,选项也排在相同的位置上。这种确定性有几重用处。它带来共同的体验:“每日”(Daily)模式的种子取自日期,因此当天所有玩家面对同样的题目,可以互相比较结果;而“练习”(Practice)模式则为每一局抽取一个全新的随机种子。它也让游戏可测试,因为任何一局都能凭种子被精确复现。最后,它让游戏的行为便于分析,因为整个题目序列都是种子的函数。2
种子决定哪些州会出现以及出现的顺序,但这个顺序并非随意。引擎把它构造成一条链:从一个随机的州出发,其后每个题目的对象尽可能是前一个州尚未用过的邻居;只有走进死胡同时,才跳到另一个未用过的州。正是这种串联,才让玩家有公平的机会搭出一座连通的塔:连对一串题目,赢到的州往往彼此接壤。玩家无法控制下一个州是谁,所以策略在于答得好,以及逐块决定是堆还是丢。种子决定了这局游戏的节奏,而玩家决定把这节奏跟得多好。2
稳定规则的根基是图论,即研究图这种用来建模对象之间成对关系的数学结构的学问。1 在这个框架里,州是顶点,共有的陆地边界是边。两个州相邻,当且仅当它们之间有一条边相连。每个州的邻居清单就是与它相邻的顶点集合,而相邻检查问的是两个给定顶点之间是否存在一条边。完全稳定的塔代表这张图中的一条路径:一串边连起一串互不相同的顶点——这里之所以互不相同,是因为一轮中没有哪个州会被问到两次。3
这种图论解读说明了为什么有些州比别的州更难往上搭。Alaska 与 Hawaii 在图中根本没有边,这正是游戏从不拿它们出题的原因。在本土四十八州之中,边数差别很大:Maine(缅因)只与 New Hampshire(新罕布什尔)接壤,而 Missouri(密苏里)与 Tennessee(田纳西)各与八个州接壤。塔顶若是一个连通度高的州,许多赢到手的州都有地方可落;若是像 Maine 这样连通度低的州,就几乎无处可落。图的连通性塑造了这项堆叠任务的难度。2
图中的一条路径,就是一串边连起的一串顶点。3 稳定搭起的塔,正是这样一条路径的实体化身。每一块稳定的砖都把路径延长一个顶点,并通过一条边与前一个顶点相连。八的目标高度意味着玩家必须找出一条穿过八个顶点、长七条边的路径。难处在于这条路径必须逐步构建,每一个新顶点都要先通过答题赢得,才能加到塔上。2
引擎的设计把问答、相邻与堆叠综合成一个连贯的循环。问答题取自游戏的州数据集,考查对首府、分区、事实与邻居的了解。相邻检查映照图论,把州当作顶点、把陆地边界当作边。堆叠机制为在图中构建一条路径提供了实体隐喻。各个要素彼此强化:问答赢得砖块,相邻决定稳定,堆叠把人推向目标。2
这种综合造就了独特的游戏体验。玩家必须同时思考知识与地理。答对一题能赢得一块砖,但如果这块砖不与塔顶的州接壤,它就比无用更糟:堆上去会结束本轮。塔顶也许是个连通度很高的州,可玩家未必赢得了它的某个邻居。这些约束之间的相互作用造出了策略深度,因为玩家必须拿每一块赢来的砖去掂量当前位于塔顶的那个州。2
结果是一款既简单又复杂的游戏。规则很好说:答题、赢砖、把砖堆在邻居上、达到目标。但执行起来需要不断评估塔顶的州、它的邻居,以及刚赢得的那块砖。相邻约束把一件本可平庸的堆叠任务,变成了对地图结构的考验——每一次放置都必须尊重数据集所编码的现实地理。2