随机器

来自俄罗斯方块中文维基
(重定向自Randomizer

在俄罗斯方块语境中,随机器Randomizer)是「随机(方块)生成器」(Random (Tetrimino) Generator)一词的简称,特指在游戏中生成方块序列的算法[注 1]

俄罗斯方块游戏的历史悠久、数量繁多,不同游戏使用的随机器各不相同。最早的游戏使用完全的随机,之后逐渐改进和完善。历代方块游戏开发者改进随机器的主要目的是避免玩家长时间无法得到想要的方块(「旱」,Drought)、连续得到相同方块(「涝」,Flood),以提高玩家的游戏体验。

在各类随机器发展近20年后,随着俄罗斯方块准则的出现,官方游戏开始统一固定使用 7-Bag 包随机器,持续已超过20年。受其影响,大多数非官方游戏也采用这一随机器。但是,仍然有很多非官方游戏在探索和发明新的随机器,或者允许玩家从不同随机器中自行选择。

分类

方块游戏使用的随机器大致可以分为以下几类。

完全随机

以俄罗斯方块的发明者阿列克谢·帕基特诺夫于1985年开发的史上第一款俄罗斯方块 Tetris (Electronika 60) 为代表,最早一代的俄罗斯方块游戏多采用完全随机。理论上,使用完全随机的游戏在每一次出块时,每种方块都有1/7的概率被选中。

然而,这些随机算法在事实上是伪随机的。在某些情况下,使用「种子」(Seed)的伪随机算法会被玩家破解,例如世嘉随机器著名的 Power-on Pattern

而且,即使不考虑伪随机与否,这种随机对旱、涝情况毫无预防,严重影响玩家的游戏体验。因此,在最初几年之后,完全随机就不再被方块游戏采用。

现在,一些较为简单的、甚至仅仅是作为编程练习的自制方块游戏也大多采用完全随机。不过,这些游戏往往不会被玩家社区认真对待和广泛游玩。

考虑历史

考虑历史的随机器(History Randomizer)是俄罗斯方块诞生数年之后,较早的游戏为改善旱涝情况而提出的算法。

这类随机器涉及两个关键概念:

  • 历史块序History):已经被确定的方块序列[注 2]。块序长度作为参数由设计者决定。
  • 随机次数Roll):对待定方块进行随机选取的次数[注 3]。最大次数作为参数由设计者决定。

每当要决定一个新的方块时,随机器会考虑一定长度的历史块序,然后随机选取某种方块;若得到不同方块就确定为输出,若重复就再次随机;但随机次数存在最大值,若前几次全部重复,则最后一次无论是否重复都确定为输出。

这两个概念通常用首字母简称为 H & R,结合参数作为玩家社区对特定随机器的特征命名,如「1H2R」、「4H6R」等。

最早的 H & R 随机器是任天堂随机器,略微改善了涝的情况,但旱仍然较为显著。之后的 TGM 随机器在此基础上进一步优化,随着参数不断提高,涝、旱的情况都很大程度得到改善。

包随机

包随机器(Bag Randomizer)是进入21世纪后出现的新算法,最早由俄罗斯方块版权的持有者 Blue Planet Software 提出。

这类随机器以「」(Bag)为核心,因此得名。其基本思路是,公平地选取一定数量的方块组成一「包」,每次生成一包方块,随机洗牌打乱其顺序,然后将整包方块依次发送给玩家。每一包发完之后的方块序列同样是按包生成洗牌发出,如此重复。

最早的标准版本是 7-Bag,一包由七个不同的方块组成。这个版本也被写入俄罗斯方块准则,被21世纪00年代以来几乎所有的官方游戏采用;由于官方游戏的影响,10年代以来的大多数非官方游戏也都采用了该版本。

包随机器还有很多其他的可能。有多种不同的组成一包的方法,例如「7*n-Bag」、「7+n-Bag」等;也有针对 7-Bag 的微调版本,例如 TETR.IO 中出现的「7+X-Bag」。不过,它们的基本思路都相同,只是具体参数不同。详见包随机器的单独条目。

