見出し画像

コラム:テトリスの進化論━━快適な乱数とは何か?

文・xcloche

棒が来ないので負けました。

テトリスでゲームオーバーになったときの言い訳ナンバーワン。棒がくればもっと続けられたのに。棒、ほしいときに来なさすぎじゃない?

テトリスは1984年にソビエト連邦で生まれた、誰もが知る元祖落ちものパズルゲームである。「最も多くのプラットフォームに移植されたビデオゲーム」としてギネス記録にも登録されている。おおよそどんなゲーム機でもテトリスができる。古くてめちゃくちゃ移植されているだけあって、1984年から今にかけてテトリスは静かに進化してきた。あんなゲームの何が進化できるのか? そう、棒が来るようになったのだ。

対戦のテトリス、ぷよぷよテトリス、バイオセンサーを取り付けて心拍に応じて変なピースが落ちてくるテトリス……テトリスの派生メカニズムは数知れずあるが、今回はそこには寄り道しない。これから語るのは、おなじみのあのテトリスの「ピースが落ちる順番」、ただそれだけについての話である。

テトリスと人間乱数

正方形4つを辺に沿って繋げた7種類のテトリスのピースはテトリミノと呼ばれる。数学的には「テトロミノ」が正しいが、テトリスのピースなので「テトリミノ」で商標登録されている。7種のテトリミノにはそれぞれ名前がついている。S, Z, L, J, T, O, I。なんとなく形との対応がわかる。

さて、最初期のテトリスでは7種類のテトリミノが完全に一様かつ独立に抽選されていた。1/7抽選の機械的な繰り返しだ。O(四角)が出た。次は何が出るだろう? 1/7の抽選をする。またOが出た。次も1/7の抽選をする。今度はLが出た……というのが、最初期のテトリスのアルゴリズムだ。

しかし、このテトリスをプレイするとき、確率分布が完全に独立で均等であるにもかかわらず、人間が感じるのは大きな確率の偏りだ。人間が考える自然な乱数(人間乱数と呼ばれる)は真の乱数とズレている。棒(I型)がぜんぜん来ていないから、そろそろ来るはずだ━━はギャンブラーの誤謬と呼ばれる典型的な確率の誤謬で、今まで棒が来なかったことと、次の抽選の結果には関係ないのだが、人間は完全に独立なテトリミノ抽選の配列を逆に不自然に感じてしまうバグをもっている。「こんなに四角が連続するのに棒は全然来ないなんて、絶対おかしいよ!」

では、どういう乱数がいいのか?

テトリスの進化は、言ってしまえば「一番気持ちいいゲームを演出するテトリミノの確率分布を作る」問題だ。プレイヤーが「待ってても棒がこないのは不快だ」と思うなら、待っていたら棒が来るようにすればよいのである。

「一番気持ちいい乱数」とは、具体的にどういう条件を満たすことだろうか? テトリスマニアのSimon Larocheは、テトリスのランダマイザ(乱数アルゴリズム)の良さを評価するにあたり、三つの指標を提案している。

  • Puzzle factor(パズル要素)

  • Flood Prevention(フラッド防止性)

  • Drought Prevention(干ばつ防止性)

Puzzle Factorは「パズルとして面白いか」だ。毎回同じ展開になる落ちものゲームは面白いとは言えない。これはおおよそ「ピースの予測可能性」とも言い換えられそうだ。

Flood Preventionは「同じピースばかり出るのを防止する機構はあるか」で、Drought Preventionは逆に「特定のピースがずっと来ないのを防止する機構はあるか」である。これらは快適さの指標であると同時に、時にテトリス大会における「ドラマ」を演出するピースとして機能することもあるようだ。

↑テトリス(NES)の大会で、50回以上棒が来ない様子の動画。

テトリスのランダマイザは、いかにパズルとしての面白さを維持したまま、これらのFloodやDroughtなどの「人間が感じてしまう自然な乱数の "不自然" さ」を解消するかという試みと整理できそうだ。

テトリスの進化史

原始のテトリスは、それぞれのテトリミノを毎回1/7の確率で抽選するというただそれだけのものだった。

画像
テトリスの進化史。完全ランダムにはじまり、Bag系の左ルートと、History&Reroll系の右ルート、そのハイブリッドとしてのTGM3がある

テトリスのランダマイザの進化の歴史を年表にまとめたのが上図である。

テトリスのランダマイザは大きく二つの系譜に分類できる。ひとつがアーケードゲームであるTGM(Tetris: The Grand Master)シリーズの多くが採用しているHistory&Reroll式、もうひとつが「テトリス公式ガイドライン」に採用されている、7-bag方式の系統である。それぞれが何をしているか見てみよう。

History&Reroll方式

1984年に発表されたテトリスの純粋ランダムなアルゴリズムに人為的な手が加えられた最初期のケースが、1989年のNES版である。NES版では1-History/1-Rerollのメカニズムが導入された。これは「とりあえず1/7で抽選してみて、前のテトリミノと同じものが出た場合再抽選する」という方式である。1-Historyは1つ前の履歴だけを見るということで、1-Rerollというのは再抽選は一度きりで、そこで同じものがでた場合はそのまま通すという意味だ。
この方式は同じピースの連続を極端に避け(本来1/7の確率である連続確率が1/49になる)、干ばつをほんの少しだけ緩和する。

時代をくだると参照する履歴の長さとリロールの回数は増え、1998年のTGM(Tetris: The Grand Master)では4-History/4-Reroll(4つ前の履歴までを参照し、抽選した次のテトリミノが履歴とかぶっていた場合は再抽選する方式)が、2000年のTGM2では4-History/6-Rerollが採用されている。履歴の長さはテトリミノがバラけてほしい時間窓の大きさを、リロールの回数はその時間窓でのテトリミノのバラけやすさを制御するとみなせるので、TGM1から2にかけては、「4つ前までに出たものは5つめで選出すべきではない」度合いが強くなったと言える。

細かいところでは、TGMでは初手にはS/Z/Oのピースが来ない制約が設けられた。このように、この初手補正は後に続くTGMのシリーズでも採用されており、TGMには確率分布を変形させることで快適なプレイングを提供しようという一貫した思想が見てとれる。

Bag方式

もう一つの方式がBag方式である。1999年に発売されたNintendo64版テトリスで採用された乱数アルゴリズムは、7種のテトリミノを各9個ずつ入れてシャッフルした配列(63-bag)を事前に準備しておき、そこから順番にテトリミノを取り出していく方式をとっていた。63個の単位でみればテトリミノの選出確率が完全に均質であることが保証される、というわけだ。この方式は極端な干ばつを避ける効果が期待できる……が、棒がバッグの後ろのほうに詰まることもあるわけで、63という周期での干ばつ防止効果は少々悠長だったようである。

そこで登場したのが、2001年のTetris Worldsで採用された7-bag方式である。7種類のテトリミノを一つずつ入れた袋から一つずつ取り出し、なくなったら次の袋を作るこのシンプルなアルゴリズムは、かなり強いフラッド/干ばつ耐性をもつ。ピースが連続する可能性があるのはbagの切れ目だけなので1/49(1-History/1-Rerollと同じ)だ。棒は最長でも13回待てば必ず来る。「ひとつ目の7-bagの最初と、次の7-bagの最後」の間隔が13回だからである。平均的な棒の間隔は7で、7-bag法の元では、かなり定期的に棒が来るのである。

画像
テトリス99(マラソンモード)の開始時点のスクリーンショット。
7-bag法では初手の七個にに同じテトリミノが来ることは絶対にない

テトリスは創業者陣が設立した The Tetris Company(TTC)が商標と設計基準を管理し、正式ライセンスを受けて販売される。『Tetris Worlds』開発期には、各種ルールや挙動を定める「テトリス公式ガイドライン」の整備が並行して進み、7-bag を含む設計が公式標準として明文化されていった。以後の多くのテトリスはこの指針を土台に作られ、ランダマイザに限らず、操作体系や表示仕様のかなりの部分も共通化されることとなった。

7-bag方式はその特性上、bagの中に残ったテトリミノが減るにつれて「どのテトリミノがくるか」の予測可能性がどんどん上昇し、7の倍数番目に至ってはそれまでの履歴から完全に確定する。そのため「7-bag系のアルゴリズムは予測可能性が高くてつまらない」というテトリスマニアもいるようである。なお、この高い予測可能性を利用すれば、袋内の7個のテトリミノがどんな順番で来ても同じ形に積める手続きが存在し、それを繰り返し使えば永久にテトリスをプレイできることが証明されている。

画像
7-bag法の特性を利用したキモすぎる積み方(Playing Forever)

また、こうした確定的な性質をもつテトリミノ配列は、競技としてのテトリスの「定石」の成立にも寄与しているようだ。

ハイブリッド式・対ブロック補正

テトリスガイドラインはほぼ毎年更新されているが、7-bagを含む大まかな部分に大きな変更はないようだ。TTCは7-bagの「クラシックなテトリス」さえ収録していれば別のランダマイザのモードを作ること自体は許容しているようで、TGM3でメインで用いられたランダマイザ(35-pool)は、Bag方式とHistory/Reroll方式のハイブリッドとも言える意欲的なものであった。

35-pool方式では、まず7種のテトリミノが5個ずつ入った袋を用意する。ここまではBag方式と同じである。違うのは、袋からドローするときに4-History/6-Rerollを実行することと、袋からドローした際、「そのとき最も干ばつしているテトリミノ(一番長く出ていないミノ)を袋に入れなおす、という点である。棒が出ていなければ袋に棒が追加され、それによって次に棒が出る確率が1/35だけ高くなる。袋のサイズの周期でテトリミノが完全確定してしまうというBag方式の課題を解決しつつ、「しばらく出ていないもの」を袋に入れることでそれが出る確率を緩やかに上昇させるこのアイデアは、パズル性をあまり損ねずにフラッド/干ばつを防ぐ折衷案として面白い。

2025年のTGM4で採用されたアルゴリズムは、ゲーム内でIRM (Initialize Random Mino)と呼ばれており、4-History系であることは明かされているものの、リロールの回数や35-poolのような抽出のメカニズムを使っているかは不明である(ファンの証言では「前作に近い」フィールのようだ)。テトリスのファンコミュニティによると「対の存在であるL・JミノとS・Zミノは片方が先に出ているときにもう片方が出やすくなる」という補正を新たに追加しているらしい。最近のテトリスは、Sブロックを塔のように積み上げ続ける不快から解放されやすい? のかもしれない。確率的に順序が決まりやすいことは定石にも影響を及ぼす可能性もある。

HATETRIS

テトリス公式ではないが、2010年にSam Hughesが作った『HATETRIS』のランダマイザ(正確にはランダマイザではないのだが)は上で紹介したどの系譜にも属さない。HATETRISは「今一番きてほしくないブロックが来る」というテトリスのジョークの変種である。具体的には、プレイヤーが最善手で置いたときに到達し得る全盤面を評価し、その最良結果がいちばん悪くなるテトリミノを次に出す(ミニマックス法)という方式をとる。

画像
尋常な積み方では1行消すこともままならない終わりのゲーム、HATETRIS。
ここに新しいアイデアの種がある……かもしれない

Bag方式もHistory&Reroll方式も履歴を見るが、Hatetrisが見ているのは盤面である。今後テトリスのランダマイザがどうなっていくかはわからないが、もしかすると「ランダマイザが盤面も参照する」というアイデアは、テトリスの新しいパラダイムを作るかもしれない。

ランダマイザを可視化する

ここまで、テトリスのランダマイザの進化史を概説した。

では、実際、それぞれのアルゴリズムはどの程度予測可能で、フラッド・干ばつを起こしにくいのだろうか? ランダマイザの性質を可視化してみよう。

画像
同じテトリミノがくるまでの間隔の確率

あるテトリミノがでたとき、次に同じテトリミノが出るまでの長さがどうなるかの確率を可視化したのが上のグラフである。間隔1が最大確率でだんだんと減少するオリジナルの分布に比べ、改良版ではどれも「少し間隔をおいてから同じものが来る」性質を持っているのがわかる。また、History/Reroll系はHistoryを見ている範囲4で同じテトリミノが再び出る確率が相当に抑えられているのも確認できる。異彩を放っているのが7-bagで、間隔7を頂点に綺麗な対称形の間隔分布を持っている。TGM3の35-poolの歪んだ分布の形がTGM2より7-bagに近く、ギャップが大きくなった時の確率がかなり抑えられている(干ばつが起きにくく、棒が来る!)のも注目ポイントだ。TGM4の不明アルゴリズムも、こうした頻度分布を描いてみれば正体を明らかにできるかもしれない。

この「あるテトリミノが出てから同じテトリミノが出るまでの長さの確率分布」の特性は、RPGにおけるエンカウント間隔のゲームデザインによく似ている。戦闘が終わって次の戦闘がはじまるまでのインターバルの分布は、つねに一定確率で敵とエンカウントする場合、「すぐ次の戦闘がはじまる」ときにピークになる(上のオリジナル版テトリスの間隔分布を見よ)。しかし「すぐに次の戦闘がはじまる」のは "不自然" だし、快適でない。というわけで、いにしえのRPGでは無慈悲に定率エンカウントが課されていたのが、「ある程度歩数がたまるまではエンカウントしない」「歩数がたまるごとにエンカウント率が上がっていく」といったメカニズムに代替されていったわけである。一定歩数(4-History)の間は、敵(同じテトリミノ)が出ることはない。乱数の "不自然さ" に対応するように、まったく別のゲームメカニズムが同じ形式をとるのは興味深い現象だ。

フラッド/干ばつについては上のグラフでなんとなくわかるが、予測可能性についてはどうだろうか? 確率分布の予測可能性はエントロピーという量で定量評価できるはず……と思って評価すると、オリジナルが最も予測不能(2.8bit)で、4-History参照のTGM2/3系が最も予測しやすい(1.53~1.74bit)という結果になった。これは「直近4履歴で出たものは次はほぼ出ない」という情報によって、「履歴にないやつのどれかが出そう」という予想をたてられることに由来する。ややこしいのが7-bag(平均では1.76bit)で、この手法ははじめの一手こそオリジナルと同じ予測不能性をもつが、袋が空になる7の倍数番目に近づくにしたがってエントロピーが減少し、7の倍数に至っては0になる(完全予測可能な状態)。平均でみればHistory参照系のほうが予測可能性が高いものの、7-bagは決定的に振る舞う瞬間があることのゲーム的な作用も考えると、それこそ手続的な永久積みの戦略を可能にしているのもこれなわけで、どういう分布がいいかの議論はなかなか難しい。

ご機嫌取りの確率論

以上、テトリスのランダマイザの歴史とその定量評価を通して、乱数の心地よさを具体的にどう実装するかについて考察した。この一見改善の余地のないミニマルなゲームのランダマイザが、これだけ広いデザイン空間を持っていることに驚嘆する。BRAVO!

(9/19、TGM4の対補正のプレイング応用についての記述を修正しました)

執筆者について

xcloche
構造やメディアの話が好きで、一日中しています。
ブログ: セミになっちゃた
note: xcloche
X: かもリバー

お知らせ

「遊星歯車機関」は、実験的な試みのあるゲームをガイド/批評する同人誌企画です。メカニクスやUI、シナリオ分岐、乱数、報酬設計など、ゲーム特有の仕組みによって広がる物語の可能性に着目します。いずれ本稿群を『遊星 物語るゲームたち(仮)』として編み直し、一冊にまとめる予定です。寄稿をご希望の方はご相談ください。詳細は続報にて。


いいなと思ったら応援しよう!

ピックアップされています

#ゲーム 記事まとめ

  • 1,200本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
買うたび 抽選 ※条件・上限あり \note クリエイター感謝祭ポイントバックキャンペーン/最大全額もどってくる! 12.1 月〜1.14 水 まで
コラム:テトリスの進化論━━快適な乱数とは何か?|遊星歯車機関
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1