[作者:雯雯子]
一、纯随机的体验
在卡牌游戏中,抽卡是一个很重要的环节。对于卡池中价值较高概率较低的物品,比如设计抽出概率为5%,抽出期望次数为20次,但是实际玩家在抽的时候,大部分玩家都能在少数几次内抽出,也有一部分玩家很多次都没出,使得体验上的差异较大。如果可以使玩家抽出次数的分布符合正态分布,即绝大部分玩家都是在20次左右抽出指定道具,似乎更符合体验的需求。
首先来看一下,设定道具A抽出的概率为5%,在纯随机下,抽出次数的分布如图:
完全独立随机分布图.png (16.14 KB, 下载次数: 3)
2020-5-20 15:30 上传
可以看出,有5%的玩家一次就能抽出道具A,10次以内抽出的玩家达到了40%,然而50次没有抽出的玩家也有7.7%。这很显然对于单个玩家来说,无论是很快抽出导致后续付费下滑,还是多次不出对抽卡不满,都并不是我们希望看到的情况。
那么,有什么办法可以尝试使玩家抽出次数的分布符合正态分布呢?这里我大概尝试了两种办法,一个是借鉴dota中暴击等概率计算的PRD算法,一个是用序列填充法。
二、PRD算法
PRD算法,是指假设暴击的概率为20%,那么以基础概率c为基础,如果没有触发暴击,下一次暴击的概率就增长为2c、3c、4c以此类推,直到触发暴击,则恢复基础概率c。这种算法可以很大程度的使得暴击次数接近期望值,并大大减少连续暴击或多次进攻无暴击的情况,使得暴击体验符合玩家的预期。
那么这里,我设定道具A的抽出概率为5%,模拟计算得PRD的基础概率c为0.38%,只考虑单个物品的抽出情况,抽出道具A的次数分布如图: