对抗类游戏平衡性评价与环境预测方法(5)
导语:导语:注意这里的胜率矩阵是纵向排布的,即第一行是[各职业对阵战士]的胜率,特别注意的是,所有职业对阵德鲁伊的胜率均小于50% 数据来源:炉石传说盒子,http://lushi.163.com/bigdata/1 3.3有约束条件下的平衡性
导语:注意这里的胜率矩阵是纵向排布的,即第一行是[各职业对阵战士]的胜率,特别注意的是,所有职业对阵德鲁伊的胜率均小于50% 数据来源:炉石传说盒子,http://lushi.163.com/bigdata/1 3.3有约束条件下的平衡性计算 3.
注意这里的胜率矩阵是纵向排布的,即第一行是[各职业对阵战士]的胜率,特别注意的是,所有职业对阵德鲁伊的胜率均小于50%

数据来源:炉石传说盒子,http://lushi.163.com/bigdata/1

3.3有约束条件下的平衡性计算
3.2节讨论了当对玩家策略不做任何约束的情况下的平衡性计算,但在实际游戏中,因为玩家喜好、英雄池的不同,是存在一些潜在约束条件的。
以3.2节最后的炉石传说的计算结果为例,在胜率大于50%的求解结果中,看上去圣骑、盗贼在使用率超过50%的情况下,也能够获得超过50%的胜率,但是如果我们将求解的“最佳策略”输出出来就会发现,在盗贼使用占比55%的情况下,剩下45%必须全部用猎人才能获得50.26%的胜率。

如果一个玩家不喜欢玩猎人,或者目前手里的牌构筑不出环境中主流猎人的卡组,那么这个玩家55%使用盗贼的情况下就“有可能”拿不到50%的胜率了。
因此,3.2节的求解过程中,如果有一定的先验知识,那么可以加入一些额外的约束条件来使得整个求解结果更加接近于真实结果

这里的c4:ul<0.2就是额外的约束条件,要求第l个英雄的使用率不能超过0.2。
加入一个约束条件对于求解问题本身并没有难度,只是要注意2点
1是约束条件C={c1,c2,…,cm}本身需要是自洽的,不能既要求u1>0.6,u2>0.6,还要求u1+u2≤1
2是当求解到k=l的相关情况时(uk=0.05、0.10…),在代码中要做好处理,确定以谁为标准,是uk=0.05还是ul<0.2
我们将“猎人、德鲁伊的使用率≤20%”作为条件加入到前面的炉石求解过程中,得到结果:

可知,限制了猎人、德鲁伊的使用率后,玩家在55%使用盗贼的情况下已经只有50.01%的胜率了
3.4问题点讨论
3.4.1数据缺失问题
如果游戏的玩家数量不够多,或游戏版本更新较快,会导致同一个游戏版本中难以获得足够多数量的对局覆盖所有英雄之间的对抗情况,最终导致“对战胜率矩阵”中存在空缺值。
对于这种情况,有2种解决方案
方案1是人为根据经验、其他相似英雄的对局胜率估算一个胜率填补空缺值
方案2是在求解计算时,“不让没有对局胜率的2个英雄碰面”,即将本应该属于他们2人的对局分配给其他有对局胜率的英雄
例如本来环境中石头、剪刀、布的分布是0.4、0.4、0.2,但现在布和石头的对局胜率缺失了,那么在计算到0.2*[石头VS布]时,就用0.1*[石头VS石头]+0.1*[石头VS剪刀]来代替

图中函数getWinRateNow是用来计算玩家策略(myArray)对抗游戏环境(enemyArray)时的胜率期望,对于每一个heroMe,55-57行用noRate统计了其存在空缺值(对局胜率小于0)的场次比例,并在61行在计算有对局胜率的场次时除以(1-noRate),从而实现将缺少数据的场次按比例分配给有数据对局。
但是该方案也仅仅适用于空缺值较少的情况,如果对于某个冷门英雄缺失了很多对局胜率数据,那么这种将空缺场次分给非空缺场次的做法会带来比较明显的偏差,一个极端的例子是如果这个英雄只和一个英雄有对局胜率,胜率是55%,那么最终结果将会是这个英雄对阵每个英雄的胜率都是55%,这显然是不合理的。
3.4.2“策略”的粒度问题
正如第1节所说,“策略”是讨论游戏平衡性的单位,但是具体到实施中,对游戏中的“策略”进行归类时粒度的粗细却不好把控,可以将大致相似的策略都归为一种,也可以将但凡有一丁点不同的策略都视为不同的。
- 新时代日本市场:游戏用户支出减少至86%2019年08月09日
- 宣布Epic独占后,这个独立游戏被骂惨了2019年08月09日
- 对话雷霆游戏CEO翟健:我眼中最具机会的五个品类2019年08月09日
- 《少年三国志2》能否引领下一个卡牌游戏潮流?2019年08月09日
- 西部数据全球市场部副总裁Sven Rathjen:WD_BLACK助力玩家获更高效、更投入的游戏体验2019年08月09日
- 垃圾分类小游戏爆发 如何成为“垃圾堆”中好产品2019年08月08日
健康游戏忠告 抵制不良游戏,拒绝盗版游戏,注意自我保护,谨防上当受骗 适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活
- 作品版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在三个工作日内删除
- 提示:本站为防止低俗内容出现,用户发表的评论及上传游戏需本站审核后才能显示出来,谢谢