网页游戏中随机概率设计探讨(转别人)

公司最近的游戏发展在细节上遇到了问题,集中在概率上。

 

例如,我们设定游戏关卡掉落装备的概率是1%,则理论上攻打100次就会有1次掉落装备。

但是,实际上,不可能每个玩家都能在100次内都会获取到装备。

如果用了真实的概率,会严重打击玩家积极性。因此网页游戏中不可能设置真实的概率。必须使用“假概率”。

 

同样用上面关卡的例子,一个关卡的暴率是1%,则这个关卡有2层概率:

1. 全局概率,表示不区分攻打者,这个关卡的掉落次数/总被攻击次数

2. 个人概率,表示当前攻击者,攻打关卡掉落次数/当前攻击者攻打关卡次数

 

2个概率中,全局概率重要度大于个人概率,表示,

1. 全局概率判定为false的时候,个人概率必须是false。

2. 全局概率判定为true的时候,个人概率再根据实际情况进行判断。

 

根据这个条件,可以得到以下推导。 

 

个人概率计算:

掉落次数为 dropcount

攻击次数为 attackcount 

真实概率为 p_real = dropcount / attackcount,是玩家实际攻打关卡的概率

理论概率为 p_theoratical, 是游戏设置的概率

当前概率为 p = ramdom(0,100)/100,是但前平均分布随机数下得到的概率值

是否掉落装备为 drop 

如果p < p_theoratical,则drop = true,否则 drop = false

如果drop,则 p_real = (dropcount+1) /(attackcount+1),否则 p_real = dropcount / (attackcount + 1)

 

如果p_real < p_theoratical, 表示真实概率小于理论概率,则drop强设置true;

如果p_real >= p_theoratical, 表示

真实概率大于理论概率,则drop根据p结果进行判断。

 

这样就能保证p_real >= p_theoratical。这个算法最起码保证了概率过低的玩家的利益。但是当玩家暴率过大的时候;需要设置上限控制了。

上限概率 p_max

如果p_real > p_max,则drop = false。

这样又控制了玩家的过高暴率。 

 

全局概率计算: 

现在我再混入全局概率,全局概率计算与个人概率完全一致;

 

计算个人暴率的时候,得到全局概率结果、个人概率结果。

当全局概率 = false的时候;个人概率一定是false;

当全局概率 = true的时候,个人概率根据运算结果进行判定。

 

概率深入探讨:

上面2中设计仅仅保证了一般性玩法,如果有玩家希望短期突破,我们必须设定一个连击暴率,其含义是玩家在一个短时间内连续攻打关卡x次,一定爆一次装备。

还有节假日的暴率,特殊行为的高暴率等。

 

综述: 

总而言之,游戏中的概率是最吸引人的一部份,过分的依赖了计算机随机概率,会严重打击玩家的积极性,因此需要设计各种假概率。

玩过QQ的飞行器游戏玩家都会发现,其丢色子的概率总是这么“凑巧”能够把前面的飞机弹回去。这样就极大提高了游戏性。

当然,概率过假,玩家一样不买账,因为已经可以遇见了,等于明摆着坑我的钱,我还玩什么?

转载于:https://www.cnblogs.com/wayne1984/archive/2013/06/13/3133567.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值