/【雷火UX带你聚焦GDC2022】《Elsinore》中的动态叙事系统(Golden Glitch:Connor Fallon)

【雷火UX带你聚焦GDC2022】《Elsinore》中的动态叙事系统(Golden Glitch:Connor Fallon)

关于GDC

GDC是全球游戏行业最具规模、最有权威、最有影响力的专业峰会。GDC2022中,雷火UX共获邀17场演讲,分布在9个核心演讲以及8个峰会演讲,再度刷新中国游戏行业纪录,领跑全球。
   

   
每年的GDC大会上,全球顶尖的游戏开发者们将齐聚在这里,交流彼此的想法,构想游戏业的未来方向。接下来雷火UX公众号会选择一部分高质量的演讲,陆续为大家进行介绍。本篇为大家介绍的是来自Golden Glitch的联合创始人Connor Fallon的演讲“Game Narrative Summit: Dynamic Narrative Systems in 'Elsinore' ”。
   

Connor Fallon

Golden Glitch


                             
                             
                             

演讲标题:

Game Narrative Summit: Dynamic Narrative Systems in 'Elsinore'
                             
游戏叙事峰会:《Elsinore》中的动态叙事系统
                             
演讲者信息:
                             

Connor Fallon,Golden Glitch的联合创始人。《Elsinore》是一群在不同工作室工作的游戏开发者花了6年时间所创造的项目。

演讲概述

Elsinore (入围:IGF 2020“优秀叙事奖”和“优秀设计奖”)因游戏允许玩家探索的场景的广度和深度而受到称赞。Elsinore灵活性的核心在于它的叙事模拟引擎,它允许游戏以令人惊讶的方式动态响应各种玩家行为。然而,这样的系统在设计中也面临很多挑战。
通过具体的例子,本演讲将深入探讨Elsinore的叙事和模拟元素是如何结合在一起的,这种方法的优势,以及如何将其应用于其他游戏。此外,还将探讨这些系统可能出错的所有方式,问题的表现形式,以及Elsinore团队如何解决这些问题。

                             
                             
01.  游戏的起源
                       
                       
                       
《Elsinore》是一款由Golden Glitch制作并发行的冒险RPG游戏,以莎士比亚创作的哈姆雷特为故事背景,并结合了强大的社会模拟元素。游戏设定为一个四天的时间循环,玩家们将跟随主角来感受精彩的剧情内容。
                     
该项目起源于演讲者和朋友凯蒂在大学时的社团项目。他们在游戏社团举办的以莎士比亚为主题的比赛中产生了一个想法——把时间循环故事和莎士比亚结合起来。在之后的开发中,他们将游戏从关于哈姆雷特的互动故事变成可以被模拟动态处理的内容,并根据有意义的条件创造和选择新的事件,也就是现在的Elsinore。
                     
用Elsinore编写的每个事件都是自由浮动的,只要条件有意义,就会动态调度,而不是沿固定的分支进行;玩家可以选择a或b,然后发生不同的事情。如果什么都不做,游戏就会在系统下自动运行。玩家可以通过分享他们所知道的信息,与其他游戏角色一起参与事件来影响模拟剧情。
                     

                     


                     
                       
02.  叙事和模拟元素如何结合
                       
                       
                       
那么如何将这种相当开放的结构转变成令人满意的内容?
                     
游戏中所有活动的条件都不是随机选择的,它们是沿着关键变量产生的确定事件。这些关键变量成为叙事关键,包括世界状态(过去发生了什么?需要知道什么才能促使事件发生?)、基本角色(事件发生时哪些人在场)、位置(事件发生在哪儿才有意义)、时间窗口(事件发生在特定时间段才有意义)、持续时间(事件发生所需的时间的具体数字)。
                     

                     
因此,开发者为Elsinore开发了“情节云模型”,所谓的情节云是指具有相似或密切相关条件的事件。它们基本上是相关的主题,默认情况下,游戏设置了很多时间节点,以便从一个事件进入另一个事件。游戏中有一个初始的线性链路,但这个模型的关键是,该地区存在着一系列其他事件,以及其他密切相关的事件,这些事件自然会以各种方式改变这个链条,导致最终整个事情可能会以不同的方式开始。这些没有计划、自然流动的东西构成了Elsinore的基本流程。
                     

                     
基本上,事件的发生是基于角色所知道的信息。默认情况下是“哈姆雷特”,玩家将见证相关事件和信息,然后玩家可以与角色分享这些信息,从而改变游戏状态和角色所知道的内容,并安排新事件。这种情况会一直持续下去,直到所有人都“死亡”。然后玩家又醒来,从头开始。
                     

                     

