文/石睿
本文是对于糖果连弹以及类似的弹球游戏的难度量化尝试。在设计关卡时,尝试根据关卡元素,位置,生命值等因素,量化分析关卡难度,抽象出调整难度的参数,为关卡设计做指导。
本文主要讨论量化思路和部分具体的算法。目前无法直接使用,需要进一步完善:
EXCEL版传送门(https://pan.baidu.com/s/1jHUdVgi)提取码:9ebk
一、整体思路
1.评估一个场面的难度,一方面从场面自身来说,需要考量当前场面对玩家的威胁度,即场面压力;另一方面,从玩家解场的角度来说,是玩家的解场难度。
2.场面压力——决定于:总方块数,总方块碰撞数。
3.解场难度——决定于:场面反弹度,当前场上的元素分布,发球位置是否有利,玩家的球数5个维度。
4.拆解分析每一项数值,再分别针对每一项的情况从不同维度动态调整关卡难度。
二、场面压力计算
1.一个方块在碰撞数不变的情况下,它的威胁度随着下落逐渐增长,因为距离击败玩家越来越近。
2.方块从出生到最底行,每下落一行会有一次被碰撞的机会,也就是最高层的方块被碰撞的机会越多,因此威胁度越低。由此两点定义每一行的威胁度系数。
1)首先拍定各层碰撞值和行系数:
2)再根据各行元素数,和各元素生命值,确定各行的碰撞值。
第N行碰撞值=第N行元素总生命值*N行系数。
如上图中,关卡的碰撞值为:
三、场面反弹度计算
1.当一个图形在地图上的位置确定后,根据他的位置和形状,划分3种区域
1)完全反弹区域
2)不完全反弹区域
3)完全不反弹区域
各反弹区域反弹系数:
各形状元素对应的区域类型如下:
2.以一格为单位面积,首先抽取实际场景中的空位置,再分别计算8X7=56个位置(扣除最下面一行)中每个位置形状的反弹度,然后再相加,得出场面总反弹度。
以正方形为例:
进行几何面积计算。其他形状不再列举。最终得出每个元素的反弹度。
上图中计算得出反弹度如下:
四、最大通路与发球位置计算
1.思路
1)元素的分布对难度的影响,最关键的在于当前玩家的射击通路,所覆盖的方块的多少,以通路所达顶点处为准,在此下方的方块所占比例越大,难度越低。反之越高。
2)发球位置的优劣,在于它与通路入口的相对位置,进入入口时的角度与水平角度差值越小,越有利。
2.通路算法
1)遍历最底行,选取该行空位,从第一个空位开始,依次进行以下判定。
2)判断空位正上方的位置是否是空位,若是,则继续往上判定;若不是,则判断左右两侧是否是空位,找到空位继续往上循环执行判定。
3)最终取通道数最大的一路走法作为当前的最大通路。
3.通路价值
找到最大通路后,取通路的终点作为基准点,计算在此点所在行一下的所有行的碰撞值,作为衡量通路价值的标准。
4.发球位置价值
判定通路入口所在列与发球位置所在列的差值绝对值,角度越靠近45度价值越高。
五、场面布局分散程度
1.思路:单纯考虑场面布局的难度,理论上在相同数量的方块数下,可接触面积越大,解场越容易,反之越难。因此,决定场面布局解场难度的关键因素就是方块的分散程度。
2.计算场上每一个方块与其他方块的距离间隔,所有间隔数值相加,得到分散程度的衡量数值。
六、根据场面难度动态调整掉落
需要经过多次测试,得到一个各维度的标准值,进而在超过或者低于标准值时,进行减少或者加大难度的调整。整理只给出调整方向。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved