【探索一种玩家与游戏团队和谐沟通共建的方案】(三)辅助角色的价值

2023/03/1184 浏览综合
                           三、输出角色真的越多越好吗?如何看待辅助角色?
        笔者的第三章与第四章的文本举例与逻辑推导,很多情况下是相辅相成的。在这里,笔者注意到了部分玩家对小红帽角色强度的评价,阐述自己的第一印象:
1.仅仅站在单个角色与其他单个角色的伤害量对比评价强度似乎有所偏颇。
2.部分讨论过于关注一些热门输出角色,忽略了辅助角色在三人小队中的重要作用。
3.得出结论似乎太着急了点,不妨多尝试一下不同强度结晶的搭配以及搭配其他队友的效果。
        绝大多数玩家都希望自己喜欢的角色在游戏中有优异表现吧,也希望自己在BOSS面前打出超高的伤害,满足自己。我也是这么想的,人之常情,非常正常。某个角色在三人小队中,拿出了非常优异的表现,打出了非常夸张的输出,带领团队拿下BOSS,肯定非常高兴。关注单一角色的总输出量,其实在情理上很正常。
        正由于部分玩家非常关注单一角色的总输出量,这个诉求客观存在,不希望花了大成本抽卡得到的角色输出量低于其他角色;再结合游戏团队结合了风枪、水剑、多洛提亚新推出的玩家反馈,在此之后新推出的角色——塞纳菲娜小红帽和吉尔伯塔霜花,就得更多地考虑部分玩家的诉求——把水剑之后新角色的输出量做得更高。这就变相地影响了游戏团队所开发的部分水剑之后新推出的辅助角色与水剑之前已出现的老辅助角色,二者之间的平衡。
        笔者认为,从单一角色的角度讨论角色强度和游戏平衡性考虑,以及在光暗风火水土这6组属性的队伍搭配与角色定位考虑,是两个不错的考虑方向。但千万不要忽略了如下更为重要的平衡:
1.法定货币与游戏内的货币、道具等换算关系之间的平衡。
2.游戏内的货币、道具等随着时间和法定货币的历史积累与BOSS强度之间的平衡。
3.JRPG剧情推进与游戏BOSS强度之间的平衡。
4.新输出角色强度与老输出角色强度之间的平衡。
5.新辅助角色强度与老辅助角色强度之间的平衡。
        笔者提到上述5组全局性的平衡,也许还不够完善。玛娜希斯回响这款游戏采用了计划型经济系统构建游戏全局性的平衡。采用计划型经济系统的游戏,往往都是轻度向、休闲向且核心体验突出的游戏。
        笔者参考了知乎作者策划梁木木发表的《【木木游论】计划或市场?网络游戏经济系统搭建及常见的经济系统类型解析——经济系统篇》。
        参考链接:https://zhuanlan.zhihu.com/p/113243237
        在计划型经济系统中,玩家与玩家之间不开放交易,所有游戏资源的产出全靠系统。系统产出的资源,有做日常任务和限时活动赠送,有击败地图BOSS和巴别塔、社团战、征讨阵线,还有玩家在游戏里的充值和购买。按部分玩家的要求,在公开场合冲击角色强度,哪怕只成功了一次,都会打乱游戏团队事先已计划好的经济系统运行!会让正在运行中的计划型经济系统受到严重冲击!部分玩家冲击角色强度的行为,击败BOSS达成领取足额奖励,所需的系统产出和积累游戏资源的数量有一部分降低。
 
        水剑直播连麦是第一次!土牧霜花在论坛上的热烈讨论是第二次!
        如果再开放直播连麦讨论小红帽强度问题,再应部分玩家要求,加强小红帽,那可就是第三次了!请告诉我,哪个游戏团队受得了计划型经济系统设计多次被打乱?
        犬酱组官方就不能直接把这个担忧说透彻吗?不好意思,情绪上头的时候激烈讨论,很有可能会引发未来更剧烈的冲突,不如该沉默时沉默。还想不明白的,回顾一下第二章的内容,以及笔者曾提到过的:一段时间后回想这种占用大量公共舆论资源的事件,事发地点和所在机构自然就容易被公众首先提及。
        正由于以上部分玩家欠缺考虑的,在游戏的全局观上更为重要的几组平衡,再加上游戏开发团队在某一次更新后,应玩家需求给出的各角色的输出统计图,仍然欠缺等更为全面的,能够体现辅助角色价值的统计图。才会造成众多玩家更为关注单一角色的输出量,而忽略了对该高输出角色所享受到的友方BUFF与BOSS方享受到的DEBUFF。
        其实辅助也有辅助的好。现实世界中同样有例子能体现辅助的价值。2022卡塔尔世界杯1/8决赛阿根廷VS澳大利亚的比赛中,比赛第56分钟阿根廷队9号阿尔瓦雷斯打进一球,帮助阿根廷队扩大比分。从比赛过程来看,这个进球离不开阿根廷队7号德保罗不遗余力的拼抢、面对澳大利亚守门员的冷静分析、避开被吹罚冲撞守门员犯规的风险、切断澳大利亚守门员出球的传球线路,成功迫使澳大利亚守门员出现重大失误。尽管这个进球是阿尔瓦雷斯担当输出角色,身为辅助的德保罗并没有因为这个进球拿到进球、助攻和关键抢断的任何一组褒义数据。但这个进球已经非常明显地体现了辅助角色的价值。参考链接:https://worldcup.cctv.com/2022/12/04/VIDE86z0ubRvqbgkZZk7sDUI221204.shtml
        笔者希望更多玩家能更为清晰地感受到辅助角色的价值,稍微分散一下部分玩家对于单一角色强度讨论的纠结。在此向犬酱组建议,如果可以,希望在某个时间节点完善统计图的功能。这么做更能体现辅助角色本应体现的价值,在社团战、阵线、巴别塔这种有排行榜的打BOSS关卡的统计图中,可以考虑有选择性地添加如下功能:
1.BOSS在战斗中实时享受到的,有时间限制的,所有BUFF与DEBUFF的时间轴。比如:无敌帧时长、被削弱属性抗性的效果与时长。
2.角色在战斗中实时享受到的,有时间限制的,所有BUFF与DEBUFF的时间轴。比如:攻击力、攻击速度、血量、防御、暴击伤害、暴击率、抗性属性伤害加成等临时释放的时间轴。
3.角色不经修饰的原始输出值,即不享受所有临时和全局BUFF和DEBUFF情况下的输出值。
4.角色享受了BUFF和DEBUFF情况下的输出值,目前已实现。
5.统计角色向BOSS释放奥义失败,奥义并没有运行完整的次数与起始时间。
6.统计角色向己方和队友释放的盾系BUFF所吸收的伤害量。
7.统计地图中由角色和BOSS释放的光环和角色停留在某一段范围内会造成高额持续伤害的范围、个数、伤害量与持续时间。比如困难雪暴山脉BOSS释放的高额持续伤害有限定时间的冰冻圈。
        当然了,可能还是部分玩家希望,挂在后台的角色,也能和手控的角色一样,打出足额的伤害量。笔者就在本章接下来的篇幅,剖析这种想法的可行性。
        省流给出结论:目前后台的角色的AI对战逻辑,与贪心算法接近,即每一次移动都更接近于向BOSS输出伤害,得意技,闪避反击和普攻会尽可能使用,奥义和支援技能需要玩家手控切换角色施放。
        目前的对战逻辑可以有一定的提升空间,比如在定时器的若干秒间隔中,一旦触发部分条件,比如风枪、水剑在血量条上的高额输出触发条,可以保留得意技不触发。一旦满足所有条件,可以在一个时间点上,BOSS不处于无敌帧的前提,自动释放对应角色连携组合按钮,比如得意技、奥义和部分普攻的自动释放连携组合,打出非常高的伤害;比如多洛提亚拾取药瓶和火舞风舞小红帽释放支援技奥义后,让所有角色都享受大范围BUFF的自动寻路算法等等。但这一组提升空间是否由于高频次的判断,造成计算量的部分提升,造成玩家设备进一步发热甚至闪退带不起来,尚未可知。个人谨慎看好对贪心算法改进的这种优化方式。
        但如果参考AlphaGo的实现方式,使用动态规划的算法,追求后台角色总输出量的最大化,让AI有玩家的操作,甚至超过玩家能打出的最大伤害,即需要在多种因素的综合考量下,选取非常多步骤内所组合后最终得到的最优解。这种选取步骤的方式,不一定每一组都是最优解,但这种计算方式需要综合考虑所有步骤下每一组步骤的若干种不同选择,每一步骤的不同选择都可能触发下一步骤的分支。综合考虑后得到命中最高伤害的一组或几组选择分支。同时还要留意,使用这种后台角色AI逻辑,模仿手控角色AI的作战方式,战斗期间硬件的计算量会巨幅提升。面对巨幅提升的计算量,CPU和GPU的功耗和发热会显著提升,众多玩家的设备很可能带不起来。
        专业知识所限,也许仍有不少局限性,以下就是本人根据多次与BOSS对战的场景,联想并描绘一下使用动态规划,是如何巨幅增加硬件的运算量的。读者可以直接记住上一段的结论——使用动态规划优化自动对战逻辑,很可能会巨幅提升硬件运算量,CPU和GPU的功耗和发热量会显著提升,众多玩家的设备很可能带不起来。不必深究接下来笔者对动态规划知识的举例,以及游戏战斗场景中使用动态规划后,建立一种简单模型帮助理解的推测:
-----------------------------------------------------------------------------------------------------------------------------
        首先画出这几张图,建立一组简单模型,涉及到战斗系统中BOSS和3名角色的初始站位。以及举的例子,为简化模型,减少玩家的时间成本的和计算量,假定只选取5个角度为0°,45°,90°,135°,180°的点,假定从tn-1状态开始,3名角色通过移动,到达近战、中距离、远程的最优输出位置。目前暂不涉及时间轴的推进以及3名角色和BOSS的状态变化。
TapTap
图3-1:刚进入战斗时t0状态,三个角色与BOSS的初始站位示意图。
TapTap
图3-2:在图3-1的基础上,添加近程、中程、远程假定的最优输出位置。
TapTap
图3-3:角色在战斗过程的某一个阶段,移动到假定最优位置对BOSS进行输出的某种场景。
TapTap
图3-4:角色在战斗过程的某一个阶段,站在原地对BOSS进行输出的某种场景
TapTap
图3-5:角色在战斗过程中的某一个阶段,某一组不凑巧的无法让全队享受BUFF的示意图
        假设以BOSS的每一次攻击和每一次移动都作为时间轴变换的标志,从角色向BOSS输出的角度来看,在BOSS的每一次时间轴变换期间打出的多次伤害可以稍作简化,多次输出伤害合并成一次输出伤害和。
        那么从T0...T1......Tn-1...Tn......最后到Tlast的时间轴,要想在最后的结果中逼近那个团队最优输出的结果DPCLTMAX,此简写标记下同,就需要在一条时间轴上,随着BOSS的每一次攻击和每一次移动的决策,角色有时候就需要做不同决策,主动移动?或被攻击的被动移动?或不移动?通过决策时间轴推进期间角色的第Tn-1步骤,让决策的结果避免未来的步骤会出现图3-5的情形。剪枝优化排除部分明显无法逼近那个DPCLTMAX,减少计算量,然后再从剩余计算结果中找到逼近那个DPCLTMAX。
可以接着把模型简化,将决策的路径分为两种:
1. 角色与BOSS相对位置在Tn-1下发生了改变,角色需要回到近程、中程、远程对应各自的假定最优输出位置,近战是N1~N5这5个点选一个;中距离是M1~M5这5个点选一个;远程是F1~F5这5个点选一个。角色在Tn回到假定最优输出位置后,需要额外耗费一段无法输出的时间,然后接着从Tn开始继续推进时间轴向BOSS输出,直至Tlast的触发。
2. 角色与BOSS的相对位置不变,继续在原处输出。直至未来的某些情况,动态规划的算法发现,决策路径在未来的某个时间点需要做出改变,能够打出截至未来那个时间点的最高团队输出量,再选择跳转到路径1。
        每一组决策分支都会分出两组路径,一旦这两种路径的跳转,触发了角色无法都能享受到团队BUFF,即tn-1第三种方式的示意图,就可以忽略那一组结果,能够减少一部分运算量。
        这个模型仅仅是方便建立模型和简化版,仅仅是计算出T0...Tlast的时间轴下,三人小队向BOSS输出后,逼近那个团队最优输出的结果DPCLTMAX。真正需要把结果逼得更近,更趋近于理论上三人小队的最高伤害,就不能仅仅取5个位置参考近似点ABCDE、不能仅仅只选取三组共15个假定最优输出位置、就不能仅仅考虑2种决策路径。如果需要进一步逼近理论上的三人小队最高输出结果,那么建模和动态规划所需的计算量就不得不飙升了。
        同时,由于无法保证在贪心算法中,每一组最优输出的结果,会带来未来若干组中,其他角色吃不到辅助角色释放的DEBUFF,造成最终计算结果中无法逼近团队最优输出结果DPCLTMAX。也就是贪心算法能保证每一步决策都是最大化,却不能保证未来的若干步骤,而最终的DPCLTMAX往往需要在众多决策分支后的计算结果中查找某一个或某几个,需要通过每一步计算,记录当前一轮的最高伤害量和决策路径,因此计算量会非常庞大。
        看到这里应该还是无法理解吧?如果有一个简化版的例子对比会更生动。现在就引入一组简化版的动态规划例子。参考《算法导论》第二版,作者Thomas H.Cormen ,Charles E.Leiserson,Ronald L.Rivest, Clifford Stein。译者潘金贵、顾铁成、李成法、叶懋。进入第15章 动态规划,原书193页。
        一个找出通过工厂装配线的最快方式的制造问题。共有两条装配线,每条有n个装配站;装配线i的第j个装配站表示为S i,j,在该店的装配时间是a i,j。一个汽车底盘进入工厂,然后进入装配线i(i为1或2),花费时间ei。在通过一条线的第j个装配站后,这个底盘来到任一条线的第(j+1)个装配站。如果它留在相同的装配线,则没有移动的开销;但是,如果在装配线S i,j后,它移动到了另一条线上,则花费时间t i,j。在离开一条线的第n个装配站后,完成的汽车花费时间xi离开工厂。待求解的问题是确定应该在装配线1内选择哪些站、在装配线2内选择哪些站,才能使汽车通过工厂的总时间最小。
