【游戏精粹】叙述战斗:利用AI增强游戏张力(调节动作类游戏的难度、节奏的AI)

   前言

        理想地,最好能有某些机制让游戏设计者根据玩家的进度来调节游戏的节奏。这些调节机制不仅仅是由游戏设计者决定的,而且要考虑到玩家当前的经验和技术水平。这样一个更加动态的环境通过提高或降低戏剧张力使游戏的可玩性始终处于一个会让玩家觉得享受的状态。
        本文讨论了如何创建一个AI系统来调节动作类游戏的难度和节奏。这个系统除了把高度节奏化的游戏元素、可玩性和更高自由的游戏控制结合起来,还可以使游戏设计者更容易创作出有好的节奏游戏——这个系统只需设计者对特定的一个地形给其大致的难度。适应玩家的技术水平同时也避免了另一个普遍问题:设计者按照他们自己,而不是典型玩家的技术水平来调节游戏的玩法。该系统可以使用玩家的技术水平,也就实现了当游戏节奏改变时难度的平滑过渡。


    戏剧张力


        戏剧结构


        戏剧张力的概念在游戏中并不是指故事情节的发展,而是指玩家的技术水平和游戏当前设定难度之间的关系。
       

玩家游戏体验转换图


        游戏节奏的目的,是让玩家始终处于图中白色的区域(舒适区),也就是游戏难度和玩家技术水平在一定范围内匹配的区域。但是,在不同玩家学习的能力、不同难度以及不同任务三者的交互作用下,每个玩家都会经历由厌烦(太简单)或者沮丧(太难)回到舒服(匹配)的过程。
        在图中,没有戏剧高潮的概念。只要玩家的感觉在舒适区(白色区域),他的技术水平一定与游戏当前难度大致相当。因此,当玩家应用所学技巧去解开难题从而获得满足的体验,和难度与技术水平想匹配的关系是一样的。
        有清晰的目标是让玩家获得舒适体验的关键之一,所以有效地达到戏剧顶点的方法是和行动目标相依相辅的。在一个关低,降低张力(难度)并强调一下玩家当前所学,会让玩家有很强的成就感。但如果降低太多,会让玩家觉得无趣,从而产生不舒服的体验。
        与该AI系统相似的系统,主要目标都是共同的:用控制环境中发生的事件来微调用户的体验。这类系统就像调度者,把各类事件以合适的节奏安排出来去取悦用户,在依旧遵循戏剧结构的前提下,按照用户的当前技术水平来合理调整难度,使用户始终处于愉悦状态。


   系统概述


        建立上述所说的系统通常有以下步骤:

  1. 分析在游戏设计中哪些元素是可以随着玩家水平的进步动态地改变的。这些元素就要被用来调节游戏的难度;
  2. 对每个可动态调节的元素,设计出一种度量方法来描述其难度;
  3. 找出能控制总体难度的方法,也就是说,任给游戏的一个片断,能有方法判别出它比其他游戏片断是难是易;
  4. 定义出一个尺度能衡量出在玩游戏的过程中任何一点玩家的技术水平;
  5. 建立游戏可控的动态元素和玩家最终体验难度之间的关系。这种关系决定了如何用这些元素来调节游戏的难度,也就是如何根据玩家的水平来合理组合它们。

    设计者的控制部分


        设计者有两大类输入给这类AI系统:一类是控制游戏中每种地形相对于其他地形的难度;一类是给定游戏中每个动态元素的难度评价函数。
        对于设计者的每种输入又都有两种方式来实现:第一种,就是在游戏生产过程中,设计者就给系统暗示了这些大概应该是什么;第二种方法是创建一种在线机制,在玩游戏的过程中能动态评估出如何最好地定义这些控制参数。
        一种很简单的方法是把游戏难度和地形的类别结合起来。当玩家进入到某一类地形时,游戏利用该地形的特有属性来设置难度,再结合玩家的技术水平,就可以定出目标难度。每一种地形还有一些可供动态元素用来进行难度调节的附加数据。注意:如果游戏不允许在玩家的可视范围内动态创建敌人,设计者可以把敌人的出现地点放在玩家视野外。
        另一种方法是按顺序把游戏的任何一点给定一个相对的难度,比如一种设置方法就是根据玩家在当前局所处的进度设定难度。比如快靠近关底时,游戏自动突升难度,然后结束前再降低。如果玩家在任何一个地方花了很多时间还是没有过去,难度就要降低(提供一个自然的戏剧张力低谷),帮玩家过了这个难关。
        第二类游戏设计者要给系统的输入是各个动态元素的难度评估。定义一个计算方法通常是不容易的:一个设计者的启发式评估会补偿很多潜在的因素(如AI策略、武器杀伤力)而不用增加整个系统的复杂度。如果各个动态元素所属数据变化得很频繁,也许就需要一个机制来定义元素的难度,但复杂性往往会让难度很难调节。


    难度计算


        要应用调节难度的方法类控制节奏,我们必须能够实时评估当前玩家的技术水平。如下元素是在动作或战斗游戏中,我们可以用来构造难度的调整模型:

      • 打败当前敌人的时间;
      • 敌人难度级别;
      • 同时出现的敌人。

       当然还有很多别的因素(如玩家的准确度)也可以用来控制难度,但最重要的是能找到能反映出玩家技术水平的核心关键元素来进行一个简单评估。
        最终,我们希望能有一个简单的公式:当给定特定玩家特定时间,公式返回一个数字代表难度。数值高就表示当前的难度高,反之就是低。
        玩家技术水平 = 敌人的难度 / 打败敌人所需时间
        理想地,在玩一个游戏过程中,通过上边这个公式我们会得到一组递增的数。难度调整系统可以利用这个数来反向选择敌人的难度(最好把这两组数在同一个值域内)。想做到这一点,我们需要把上面算式中的时间乘以一个常量,这个常量表示这样一个基本的难度单位:一个典型新手(第1次玩这个游戏)用最简单的武器装备打败一个难度最低的敌人所花费的时间。
        最后一个要考虑的是当前玩家要同时面对的敌人的数量。同时击败4个敌人比分别击败他们要难得多,所以,敌人数量也是一个可以影响上面公式的因子。不同游戏,敌人数目增加的影响程度是不一样的,所以要根据游戏的性质分配该因子在公式中的权重。
        最后的公式如下:
            玩家的技术水平 = (敌人的难度 * 同时出现敌人的数目系数) / (打败敌人所花时间 * 单位难度)
        游戏必须跟踪记录玩家近期的游戏经历,这样一个集成的难度评估系统其实就是把各个评估方法加权平均。
        这样,我们通过连续评估用户的技术水平而得到一组数字,平均这组数字就可以得到玩家在最近几分钟的平均水平。更好方式是用时间的远近来加权平均那组数字,因为玩家可能为了要一个暂时的低难度而故意降低自己的水平来欺骗计算机。


    难度调节


        有了上节得到的玩家技术水平估计为基础,游戏就可以决定目标难度。具体的方法是,根据当前游戏进度应该有的难度,再结合玩家的技术水平,就可以得到目标难度。
        例如用地形来定义难度。每个地形的一个难度值(最简单到最难各自有一个数值对应),都对应着一个调节因子,地形对难度的调节就是用这个调节因子去乘以目标难度。比如地形难度值为1(最简单),目标难度就减半(调节因子为0.5)。
        至于调节因子的形式,可以直接让设计者指定调节因子,也可以用间接的方法。间接的方法有两个好处:一是有限的离散难度只会让设计者更直接地体会到最终的难度大概是什么样子的;二是间接的方法可以让设计者把调节因子由数值形式转到描述性形式。
        现在游戏已经有了一些可供选择的动态元素(每一个都有自己的难度级别),以及一个目标难度。游戏要考虑如何安排这些元素来给玩家更好的体验,同时要组合这些动态元素以满足给定的目标难度。选择的方法要考虑美学,同时要考虑强调游戏的主题,随机的选择方法可能不会产生好的游戏体验。


    系统评价


        应用这样一个系统之前,有几个设计问题必须考虑清楚:难度和玩家体验之间的关系是用任意值表示的输入参数,要调试整合这些参数到合适的状态时很难且很花时间的。所以,通常最好整个机制和那些关系越简单越好。理想中,通过设计者的几个基本输入就可以给玩家创造出好的动态体验。
        对于这些来微调交互体验基于规则的系统,一定要注意不要把内部机制暴露给玩家。比如交互式音乐,当敌人一接近,某种音乐就响起,玩家就会利用这个音乐来预测,这样玩家不会有好的游戏体验。难度调整系统一定要考虑玩家之前的游戏表现,这样就不会被玩家轻易骗掉(玩家故意花很长时间来杀一个敌人使游戏难度降低)。    
        这个系统的目的是克服游戏的很多弊病(如重玩性差),从而创造出有非常好的节奏感游戏。通过控制很少几个输入来控制难度将使这件工作变得容易,同时会产生流畅的游戏体验,即使在动态复杂的环境也一样。这也同时避免了设计者要事先实现几个不同节奏、靠玩家手动选择游戏难度版本,从而帮助玩家在玩游戏的过程中创造出属于他自己的难度。
        当这个系统被用在战斗类游戏中时,用动态的模型调整玩家的体验这个概念是很有用的。这意味着玩家会获得更享受的游戏体验,而不会时常觉得节奏太快或太慢。
        可能因为开发团队为了赶进度或者预算上的原因,这些原则没有被广泛应用。但是,随着游戏业发展到更广阔的市场,游戏设计者会为了跟上玩家的想象力不得不让玩家获得更加协调的戏剧体验。    


学习资源

    • 《游戏编程精粹4》第四章第二节
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值