这个模型的优点是,它的系统非常灵活。游戏情节是在有意义的时候开始的,当它们不再有意义时,就会被中止。另外,即便玩家什么也不做,事情也仍会继续发展,这让人感觉游戏世界是真实的,总有东西可以玩。



                     
                       
03. 模型存在的问题与解决方案
                       
                       
                       

游戏的默认设置

当玩家被鼓励去做一些事情来参与互动故事时,他们会对自己负责的事情变得不那么确定。会产生“那件事是因为我造成的吗?还是标准结果之一?”这样的疑惑。开发者在早期版本中,以为人们都知道哈姆雷特的故事,但现实是,很多玩家并不知道他们的父亲默认会死亡,而以为是自己导致了父亲的死亡。这会导致玩家形成完全错误的心智模式。
                     
在让玩家改变默认设置之前,需要先让他们理解默认设置。在Elsinore中,默认的是哈姆雷特的原始故事。玩家必须经历一次故事,然后才能做出重大改变。这也意味着游戏的开始阶段比其他阶段更加线性化,可能会流失一些用户。
                     
游戏的默认状态越复杂,需要建立的工作就越多,这样玩家就能对他们正在改变的东西有一个正确的认知。演讲者认为,明确什么是游戏的基准、谁是基本角色是十分重要的。
                     

                     
另一个问题是,日程表中有这么多事情,并且是动态的,因此结果并不总是立即发生。在最坏的情况下,玩家在Elsinore做一件事,半个小时都看不到结果。因此,游戏中采用了Telltale风格的通知,即一种明确的信号,表明他们改变了一些东西。
                     

                     

然而,这虽然能够让玩家意识到他们改变了一些东西,但并没有帮助他们明确改变的后果。所以游戏中还必须有一个时间表,当玩家做某事时,可以显示后续行动何时发生。为了做到这一点,游戏状态必须是确定的,这允许玩家可以从当前开始计算,假设自己什么都不做的话,5个小时后会发生什么。这意味着每次玩家打开时间轴时,游戏都在模拟未来的进程,以显示这些信息。

时间表问题
                     
在游戏的日程安排过程中也有一些极端情况成为令人头疼的难题,演讲者给出了两个案例。在第一个案例中,角色并没有如预期的在4天后入侵Elsinore(游戏设置的终点),而该游戏只构建了4天的时间循环,因此玩家就被扔进了一片虚无中。第二个案例是,游戏的老版本中,时间循环被压缩到了2天,以角色父亲死亡作为终点。但一些玩家根本不知道自己干了什么,甚至不知道这个角色死了。因为玩家会告诉角色一堆事情,以至于角色忙于追踪随机事件,而没能完成关键事件——被谋杀,导致玩家在第一轮就结束了游戏,还以为自己赢了。
                     

                     
而最终这两种情况都通过创建一个“关键标志“解决了。关键标志意味着该事件优先于其他事件,同时,成为关键事件不代表可以取消其他事件。这也意味着,开发者必须在时间表中建立一个“定理证明器”。如果一个关键事件可能发生在一个较小的事件要发生的时候,较小的事件会等待那个关键事件发生,然后再次检查它的触发条件是否仍然有效。
                     
总之这是一件很重要的事,如果游戏的日程很紧,并且有事情在循环,那一定要在角色时间表中加入死亡时间,这样他们就有时间跟进玩家谈论的随机事情。
                     
开发者创造的第二个限制因素是,告诉某些角色一些事情可能会导致他们心烦意乱,不再想和玩家说话,这可以防止玩家用太多戏剧性的信息轰炸角色,并且避免玩家意外地告诉角色其他事情而导致角色太忙,没能完成戏剧中的设定。所以一般来说,角色变得沮丧是玩家刚刚做了一些事情的迹象,这是开发者保持事情在控制之下的另一措施。
                     

人物移动的问题

一些系统设定也会干扰叙事。在Elsinore中,事件是动态安排的,这意味着角色之前可能在任何地方,这也意味着玩家不知道角色从a点到b点至少需要多长时间,这可能会造成一些停机时间。幸运的是,游戏有寻路功能,可以找到最短的路径。但有时候,最短的路线会让角色穿过玩家不想让他们走过的场景,影响叙事的合理性。
                     
开发者通过将一些事件标记为敏感来解决这个问题,这意味着当事件发生时,角色知道要避开那个场景,但这同时增加了寻路的问题,可能会使延误更严重,影响玩家对未来的预测。因此,开发者又增加了一个设置,如果角色提前到达某个事件,在时间结束之前,他们就会等待;如果他们没能及时赶到,就会瞬间移动。开发者认为这并不是一个很好的解决方案,但游戏仍需要一个可预测的系统来保证事情间的时间线合理。
                     

死时间线问题

另一个极端案例显示,游戏中可能存在死时间线问题,即在一些变量的组合下,时间线上可能没有事件会发生。如果每条链都被其他变量抛弃了,玩家就被扔进了虚无的时空。由此,需要创造一个脚本去分析游戏的可能性空间,并让开发者知道哪些潜在状态会导致玩家的计划中没有任何内容。这样,开发者就可以动态地填充内容,使其合并到其他分支中。比如用一个事件来连接它,诸如此类。
                     
在Elsinore中,哈姆雷特和克劳迪斯是叙事动力,如果他们两个都死了,游戏的很多故事情节就显得没有意义。工程师们做的剧本分析发现了这一点,并帮助砍掉了很多不必要的叙事分支。
                     

模拟意识问题

模拟意识是另一个问题,即NPC们何时知道消息才感觉是合理的?在现实生活中,很明显信息在人与人之间传播。一个人告诉另一个人,他们告诉其他人,然后突然每个人都知道了。但在游戏中,NPC们是立即知晓的。有时候这可能很不和谐,因为NPC可能知道玩家不知道的事情,或者NPC不知道一些玩家觉得他们应该知道的事情,因为他们目睹了这一切。这使得玩家很难知道角色知道什么,并去操纵状态,而这恰恰是玩家在Elsinore中的主要目标。
                     

                     
为了解决这个问题,开发者为所有主要结果(例如角色死亡)设置了公告,让包括玩家在内的所有角色都能自然地了解信息并获得事情的摘要,以便他们可以对此做出适当的反应。
                     
开发者认为,对于有很大可能性空间、玩家可能错过一些信息的游戏来说,这是很关键的。游戏需要一种方法来总结信息,让玩家能够发现;也需要一种方法让NPC知道它,这样玩家就不必浪费时间等待角色做出反应。所以,游戏创建了自然同步点,让每个人都在循环中。
                     

                     

具体结果的问题

游戏世界越灵活和动态,玩家就越难追求特定的期望结果。Elsinore是一个悲剧的世界,不会有完美的结局,但很多玩家仍然执着于解锁一切。他们如果一次做太多的事情,可能会意外地搞砸,这在体验上就会感觉很糟糕。
                     

开发者试图通过一个引导系统来解决这个问题,提示主要的情节但又不能太具体,太具体会破坏探索的核心。但这仍然是Elsinore被抨击的一个问题,开发者没有设定一个结局集合,但玩家们仍然试图获知所有的结局,并为此而感到沮丧。


                     


                     
04. 总  结 
                       
                       

                       

Elsinore独特的叙事玩法给玩家带来高度自由体验的同时,也为开发团队带来了一些挑战。演讲者总结了游戏开发过程中存在的问题以及解决方式,以期提供一些经验。

● 玩家很难追踪线索,因为游戏没有特定的链路
                     

——需要给玩家提供工具,包括时间表,通知,诸如此类的东西。为了实现这一目标,还需要做一些技术限制。

● 大事件可能被小事件阻挡,但又不希望小事件被完全抛弃
                     

——拥有一个知道如何优先排序的系统是至关重要的。

● 角色需要内置自由时间

——避免角色因为太忙而死亡。

● 角色“聚集“是个大事

——避免NPC过太久才出现。

● 剔除死时间线

——用确定性的系统去弄清楚何时会陷入无事发生的状态。

● “元意识“问题

——找到一种让信息尽可能快地在系统中传播的方式,并让人感觉很自然。
                     
   

本文来自微信公众号“网易雷火UX用户体验中心”(ID:LeihuoUX)。大作社经授权转载,该文观点仅代表作者本人,大作社平台仅提供信息存储空间服务。