题目描述如图所示:
TapTap
图3-6 工厂装配线问题的状态转移示意图。
TapTap
图3-7 其中一种装配线问题示例是两组装配线,每组各6个装配站。每个站点的耗时已标出
这个问题示例结构清晰,可以很快地算出每一组装配站结束后,在每一次时间轴状态切换下打一个断点,每个步骤下分支装配线1与分支装配线2两组路径的最短时间和路径如图3-8所示:
TapTap
图3-8 每个步骤下分支装配线1与分支装配线2两组路径的最短时间和路径
由此可以在动态规划算法的计算过程中同时记录,构建第一组表格,存储每一阶段下驻留两个站点的最优解。见图3-9:
TapTap
图3-9 构建第一组表格,存储每一阶段下驻留两个站点的最优解,即最短时间。
同时构建第二组表格,存储每一阶段下驻留两个站点最短时间的路径。1表示当前步骤的最优解驻留在站点1;2表示当前步骤的最优解驻留在站点2。见图3-10:
TapTap
图3-10 构建第二组表格,存储每一阶段下驻留两个站点最短时间的路径。
        最后从存储结果的多组last中找到那个最优解。本装配线问题示例的f1[j]与l1[j],j自然就是第一组数据。
        这个找出通过工厂装配线的最快方式的制造问题的例子与解决方案,是动态规划例子中最容易理解的其中一例。解决这个问题的状态转移方程很容易列出,没有随机性因素。分支最少,剪枝规则很清晰,构建了一组理想模型,忽略了现实世界的种种不可抗因素。
这类动态规划问题的设计思路,通常按照以下4个步骤解决:
1.描述最优解的结构。
2.递归定义最优解的值。
3.按自底向上的方式计算最优解的值。
4由计算出的结果构造一个最优解。
        第1~3步构成问题的动态规划解的基础。第4步在只要求计算最优解的值时可以略去。如果的确做了第4步,则有时要在第3步的计算中记录一些附加信息,使构造一个最优解变得容易。就算未来扩大本例的工厂装配线,把6条装配线扩充到n条,同样可以用相同的方式解决问题。
        如果玛娜希斯回响战斗系统的BOSS,也按照某一组固定的逻辑战斗,把随机性因素去掉。约定BOSS的每一次移动和每一次攻击都是状态的其中一次变换,角色自动对战逻辑的建模与解决,就可以套用上述工厂装配线的例子,模仿工厂装配线的状态转换图,互相对比做出某些替换,以两个问题之间的共同点类比,最终得到在BOSS按某一组固定逻辑战斗的前提下,构建三人小队的AI自动战斗逻辑,逼近团队伤害的最高输出。
这里列出一下两个问题之间的5组共同点:
1.比如角色的移动策略,在上文已提到将模型简化,将决策的路径分为两种:
        a.BOSS留在原地输出,对应工厂装配线问题的状态转移问题中,留在同一组装配线的下一个装配点,不需要额外的时间成本移动到另一组装配线的下一个装配点上。
        b.BOSS移动到某一位置,对应工厂装配线问题的状态转移问题中,需要额外的时间成本移动到另一组装配线的下一个装配点上。
