答读者问:三消游戏的难度动态调整

来自 游戏葡萄 2015-05-26
深度

[ 游戏葡萄原创专稿,未经允许请勿转载 ]

答读者问:三消游戏的难度动态调整

本文作者偶尔喝咖啡,8年游戏策划经验,5年制作人经验,现任某中型手游公司工作室负责人。擅长卡牌和休闲类游戏。策划方向偏重于核心玩法和数值设定。

联系方式:

QQ:1963904(好吧,这是个年龄暴露帖)

Email:ancientlight@sina.com

笔者的上篇拙作《三消游戏的自动关卡测试机制》觍颜发布后,很多行业的朋友与笔者进行了探讨,令笔者受益颇多。很多同学提到了一个相同的问题:在同一个关卡内,随着玩家在单一关卡内失败次数的增加,是否会通过一些算法来降低难度,避免玩家长时间的卡在一个关卡上?今天,笔者想就这个问题给大家一些参考的思路。

  • 行业内有没有使用难度动态调整算法的游戏?

以目前为止笔者的了解,市面上主流的推图式三消游戏,绝大部分是没有使用这种动态难度算法的。

但是笔者确实知道曾经有一款三消游戏使用过这种算法:澳大利亚研发商Infinite Interactive于2007年推出的《Puzzle Quest(战神的挑战)》。这款产品曾经影响过行业内相当一批研发人员,开创了三消+RPG的玩法先河,很多人甚至认定《Puzzle&Dragons》在设计上多方参考了《Puzzle Quest》。

640.webp (12).jpg

《Puzzle Quest》

《Puzzle Quest》是一款基于PVE对战的三消RPG游戏,玩家与敌人轮流移动,消除元素的同时攻击敌人,积累能量,释放技能。在这款游戏中,玩家如果多次败于某个敌人,你会很明显的发现,敌人的AI发生了明显的下降,他的移动逻辑从高度AI性变成了昏招不断。

当然,《Puzzle Quest》的动态难度算法调整的是敌人AI。

  • 有没有其他方法来动态调整关卡难度?

我们知道,市面上当前主流的推图消除游戏,采用的是周期性更新关卡的机制。一般来讲,一款良性运作的游戏会在每个月更新1~2个关卡版本,新增15~30个左右的新关卡,以及1~2个新的特殊元素。

某些游戏研发商为了控制玩家进度,同时避免玩家流失,会使用这样的方法来调整难度:

当研发商新更新15个关卡(例如更新241~255关时),他会根据前一段时间的运营数据,手动调整181~210关的难度。这一手动调整的基本数值逻辑是:将原本通过率预期为a%的关卡调整为通过率预期b%(b>a)。

  • 难度动态调整算法可以调整的维度

首先我们需要讨论一个问题:如果我们要做难度调整算法,我们希不希望玩家知道这件事情?

如果玩家知道这个事情,他有充分的信心早晚会通过这一点,他会不会在某个特定冲动(例如一个卡了很久的关卡只差一步就能通过)的时候选择付费?

如果玩家知道这个事情,他会不会在一个较难关卡的前期抱着完全不抱希望的心态乱玩而只为降低关卡难度?(这种心态事实上会降低他的游戏过程体验)

如果玩家知道这个事情,他应该可以同时估算出关卡难度下降的大致曲线,这也就意味着他主观上知道了自己会在这个关卡上卡住十几次甚至几十次,这会不会使他的绝望体验提前爆发?(很多玩家内心深处是认为自己可以三五次甚至一次就通过关卡的,只是在反复尝试的过程中沉浸而事实上忽略了自己反复尝试的次数)

对于这个问题,笔者并没有绝对的答案,但是笔者会非常倾向于不让玩家知道我们在动态调整难度,而笔者的难度调整算法也是基于这样一个前提设计的。

玩家无法显性看到的特性元素包括:

1.关卡初始的局面随机

最简单的算法是,当玩家单一关卡失败超过10次后,每次进入关卡时,有很大概率生成形如下图的局面:

640.webp (13).jpg

很容易形成强力特殊元素的局面参考

即相当于在关卡初期附赠玩家一个(或多个)强力特殊道具。

这一方式简单,直接,易于实现,但比较容易被玩家发现。同时,这一算法比较难以实现逐步的难度降低,对于某些过难的关卡可能并不能完全达到目的。

2.关卡中掉落生成概率随机

在三消游戏中,每一步消除必然意味着游戏池内形成了一定数量的元素空缺,需要在上方生成新的消除元素并下落。这一消除算法一般基于该关卡的一个基本的掉落概率设定(例如:红,黄,绿,蓝,紫色1:1:1:1:1等概率生成)。而当玩家卡在一个关卡一段时间后,我们可以通过以下几种方式来调整这一初始概率:

a)增加目标元素的概率。在下图《开心消消乐》的关卡例子里,我们可以增加红,黄,蓝的概率而减少其他颜色的概率。

640.webp (14).jpg

《开心消消乐》

b)局部随机集中。在每一个回合中,使用方差更高的随机模板,示例方案如下:

QQ截图20150526083009.jpg

每回合的随机模板

基于上表的概率模板,虽然整体上五种颜色的概率依然是1:1:1:1:1,但是每个回合中,都会有比原始模板更大的概率在生成过程中形成连锁。

c)数量判定随机修正。在每一个回合中,每种颜色的随机概率=(当前游戏池内本颜色数量+a)*100。a是一个修正因子,其存在的目的之一是为了避免当前场内消除干净的元素再也无法出现。这一算法如果要使用的话,最好和上面的a算法结合使用,不然可能会使得目标元素长期处在数量不足的状态,反而加大关卡难度。

d)随机场面修正。首先在下落过程中使用一种叫做“黑元素”的特殊元素进行模拟下落。待模拟下落结束时,对所有的“黑元素”基于随机模板进行随机,生成100个不同的局面,然后对这100个局面进行计分(这里的计分算法可以参考笔者的另一篇拙作《三消游戏的自动关卡测试机制》),然后选取其中分数高的随机结果作为实际的生成结果。

3.其他特殊元素的随机生成优化

在各种三消游戏中,都会有一些特殊元素在其作用过程中使用到随机数。而这里我们就可以针对每种特殊元素的随机规则进行倾向性的调整。下面我们举几个例子:

640.webp (15).jpg

《Farm Heroes Saga》中的水桶

《Farm Heroes Saga》中水桶的行为规则是:三次碰撞后,向随机三个水果上喷水,并将其改变为水滴元素。这里我们可以选择优先向能够立刻形成水滴消除的水果上喷水。

640.webp (16).jpg

《碎碎曲奇》中的礼物盒

在《碎碎曲奇》中,礼物盒被消除时会随机生成一个特殊元素(可能是正面的或者负面的)。我们可以很简单的增加正面元素的出现概率而降低负面元素的出现概率。

640.webp (17).jpg

《Best Fiends》中的怪物技能

《Best Fiends》中的怪物会经常性的向游戏池中释放干扰性的元素,并替代该位置上原有的元素。这个时候,被替代元素的价值高低,以及该位置对于当前局面的重要性,就成为了调整随机算法修正难度的方式之一。

  • 一个全自动的难度调整算法

这里,笔者给出一个相对简单、初级,但通用于大部分三消游戏的难度调整算法,就当是抛砖引玉好了,希望感兴趣的各位可以在其基础上,基于自己游戏的特征进行扩展和改进。

1.基于失败次数的积分算法

玩家每次关卡失败时增加积分,每次过关时减少积分(并不是直接清零!原因见后)。

在每个关卡的配置上增加三个积分属性:初始加分次数N,加分值P1和减分值P2。

当玩家当前关卡游戏失败次数达到N后,每次失败,积分增加P1;

玩家通过当前关卡时,积分减少P2,但减少后最小值为0(不会出现负数)。

这里我们做一个模拟示例:

QQ截图20150526083025.jpg

玩家实际游戏过程如下:

QQ截图20150526083100.jpg


事实上,这里我们很明显的看到了一个关卡控制的数值意图:即预期的过关次数上限≈N+P2/P1。

2.基于当前积分算法的随机调整

由于我们在这里要构筑的是一个通用的难度调整算法,因此我们这里选取了章节三中的局部随机集中和随机场面集中两个算法。

局部随机集中算法:

假定某一关卡中的五种颜色元素的初始概率为100,100,100,100,100。

则在每一回合内随机出三种高概率元素和两种低概率元素。

高概率元素生成概率=100+min(当前积分,P2)/P2*50

低概率元素生成概率=100-min(当前积分,P2)/P2*75

随机场面集中算法:

首先基于玩家的操作进行“黑元素”下落模拟,然后基于局部随机集中算法的结果,进行100次模拟生成。然后基于评分算法给100次模拟生成进行从高到低的排序。

实际生成结果=random(1,100-min(当前积分,P2)/P2*80)。即当玩家积分>=P2时,每次随机生成都会在前20%结果中随机获取一个。

3.基于自动难度调整的跨关游戏体验

当玩家在一个关卡卡住了比较长时间后,为了对其体验进行补偿,我们希望让他在接下来的一个或若干个关卡中感受到更好的体验。基于这一目的的,我们在玩家成功通过某关后没有立刻清空其积分,使得其在接下来的一关或若干关中仍然处在相对高的积分状态,从而使得其接下来一小段时间的过关难度自然降低。

文章评论
游戏葡萄订阅号