2018-12-02编辑:小黑游戏
一直以来炉石传说的平衡性一直是网友们关注的重点,特别是近日的更新调整后出项的一些平衡性问题。对此,官方也是介绍了炉石传说的竞技模式的平衡性。下面一起来看看吧!
大家好!我是《炉石传说》团队的一名高级数据研究员Tian,今天我要和大家分享竞技模式平衡工作背后的数学原理。
大家一直都在玩竞技模式,这会产生大量的数据,我们可以利用数据来让竞技模式更加平衡。这个数据量真的很大。如果我在砰砰实验室,那我可能会被安排在数学科学部门!
平衡游戏
竞技模式的平衡工作有两个阶段。第一,我们会确定每张卡牌要进入哪个(或哪几个)牌池(牌池是强度相似的卡牌所组成的集合)。一张卡牌通常会进入两个牌池,同时我们会将传说和非传说卡牌分入两种不同的牌池系统。我们会通过游戏中卡牌的胜率和被选取的几率来决定哪张卡牌进入哪个牌池。这使得大家在选牌环节中每次看到的三张卡牌都在相近的强度等级上。
第二,我们会平衡九个职业的胜率。理想的状况下,胜率应该尽量接近50%。我们会通过调整相关的每张卡牌的权重来实现平衡。权重与卡牌出现在选牌界面中的概率有关。一张卡牌的权重越高,你在选牌时看到它的几率就越大。如果卡牌的权重被调整,那么它所在的牌池也会相应调整。
要让这个系统运转需要大量的数据,而由于每天都会进行海量的竞技模式游戏,所以我们就有大量的数据可供参考。
而使用这些数据来调整游戏平衡又需要三个步骤。
建立模型
限定条件下求最优解
计算权重
在这一切都完成之后,我们还需要安排在线修正来应用这些改动。
建立模型
如果你经常玩竞技模式,你可能很熟悉该如何计算胜率。有些卡牌的胜率会明显高于其他卡牌。例如,你在游戏中选到巫妖王之后的胜率肯定比选到雪鳍企鹅高得多。
那我们就假设你选到了巫妖王。那你可能会想:“我选到巫妖王之后的胜率有多少?60%?50%?我要怎么去量化计算呢?”我们再假设你下一轮选牌选到了寒冰护体,那现在你又该重新计算自己的胜率了。
我们建立了一个机器学习模型来回答这些问题。我们将大量的数据输入电脑,用所有竞技模式中的对战详情来让电脑不断学习,根据所给的信息来预测胜率。用正式的术语来说,就是我们会“训练”我们所建立的模型。因此,在我们选择了任意卡牌后,它都能给出相应的胜率。
限定条件下求最优解
我们后退一步,把上面的模型想象成是一个箱子,上面有许多供你调节的旋钮。每一个旋钮关联一张具体的卡牌。当你调节一个旋钮的时候,你就调整了这张卡牌的相关数值 。
比如在你调节一个旋钮之前,箱子告诉你目前的胜率是40%。在你调节之后,预测的胜率变为46%。这就引出一个非常有趣的问题:如果你调整了多个旋钮,那么你能够将胜率调整到你想要的目标值吗?
所以我们需要构建一个优化问题。用数学术语来说就是我们想要找到所有可行方案的最优解。我们想要通过同时“调整多个旋钮”来尽量得到我们想要的胜率目标值。用术语来说就是,我们要用高维向量来求一些目标函数的最小值。
在竞技模式平衡中,我们想要所有职业的预测胜率尽量接近50%,并且我们会通过调整涉及到的每张卡牌的相关数值来实现这一目标。
但是我们不能随意地调整这些旋钮,它们是有限制的。以下是我们在“箱子”中设置的一些限定条件。
30%之内。重大的改动可能会破坏游戏的体验。
如果我们想要降低某个职业在竞技场的强度,那么他们高强度卡牌的出现几率就会比强度较低的卡牌低一些。如果我们想某个职业更强一些,那就把这个思路反过来。
为了保证求解胜率问题的可行性,还会有一些实际数据上的限制。例如,所有卡牌出现概率的总增加量和总减少量应相等(即数学术语中的“零和”)。
计算权重
用数据来完成竞技模式平衡的最后一步,就是根据我们在前两步所得的信息来调整相关卡牌的权重。总体上来说,一张权重为2.0的卡牌的出现频率要比权重为1.0的卡牌高出一倍。
而限定条件下的优化结果会告诉我们要“调整哪些旋钮”、“调整的力度为多少”。然后我们会将每个“旋钮”连接到选牌过程中每一张卡牌的出现几率上。现在我们知道应该如何调整每一张卡牌的权重了,并且还会根据每张卡牌的特性来进行其他的调整(例如该卡牌是法术还是武器,来自哪个扩展包等等)。
游戏内平衡
在平衡工作完成之后,所有九个职业的总体胜率应该非常接近50%。但是在极少数情况下,我们也会面临平衡之后效果并不理想的状况。
如果某个职业的胜率远远高于或低于50%,那我们就要做出权重调整;我们也许没有达到理想值,但调整过后情况总会比以前好很多。
而这个系统可以通过先进的计算机数学和机器学习来利用竞技模式的数据,让我们可以确定哪个职业需要被加强或者削弱,并为每个职业的每张卡牌选择最优化的权重。
以上就是访谈全部内容。