2.假定角色的攻击范围已确定,从1~5个点中已确定了某一个最优输出点,并且已有了成熟的最短路线移动逻辑,也就是假定角色移动到最优位置的逻辑只有1种且已被锁定,5个点选1个的建模与运算已被简化。就仅仅需要考虑三个角色的每一个,是留在原地输出,还是移动到最优位置输出了。有8种可能,采用3位二进制数表达三个角色是否移动的所有可能性。1表示移动,0表示停留。即:000,001,010,011,100,101,110,111。此时把图3-6中,工厂装配线1和装配线2上,每一个步骤的所有父节点,替换为1对8的子节点,如图3-11所示:
TapTap
图3-11 t0阶段到t1阶段,工厂装配线例子与自动对战状态转移第一阶段的相互对比示意图
TapTap
图3-12 t1状态到t2状态的不移动前提下,三人小队所有角色在每组状态中8种移动决策的分支。
        这棵八叉树仅仅是BOSS由t1状态到t2状态的不移动前提下,三人小队所有角色在每组状态中8种移动决策的分支。采用3位二进制数表达三个角色是否移动的所有可能性。1表示移动至最优位置,0表示停留。即:000,001,010,011,100,101,110,111。随着时间轴的推进,每个父节点在每一轮状态转移的推进下,都要扩充8个子节点。
TapTap
图3-13 三人小队用动态规划在状态转移过程中构造的,描述每组状态转移片段的八叉树
        这棵八叉树仅仅是BOSS由t1状态到t2状态再到t3状态的不移动前提下,三人小队所有角色在每组状态中8种移动决策的分支。如果玛娜希斯回响的自动对战逻辑采用动态规划的方式编写,所需运算量就是从这里开始巨幅地提升了。
3. 在2.的基础上,加入单一角色从1~5个点中,并不确定哪个点是最优输出点,就需要额外考虑更多可能性,对应在工厂装配线上每一个决策节点的子树分支,就不仅仅是8种了。运算量就是在这里更为巨幅地提升了。
4. 都可以从最终计算结果中,找到那个最优解。找到最优解后,再返回动态规划算法的计算过程中同时记录的两组表格,找到当前某一步骤的最优解,以及该最优解的路径。
5. 当前最优路径,不考虑随机性问题影响,通常在最终全局的运算中也是最优。但当前最优路径,不见得是不需要额外成本移动的路径。这是动态规划与贪心算法的一个非常明显的区别。
这两个问题所列出来的5组共同点,仅仅是假定BOSS的每一次决策都已知,不存在随机型问题的讨论中。
        但可惜实际的建模与运算,根本没有办法把随机性因素去掉。BOSS的下一次决策要做什么?怎么得知BOSS下一次决策的可能性以及每一种可能性发生的概率?下一次是攻击某个角色,还是移动到某个位置?如果BOSS攻击玩家,是普攻,还是得意技,还是奥义?这个笔者真不知道。笔者只知道,构建这种带有随机因素,影响状态转移方程设计的问题,非常复杂。不是三言两语能说得清楚的。要考虑的因素实在太多了。
        其中一组随机性因素,就是部分BOSS会在地图的某些随机区域释放持续一段时间的伤害圈和DEBUFF圈。比如困难雪暴山脉的BOSS,有一组技能就是释放高额持续伤害有限定时间的冰冻圈。如图3-14:
TapTap
图3-14
TapTap
图3-15 从图3-14可以描述为tramdom_1时间轴
TapTap
图3-16
TapTap
图3-17   从图3-16可以描述为tramdom_2时间轴
        这类带随机性的持续伤害圈,会进一步加剧随机型动态规划自动对战逻辑,尤其是角色自动寻路逻辑的计算量。基于图3-13,如果需要角色持有战斗力,就需要避开随机持续伤害圈。而避开随机持续伤害圈需要什么?需要再次提升运算量。三人小队是否停留还是前往假定的最优位置输出,就需要重新决策。参考之前描述的8种决策路线的某几种,就很可能需要更多的角色有机会参与移动。同时对于每个位置假定最优输出位置的5个点做出重新修改,避免角色停留或穿越随机持续伤害圈。
--------------------------------------------------------------------------------------------------------------------------
        笔者水平所限,对于随机型动态规划的理解非常浅薄,不打算在这里继续探讨下去。各位玩家只需要知道,使用动态规划优化自动对战逻辑,很可能会巨幅提升硬件运算量,CPU和GPU的功耗和发热量会显著提升,众多玩家的设备很可能带不起来。与其花费很多精力纠结三人小队中单一角色的最高输出问题,纠结一个三人小队由三个手控输出角色组成,却有两个角色打不出本应手控打出的足额高伤害的问题,不如多考虑考虑辅助角色的价值。
2