本文首发于微信公众号: 小蚂蚁教你做游戏。欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。
嗨!大家好,我是小蚂蚁。
今天分享一个非常好用的概率控制器,可以用于游戏中两种行为出现的概率控制。这个方法来自于《大师谈游戏设计》(作者:吉泽秀雄)一书中,作者提到的一个 WIN-LOSS 控制器。
这个 WIN-LOSE 主要用于赌博机中控制中奖与否的概率。
如图,就是一个 WIN-LOSS 表格,书中使用的是 16 进制,为了方便理解,我对其进行了修改和简化,改成了 10 进制,不过原理都是一样的。第一列表示的是点数,每个点数区间包含 10 个数字,右侧红色的格子表示不中奖,绿色的格子表示中奖。点数在 91 ~100 的时候,必定会中奖,点数在 1~10 的时候,基本上不会中奖,也就是说点数越大,中奖的概率就会越高。
除了点数之外,还有两个用于控制概率的值,一个是当抽到未中奖时,点数就会增加 M,另一个是当抽到中奖时,点数就会减少 N。
也就是说,增加值 M 较大的时候,中奖的概率就会提升的很快。减少值 N 较大的时候,一次中奖后,下一次中奖的概率就会降低很多,通过调整这个 M 和 N 的值,就能调整出非常多的中奖与否概率的组合。
虽然这是一个用于赌博机中的概率控制,但是很显然这个方法,可以应用于任何需要控制两个事件发生概率的地方。比如说用于敌人攻击的频率,敌人刚出来时的点数为 100,增加值 M 为 0,减少值 N 为 5,这样敌人一出来就会疯狂攻击,但是很快就会力不从心。或者让敌人刚出来时的点数为 30,增加值 M 为 5,减少值 N 为 1,这样敌人刚开始出来不怎么攻击,但是随着时间的增加,攻击频率会越来越高。
接下来,我们就制作一个示例,应用一下这个 WIN-LOSS 控制器。我们制作一个抽奖机,然后利用“点数增加值”和“点数减少值”来调整中奖的概率。
来到微信小游戏制作工具中,首先创建一个表格。
这个表格对应的就是 WIN-LOSS 图表,其中 1 表示中奖,0 表示未中奖。
接着,我们布置一个简单的场景。一个抽奖按钮,一个当前的点数,一个是否中奖的提示。
接着,创建三个变量。如果未中奖,点数就会加上“增加值”,如果中奖了,点数就会减去“减少值”。
最后,看一下抽奖按钮上的积木逻辑。
逻辑其实很简单,点击抽奖时,使用当前的点数除以 10 ,然后向上取整,可以得到表格中的行号,得到行号后,从 1~10 中取出一个随机数当作列号,抽取表格中的数判断是否等于 1,等于的话表示中奖,将点数减少。不等于的话表示未中奖,将点数增加。
最后,运行一下,抽个奖。
对于中奖与否的概率,我们可以通过修改“增加值”和“减少值”来对其进行调整。
不得说这个方法真的是很精巧,使用一个表格,两个变量,就能够实现对于概率的有效控制。
这个方法是值得纳入“游戏开发工具箱”的,因为它可以应用到很多的游戏中。作为一个游戏开发者,你应该有一个“游戏开发工具箱”,里面收纳了很多好用的工具,例如网格布局,查找算法,随机数控制......以及今天的这个 WIN-LOSS 概率控制器。这些工具会在游戏开发的过程中频繁的用到,能够帮助你极大的提升开发的效率。
另外,在了解了今天的这个方法之后,你大概也就知道那些抽奖机的原理了。当你点击抽奖按钮的那一刻,结果早就已经确定了,至于是转圈,抽卡,砸金蛋,还是刮刮卡,不过都是后续的表现形式而已。
当你持续多次没有中奖后,下一次中奖的概率就会比较大(没有人会玩一台始终无法中奖的机器),或许你可以再试一下,没准就中了。
当你中奖后,想要进一步乘胜追击的时候,不妨再想一想,因为下次中奖的概率可能会小很多,此时,适可而止落袋为安,或许是一个不错的策略。