最近在玩《战地1》,发现战地的角色设计还是很有意思的,不同于《彩虹六号》特色鲜明,和游戏策略强结合的干员技能,战地系列里面支援兵、医疗兵等不同兵种的能力是比较隐晦的,例如支援兵可以像突击兵一样往前猛冲,主要特点是供弹能力,刚玩的时候感觉没有什么兵种的感受,但是玩久了之后发现队伍缺了支援兵是真的不行的,侦察兵、医疗兵的强度会大大减弱
于是有了一个想法:能不能预先判断怎么样的兵种数值,可以均衡每个兵种的出场率,让喜欢每种兵种的玩家都享受这个游戏?
基本思路:
举一个栗子:
- 由于当前版本突击兵太强了,大家都在玩突击兵,我们同时上调了支援兵种的供弹量和医疗的加血速度,那么对核心的留存指标会有什么影响呢?
- 首先,我们将新的数值输入收益预测模型,预测在新的数值下每一类小队构成对位其他小队构成时的收益
- 基于预测模型的结果,更新阵容对位收益矩阵,求解当前收益下的混合纳什均衡,并于之前的作对比
- 在混合纳什均衡中显示,多突击兵阵容的出场概率从80%下降到了40%,同时包含支援兵的阵容从10%上升到了30%,包含医疗兵的阵容从30%上升到了60%
- 从平衡性的角度来看,所有兵种的上场率都能提升到20%+,平衡性的提升必然会带来更好的游戏体验,从而提升留存;从用户群体匹配的角度来看,擅长支援和医疗的用户能够得到合适的生存空间,因此留存意愿也会更高
在这个模型下,小队阵容之间的对位收益是最重要的评估依据,我们可以从玩家测试中获得各类小队阵容的对战结果,但是当我们要调整兵种技能的情况下,这种线上测试的数据就无法提供有效的支撑了。
因此,我们需要构建一个预测模型,以判断在我们对兵种技能和数值作调整之后,可能的对战结果是怎么样的,即当小队A与小队B遭遇后,可能的结果Y
F(A,B)=Y
在模型的特征上,我们主要基于小队兵种的数值来构建,例如A小队是突击兵+侦察兵+医疗,B小队是双突击+医疗,则:
除了这些特征外,其他的小队面板数据(如支援兵种的修车速度等)均可以作为特征输入到模型内
预测模型可以采用Xgboost或LGBM,模型本身对预测准确性要求不高,更重要是减少过拟合的情况,保证模型对兵种面板数据的变更有较好的响应
接下来我们需要构建一个小队对位矩阵,矩阵主要由阵容策略集S和对位胜率W组成
在有了这样一个矩阵后,我们可以基于混合纳什均衡的线性规划优化求解方法,得到在混合纳什均衡状态下的小队组队环境,从而对改动上线后的对局环境有先验的认知。得到:
简单补充说明一下混合纳什均衡(Mixed Nash Equilibrium , MNE):
平衡性是非常常见的一个判断依据,基于推演的组队环境,我们可以对兵种出场率有一个明确的预判,结合对位胜率矩阵中的相关数据,我们也能得到兵种平均胜率的数据,例如推演结果为:
MNE状态:
(突击+控制):10%;(支援+突击):50%;(支援+侦察):40%
对位胜率矩阵:
则支援的出场率=90%,
平均胜率=0.5/0.9x(0.1x0.4+0.5x0.5+0.4x0.45)+0.4/0.9x(0.1x0.7+0.5x0.55+0.4x0.5)
=0.26+0.25
=51%
同理,我们也能计算出其他兵种的出场率和胜率,以及诸如全突击等特殊阵容的出场率与胜率等,从而对环境平衡性有先验的认知
组队环境与用户群体构成的匹配程度决定了用户留存,譬如当游戏现有用户中突击、支援、侦察型用户的分布为4:3:3时,如果当前游戏环境要求有超过60%的用户使用支援兵种,则会出现明显的不匹配,导致突击兵被迫玩支援等情况,从而引起用户流失,此时匹配性我们可以从推演的组队环境中进行判断
以上分析都是基于理论推导和对产品的认知建立的,实际中针对具体的数据分布情况,必然会存在可行性或准确性的问题,需要根据实际的数据分布来调整模型或指标的设计