我想写这个已经有一阵子了。这是一篇“接不接受随你”的帖子,所以没必要当个混蛋。
总之,进入正题。
关于电子游戏中的运气,我看到的文章或视频并不多。
所以我拼凑了这篇关于我的观察和实践的文章。
我们先从运气以及它的含义说起。
从游戏玩法角度来说,运气意味着一种随机性元素,迫使玩家做出有趣的抉择。
大家最熟知的两种主流方法是随机运气和确定性。
以桌游为例,国际象棋是确定性的——所有行动都是预先决定的;而双陆棋则全靠运气。
这并不是要否定随机运气。
其中仍然涉及策略,但归根结底,玩家永远无法预知结果,只能权衡概率。
两者各有其位。
像《艾尔登法环》这样无骰子的RPG,除了某些无关紧要的掉落外,几乎完全是确定性的。
而像《XCOM》这样的游戏则几乎全是随机运气。
《艾尔登法环》聚焦于为玩家设计的挑战。
《XCOM》则关乎在随机运气的混沌中权衡。
但如果我告诉你还有第三种选择呢?
一种你能更直接掌控杠杆、并在两者之间权衡的选择。
这就是确定性运气发挥作用的地方。
你可以拥有运气,但避免玩家持续输或赢的失控局面。
通常运气涉及使用随机数生成器。也就是说,让游戏为每次事件随机生成一个数字。
但还有一种替代方案,你可以保持完全控制,并量度出玩家的起伏。
我要向你介绍——数字数组。
最初的《毁灭战士》完全采用了这种方法,所以我认为这个方法已得到充分验证。
简而言之,与其让程序随机生成数字,不如使用一个打乱顺序的数组,然后循环遍历它们。
这基本上意味着,没有任何单个玩家会获得过度优势,因为他们仍然有相同数量的成功和失败。
《毁灭战士》比较简单,使用了相同的静态数组。
但你也能轻松(且廉价地)在数组到达末尾时重新打乱它。
或者,你可以在每次抽取时交替使用前进1个位置和前进3个位置的序列(到达末尾后循环回去),只要数组长度不被3整除,这样就能获得数组长度四倍的数字量。
而且这极其轻量且快速。
但你还可以加入更多控制杠杆。
你可以使用多个循环数组。
数组越多,结果就越混乱。
一个数组会非常平衡。两个数组是理想点,能有一些波动,但不会失控。三个数组则会非常混乱。我不推荐超过三个,到那个程度你还不如直接用随机数生成器。
除此之外,你还需要考虑数组的长度。数组数量乘以数组长度会放大混乱程度。
不过,这并不意味着我们的讨论到此为止。
你还可以设计一个“欠账”机制。
只要你能记录一次失败,就可以将其累加到一个“欠账”值中。
基本上,每次不幸运的掷骰都会累加一个值。如果某次掷骰加上欠账值后判定为成功,就消耗掉欠账点数。
这是让玩家有机会来一次“痛击敌人要害”的绝佳方法。
或者反过来,当玩家持续幸运地赢得抽签时,这个值会减少。
最后,如果运气是一个明确的数值,那么有无数种方式可以实施它。
它可以静态地提升所有数组的值。
它可以是欠账机制的乘数。
或者它意味着一次重掷。
我不会在这里逐一探讨所有选项,但也许在你的开发过程中可以考虑确定性运气,因为它能让你拥有更多可控的杠杆。
评论 (0)