可以根据以不同方式获得的准确性来计算游戏中击中的事实:
- 与一个伪随机数比较(也可以通过不同的方式获得[ 1 ]);
- 与两个伪随机数中的最大或最小比较;
- 比较两个或多个随机数的平均值(也可以将平均值视为不同的值)。
准确性奖金也可以以不同的方式实施,从而由于各种原因引起玩家的不满。
同样,造成的损失可以用不同的方式计算,尤其是在骰子的基础上。
所有这些不同的方法都会影响游戏玩法:游戏的复杂性和可预测性。 根据所追求的目标,每个人可能都是一个不错的决定,因此,有意识地做出选择是最有益的。
本文将以不同的方式展示实际概率变化的直观图表,这将使他们能够快速导航并做出最佳决策。
精度操纵
通常,当玩家被告知角色的准确度为60%时,他会认为此信息为:“每10击中,我就可以指望6次击中。” 而且,如果10次命中他将观察到1次命中而不是6次命中,那么他几乎可以肯定会认为游戏中的事故已被打破。 如果这种情况发生在100次射击中,他将对此特别有信心。 为了避免此类麻烦,开发人员通常会秘密地操纵命中的真实概率(
甚至放弃随机性元素 )。
例如,在游戏《火焰纹章:装订刀片》中,为了准确确定命中,不是比较一个随机数,而是比较两个随机数的平均值[
2 ]。
这种操纵的结果是,针对良好的攻击(> 50%)比具有均匀分布的攻击下降的频率要高得多,而非激烈的攻击(<50%)的下降频率则要低得多。 以下是这种概率分布的变化方式:
例如,对于指示的精度的10%,实际精度为1.9%。 而实际为75%,则为87.24%。
但是,为此,您可以通过许多其他方式更改准确性。
例如,您可以取3个随机数的平均值:
结果导致的失真变得更加惊人:10%的精度变为0.41%; 75%的准确性变为92.69%。
但是,平均值也可以计算为几何平均值。 以下是具有2个随机数的几何平均值的更改:
这里10%变成4.83%,75%变成88.18%。 但是,最有趣的是,转换以算术平均值的30%而不是50%发生。 因此,如果您要确保玩家始终具有优势,那么只需确保其最低准确度永远不会低于30%,并且敌人经常会如此之低(
对于敌人,您可以使用算术平均值,或者甚至更失真的东西 )。
3个数的几何均值会导致大致相同的结果,但分布范围较大:
这里10%变成1.95%,而75%变成93.98%。
通常,为了增强或削弱某些技能,当两个随机数之一被选择为最大或最小时,会引入一种更简单的操作:
结果,命中的可能性变化很大。 例如,选择最小的数字时,将10%的精度转换为19.02%,将75%的精度转换为93.75%。
例如,此方法用在技能“滑心”中的“无冬之夜”游戏中,其中在救恩检查失败的情况下,进行第二次意志力检查[
3 ]。
无冬之夜-精灵战士[ 4 ]在上一篇有关概率操纵的文章中,展示了一种用于非常罕见事件的方法,其中事件的概率随时间增加:
开发者Carsten Germer使用受控随机性功能来处理罕见事件和不仅事件[ 5 ]。 例如,为了保证定期损失特别稀有的奖金(每10,000个机会中有1个机会),在每次“未命中”之后,机会的顺序依次为:1到9,900; 1至9800; 1到9700 ...依此类推,直到记录事件为止。 为了保证没有频繁的稀有性,他引入了一个附加变量,该变量在上次操作后的下10次检查期间将操作阻塞100%。
玩家对风险评估的误解[ 1 ]使用此方法时,此罕见事件的概率如何变化:
如您所见,最终与10,000分之一的概率无关,但是就游戏而言,这可能就足够了。 尽管它看起来更像是无意中掩盖了开发人员本人的真实概率,但这可能会导致在将来的程序改进中做出错误的决定。
下面,我还对1%事件进行了更改,随着尝试次数的增加,它至少会发生一次。 失真算法:前10次尝试-保证错过。 然后,对于每个未击中,被击中之前,概率都会增加1%(0.1%和0.01%)。 然后一切从头开始。
但是,如果您作为开发人员的主要目标是确保1%事件中的用户不会连续出现1000次未命中,那么在连续200次未命中后设置100%命中将更加容易和透明。 这将使您免于播放器难得的困惑,并使您可以使程序代码更简洁,更友好,以便将来进行改进。
不同的方式来获得准确性奖金
如果游戏中的准确性没有什么额外的奖励,并且开发人员可以轻松控制这些奖励,那么最简单的方法就是
通过简单地添加基本值,以最简单的方法
线性提高准确性 。 这种方法最容易在游戏中实现,并且对于玩家而言始终是可以理解的。 使用这种方法,有可能达到100%的准确性,而这并不总是与开发人员的计划相对应。
如果游戏计划在准确性上有很多重要的奖励,那么为了不超过保证的100%准确性,您可以将最终准确性计算
为一系列额外的抛出 (
通常不太可能是单独 抛出 )。 例如,如果命中率为70%,奖励为50%,则命中的最终概率将为85%,就像在至少一个命中足够时检查两个连续的罚球一样。
有点奇特的方法是
通过减少遗漏概率的奖励将奖励的本质改变为准确性 。
确保始终有机会错过任何奖金。 因此,游戏可以使“准确性”的奖励超过100%,至少为1000%。 而且仍然会有错过的机会。 但是玩家更容易混淆,因此令人失望。
大多数情况下,使用的方法是简单地将奖金加起来,这对于玩家来说是最容易理解的,并且对于开发人员来说很容易实现。
基于骰子的伤害分布
该项目完全基于出版物“
概率与游戏:Red Blob Games [6]造成的伤害损失 ”的视觉数据。 在这里,我简要介绍此出版物的一些示例和结论。 在原始文章中,您将收到更详细的结论和交互式分布图,以及用于选择各种独特组合的交互式可定制功能。
骰子伤害计算的最明显(但不是唯一)示例是基于最大值为12的伤害计算得出的。可以使用不同的骰子获得结果(
例如,如果您玩棋盘游戏且没有任何特殊骰子) ):
1d12-一个骰子有12个面
2d6-具有6个不同面孔的两个骰子
3d4-具有4个不同面孔的三个骰子
4d3-具有3个不同面孔的四个骰子
6d2-具有2个不同面孔的六个骰子
如您所见,使用不合适的立方体可以极大地改变游戏平衡。
结论
因此,考虑了以下主题:
- 使用各种检查方法准确地进行操纵;
- 积累准确性奖金的不同方法;
- 基于骰子的不同伤害分配。
每种方法对开发人员都可能有用。 对于观众较为休闲的游戏,通常会选择备用算法,在这种算法中,玩家的成功概率被高估了,并且为了激发兴奋,人们产生了不太可能获胜的幻觉(在先前的一篇文章中有更多报道:[
7 ])。
参考文献
1.
参与者对风险评估的误解。 开发中随机数发生器的控制 。
2.
Fire Emblem Wiki-随机数生成器 。
3.
无冬之夜2级能力-滑心 。
4.
无冬之夜-小精灵战士 。
5.
游戏设计和编程中的“不是随机的” 。
6.
概率和博弈:Red Blob Games的损害卷 。
7.
在游戏中产生近距离通话:“濒临失败”或“几乎赢了” 。