7-Bag 包随机器完全解决了旱、涝情况:同种方块每包只会出现一次,期待的方块出现间隔最大仅为12。其确定性也让历代玩家开发出了大量的堆叠模式(Pattern)乃至定式(Template 与 Opener),使用相对固定乃至完全固定的方块摆放来达成特定效果。这些内容是现代俄罗斯方块玩家社区的珍贵成果和重要组成部分,而它们的搭建方法和成功率计算都基于 7-Bag 随机器规则,目前几乎没有其他随机器规则下的定式研究。

不过,同样因为其「过度」的确定性,7-Bag 包随机器也被一些玩家和开发者批评。开发者们也因此探索了其他的「包」甚至其他的随机器,以重新增强不确定性与游戏乐趣。

其他

除了以上几类主要的随机器(以及它们的衍生、结合版本)外,也有个别游戏采用独特的随机器。

Cultris II 的随机器采用动态权重系统:

  • 每局游戏开始时,七种方块的权重都是 0。
  • 每当要决定一个新的方块时,七种方块的权重都先减半、再各自增加 [0,1] 范围内的随机数值。
  • 然后,随机器选取当前权重最大的方块,并在之后将其权重除以 3.5。然后重复上述步骤。

实践表明,C2 随机器拥有很大的不确定性。它一定程度防止了涝,但旱的情况相当严重,玩家难以预测将会得到的方块。这种不确定性迫使玩家经常需要妥协连击,使高阶连击变得更困难、更有价值。在准则时代,这样重新引入的不确定性被部分爱好者所推崇,玩家认为 C2 的连击策略有很大的深度。

历史

1985:方块诞生与完全随机

1985年,俄罗斯方块的发明者阿列克谢·帕基特诺夫开发出了史上第一款俄罗斯方块 Tetris (Electronika 60)

如前所述,这款最早的俄罗斯方块采用完全随机(事实上的伪随机),每种方块都以1/7的概率可能被选中。之后的移植版也同样使用完全随机。

1988:种子随机与固定序列

1988年,世嘉发布了自己的街机俄罗斯方块游戏 Tetris (Sega)。1989年,世嘉又发布了续作 Flash PointBloxeed,组成世嘉的「街机三部曲」。

世嘉三部曲使用世嘉随机器,通过「种子」(Seed)迭代生成序列。结果,玩家发现了游戏存在的 Power-on Pattern,系统开关机后会使用默认种子生成相同序列。

与最初的俄罗斯方块相比,世嘉随机器的算法并没有什么改进。

1989-2000:考虑历史的 H & R 随机器

1989年,任天堂先后发布了 Tetris (NES, Nintendo)Tetris (Game Boy)

这两部游戏使用的任天堂随机器首次提出了历史块序与随机次数的概念,通过重复则重抽来改善旱涝情况。不过,由于较为保守的参数选择,Tetris (NES, Nintendo) 的干旱情况仍然较为严重,而算法的bug让 Tetris (Game Boy) 中不同方块的连续出现概率不同。

但无论如何,作为全新的算法,H & R 随机器对俄罗斯方块的随机器发展有重要影响。

1998年,Arika 发布了俄罗斯方块特级大师系列的首部作品俄罗斯方块特级大师;2000年又发布了续作俄罗斯方块绝对特级大师2

该系列使用的 TGM 随机器沿用了任天堂随机器的 H & R 设计,并通过提高参数而显著改善了旱涝情况。游戏还引入了一些人性化设定,例如开局第一块不会是 O、S、Z 块。

随着参数提高,H & R 随机器较好地做到了随机性与确定性的平衡,已经非常接近现代方块。

2001至今:包随机器与俄罗斯方块准则

2001年,俄罗斯方块版权的持有者 Blue Planet Software 提出了 7-Bag 的包随机器的算法,并将其写入俄罗斯方块准则。2001年发布的 Tetris Worlds 是第一款采用准则的游戏,也是 7-Bag 包随机器的第一次应用。

