本文从只有成功/失败和多个选择项两种情况,举例说明了采用真随机、受控随机和混合的算法,对分布图的不同影响,认为受控随机解决了之前游戏中随机算法存在的问题,避免一行频繁选取同一事物,避免某件事成功之前的等待时间太长,避免太多可预见性,避免在某种情况下,某个项永远不会被选取到。
我不知道这个问题是否有正确的名称,但在游戏开发中通常不需要真随机。我看到这个解决方案命名为“ 伪随机分布”,但“伪随机”在游戏设计之外已经有了不同的含义,所以我在本博客文章称之为受控随机。
这个问题的描述如下:按预期,一个敌人会有50%的时间丢下道具。玩家不停的打这个敌人,10次之后,该道具还是没有丢掉,他们会觉得这个游戏坏了。或者一次攻击预计有90%的成功率,但是一行中有三次失败了,玩家会认为游戏出问题了。
在这篇博客中,我想把这个问题扩展为不只两个选择(成功或失败),而是很多选择的情况。比如,我们想创建一个马路上的交通情形,需要随机放置一系列的车,相同的车出现的次数不能太多。对于只有成功、失败的情况来说,这个问题已经部分解决了,对于有多个选择项的情况,我在本文会改进该解决方案。