星球日报 | 美联储卡什卡
基于提示的写作叙述系统:链上传说的集体创作模型
来源:MetaCat
链上游戏设计媒介具有多种功能和限制,其中之一就是对集体决策的高度重视。通过原型系统探索这种功能,我们提出了 Sentences:一种链上协作世界构建工具,其结构围绕仅附加分支叙事的原始结构。它使用 MUD 构建,为集体叙事生成提供了一个轻量级环境。Sentences 的每个新游戏都会生成一个新世界,然后玩家通过逐步添加其传说来实现它。
动机
在自治世界空间中,新项目诞生的一项常见任务是集体“世界构建”,构建一个共同的传说系统,决定玩家对世界的体验。这种练习通常是非正式的、非结构化的,但也可以通过有序的提示和练习来支持,帮助世界构建者塑造他们世界的结构和连贯性。
这些练习本身就是一个世界。它们在叙述者之间构建了一个信息系统,这是一套让叙述得以蓬勃发展的规则。这套规则就是世界,它为新想法的诞生创造了一个悬而未决的现实空间。练习的选择也必然会影响所创造的叙述:一组问题将假设一个潜在答案的空间;一个方向的提示可能会阻碍另一个方向的探索。
因此, Sentences 是一个“世界构建的世界”;一个用于协作知识生成的原始沙盒。它必然是稀疏和受限的,旨在作为测试新想法的实验室。除了扩展叙事之外,没有其他聊天或贡献。在 Sentences 的世界中,世界是线性构建的,但可以从初始种子向多个方向分支。
机制
除非世界已经在进行中,否则加载 Sentences 客户端会为玩家提供生成新世界的选项。生成后,玩家会收到一个提示,提示玩家可以使用一个核心机制来开发故事,示例可能如下:
“这个社会最重要的是自然”
“这个文明完全依赖于水平”
“这个团体是靠金钱建立起来的”
一旦生成,世界就会活跃起来,作者有固定的时间(我们将其设置为 20 个区块,以规律的 tick 方式进行)来为故事提出新的补充内容。时间结束后,将进入第二阶段,参与者将投票选出他们最喜欢的提案。投票数统计完毕后,最喜欢的提案将加入到故事中,然后重新开始该过程。
如果在时间窗口内没有提出任何提案,世界就会消亡。这种消亡并不是绝对的:世界只是将其他已消亡的世界加入档案中。由于所有提案和投票都在链上,因此所有世界都包含可能方向的完整历史记录,作为“消亡”分支,代表一组可能的平行宇宙。
合约
叙述的状态由两个相互关联的系统管理:一个系统负责管理新叙述的生成,另一个系统负责处理时间、投票和叙述新内容的提议。
新故事的初始化,由从输入系统中编码的硬编码提示列表中,随机选择的句子组成 FirstEntrySystem.sol。这些提示是使用简单的替换语法脚本生成的。在未来的版本中,此脚本还可以在合约中复制,以提供更多样化的起点。
一旦故事初始化完成,这个初始提示就会被添加到链中,新的提案期就会开始。这个周期持续 n 个区块(每个区块大约一秒),并由变量定义 periodEndsBlock,该变量在每个新提案期开始时设置在活动故事上。
在提案期间,会建议新的叙述条目,参与者会投票决定他们选择的扩展。提案和投票均由 ProposalsSystem.sol 处理,它根据 periodEndsBlock 变量验证这些贡献的时间。提出的每个提案都指向一个“父级”(它所响应的提案),成功的提案会形成一个链接列表。
在提案期结束时,将计算每个提案的投票数。如果出现平局,则随机选择两个提案中的一个(在未来的版本中,将此视为会产生分支的情况将会很有趣)。如果没有提出任何提案,则故事结束。故事将被归档,玩家可以采取的下一步行动将是产生新的故事。
应用(Applications)
我们设想,Sentences 在 10-50 名参与者的会议中发挥最佳作用,这些参与者可能彼此认识,也可能不认识,但本着原型传说的精神聚集在一起。例如:在 Discord 上举办活动,目标是在一小时内生成五个新世界。
就其本身而言,Sentences 并不是特别令人兴奋,它只是一种工具,而不是一个引人入胜的世界。然而,作为一个模块化组件,Sentences 的叙事生成机制,可以很好地融入到更丰富的角色扮演游戏中,在游戏过程中编织游戏的结构。投票机制还可用于支持在玩家生成的提示中包含生成输出。