7-Bag 包随机器是又一个全新的算法。它完全解决了旱、涝情况,使各种方块的数量完全公平,并且在之后催生了大量重要的研究成果。

同时,包随机器和准则中的其他功能(例如暂存)一起开启了现代方块的时代,因此具有划时代的影响力,准则时代几乎所有的官方游戏与大多数非官方游戏都采用了 7-Bag 包随机器。

2002-2007:官方的改变尝试与妥协

然而,由于其「过度」的确定性,7-Bag 包随机器也被一些玩家和开发者批评。为了重新增强不确定性与游戏乐趣,官方也曾进行过改变的尝试。

2002年的 Tetris (WonderSwan Color) 与2003年的 N-Blox 都尝试采用了 8-Bag 包随机器:每包增加一个随机的方块参与打乱。然而,尽管这两款单机游戏上的 8-Bag 被玩家接受,但2007年的对战方块 Tetris Online 采用 8-Bag 的测试就得到了玩家负面的评价,以至于放弃了这一想法回归 7-Bag。自此以后,官方就不再尝试改变,至今所有的官方游戏都采用标准的 7-Bag 包随机器。

此外,在这期间的2005年,俄罗斯方块特级大师系列的第三部作品俄罗斯方块特级大师3:恐怖本能发布。出于延续系列传统与遵守官方准则的双重需要,经过 Arika 与 BPS 的协商,开发者发明了结合 H & R 随机器与包随机器的新版本。该随机器拥有独特的「池」机制,被称为 4H6R 35P,从「池」中使用 H & R 随机器抽取方块。实践表明,该随机器很接近前作的出色表现,甚至进一步改善了旱的情况,玩家体验良好,并且这一折中也被官方接受。不过,这个独特的折中随机器也仅在 TGM3 一部作品上被采用。

2010至今:非官方游戏的探索

随着 TOJ 的探索受挫,官方不再尝试进行改变,这之后的所有官方俄罗斯方块游戏都严格使用准则规定的 7-Bag 包随机器,直到现在。受其影响,10年代以来的大多数非官方方块游戏也都采用了 7-Bag 包随机器。但是,一些非官方游戏仍然在探索新的随机器规则。

非官方游戏的新随机器大多是包随机器的变种,例如 14-Bag、21-Bag,或者 8-Bag、9-Bag 等。2011年的 NullpoMino 中就出现了长度为 1、2 或 9 的特殊包。2024年,TETR.IO 还专门为了限制开局定式的强势而推出了只有前四包不同、后续回归正常 7-Bag 的 7+X-Bag。但除此之外,也有个别游戏开发了全新的随机器,例如2011年的 Cultris II 就采用动态权重系统,在分类章节中已经介绍。

还有一些游戏「返璞归真」,在个别模式中为增强难度而回归了完全随机的随机器,例如 JstrisTechmino 的 MPH 模式(Memoryless、Previewless、Holdless)通过完全随机加上无预览、无暂存来增强难度。更有一些游戏为了增强难度而故意设计「针对玩家」的随机器,例如 Techmino 中的干旱模式会故意去除 I 块,以及著名的敌对方块会根据玩家当前地形,故意给玩家发送算法认为的最不利的方块,等等。

参见

注释

  1. 游戏的其他机制可能也需要用到随机,例如垃圾行的开口位置。但是因为影响相对较小、算法相对简单等,通常较少被讨论,也不会被简称为不带说明的「随机器」一词。
  2. 在俄罗斯方块的随机器中,「历史」的概念指代所有「已被确定的方块序列」,而不是狭义的「已经出现过的方块序列」。
    根据游戏开发者的需要,这个概念可能包括当前块、已经确定顺序但尚未入场的预览块、甚至完全没有出现过的被强行定义的块。
  3. 也有人认为是「重抽次数」(Reroll),则显然总是比随机次数少一次。本条目采用随机次数作为参数。

参考