KEKE STUDIO
  1. ホーム
  2. ブログ
  3. 手続き型生成とは?『ローグ』から『マインクラフト』『ノーマンズスカイ』まで

手続き型生成とは?『ローグ』から『マインクラフト』『ノーマンズスカイ』まで

ゲームのマップやアイテムを人ではなくルールと乱数が作る手続き型生成の仕組みと歴史を、『ローグ』『エリート』『マインクラフト』『ノーマンズスカイ』、波動関数崩壊アルゴリズムでまとめます。

#手続き型生成 #ゲーム開発 #ローグライク #マインクラフト #ノーマンズスカイ #ゲーム技術

マインクラフトで新しいワールドを作るたびに違う山や海が現れ、ローグライクゲームは死ぬたびにダンジョンの形が変わります。この地形やダンジョンは、人が一つひとつ描いたものではありません。開発者が決めたルールと乱数(ランダムな数)が、その場で作り出したものです。このやり方を手続き型生成(プロシージャル生成、Procedural Generation)と呼びます。

この記事では、手続き型生成とは何か、なぜ最初に登場したのか、そして『ローグ』から『ノーマンズスカイ』まで、どんなゲームがこの技術で新しい地平を開いたのかを見ていきます。最後に、手続き型生成の限界とうまく使う方法もまとめます。

手続き型生成の基本的な仕組み

手続き型生成とは、「結果そのものを保存する代わりに、結果を作る方法を保存すること」です。主な材料は3つあります。

  • ルール:部屋は廊下でつながっていなければならない、水は低い所にたまる、といった制約です。
  • 乱数生成器:ルールの中でどの選択をするかを決めるランダムな数を作ります。
  • シード(seed):乱数生成器の出発点となる数です。コンピューターの乱数は実際には決まった計算なので、同じシードを入れればいつも同じ結果になります。

シードのおかげで、手続き型生成は「ランダムなのに再現できる」世界を作れます。マインクラフトのプレイヤーが気に入ったワールドのシード値を共有し合うのもそのためです。

反対にシードを固定せず毎回違う乱数を使えば、同じゲームでも人によってまったく違う展開を体験することになります。この2つを組み合わせ、ふだんはランダムにステージを作り、大会やデイリーチャレンジのように公平な比較が必要なときだけ同じシードを全員に配るゲームもあります。

生成はゲームを実行する瞬間に行うこともあれば、開発段階で前もって行っておくこともあります。前者は遊ぶたびに新しい世界を与えますが結果を一つひとつ確認できず、後者は生成した結果のうち良いものだけを選んで人が仕上げられます。広大なオープンワールドゲームの森や岩の配置のように、プレイヤーの知らないところで開発ツールとして使われる手続き型生成も多くあります。

メモリ不足から始まった技術:『ローグ』と『エリート』

手続き型生成が最初に注目された理由は、派手さではなく節約でした。

1980年ごろにマイケル・トイとグレン・ウィックマンがUnixコンピューター向けに作った『ローグ(Rogue)』は、ダンジョンの階層、モンスター、宝物を毎回新しく作りました。同じ展開が二度と出ないので何度遊んでも新鮮で、このゲームの名前は「ローグライク」というジャンル名になりました。

1984年にデイヴィッド・ブレイベンとイアン・ベルがBBC Micro向けに出した宇宙交易ゲーム『エリート』は、さらに劇的な例です。ゲームには8つの銀河があり、銀河ごとに256の惑星がありましたが、8ビットコンピューターの小さなメモリにその情報をすべて保存することはできませんでした。そこで1つのシード値を決まった計算に繰り返し入れ、惑星の位置や名前、経済をその都度作り出しました。

2004年にドイツのデモグループ .theprodukkt が作ったFPS『.kkrieger』は、この考えを極限まで推し進めました。テクスチャもモデルもすべて生成ルールとして保存し、96KBのサイズ制限がある大会で1位を獲得しました。

地形を作る数学:パーリンノイズ

自然な山や雲を作るには、ただの乱数では足りません。隣とまったく関係のない数を並べても、テレビの砂嵐のような画面になるだけです。

ケン・パーリンは映画『トロン』(1982)の仕事をきっかけに、近い場所どうしでは値がなめらかにつながるノイズを考案しました。1985年の論文で発表されたこの「パーリンノイズ」は、コンピューターグラフィックスで自然な質感を作る基本ツールになり、パーリンは1997年にこの功績でアカデミー科学技術賞を受賞しました。

さまざまな大きさのノイズを重ねると、大きな山脈の上に小さな丘や岩が乗った地形を作れます。マインクラフトをはじめ、数多くのゲームの地形生成がこうしたノイズの手法をもとにしています。

何を生成できるのか

手続き型生成は地形やダンジョンだけに使われるわけではありません。生成する対象によって方法も変わります。

  • 地形とマップ:ノイズで高低差を決め、その上に水・森・砂漠といった環境を分けます。
  • ダンジョンとレベル:部屋と廊下を配置し、スタートから出口まで道がつながっているかを確認します。
  • アイテム:基本の武器にランダムな能力値や接頭辞・接尾辞を付けて、膨大な組み合わせを作ります。
  • 植物と建物:生物学者アリステッド・リンデンマイヤーが1968年に考案したL-システムのように、単純な文字置き換えのルールを繰り返して枝分かれの形を作る手法もあります。
  • 歴史と物語:2006年にターン・アダムスとザック・アダムスの兄弟が公開した『ドワーフ・フォートレス』は、世界を作るときに数百年にわたる文明や戦争、人物の歴史まで一緒に生成します。

物語まで生成するゲームでは、開発者も結果を前もって知ることができません。プレイヤーが体験した出来事がその人だけの物語になるという点は、手続き型生成の最大の魅力でもあります。

もう一度遊ぶ理由を作る生成:『ディアブロ』とローグライト

手続き型生成はやがて「もう一度遊ばせる仕掛け」として使われるようになりました。

ゲーム年何を生成するか
ディアブロ1996ダンジョンの構造とアイテム
スペランキー2008洞窟の構造(あらかじめ作った部屋のパーツを組み合わせる)
ボーダーランズ2009銃の性能とパーツ
マインクラフト2009(初公開)地形全体と洞窟、鉱石

デレク・ユーの『スペランキー』は良いお手本です。完全なランダムではなく、人があらかじめ設計した部屋のパーツをルールに従ってつなげ、必ずゴールまで行ける道を保証しました。手作りの品質と生成の多様性を両立させるこのやり方は、のちに『ハデス』のようなローグライトゲームでも広く使われる基本になりました。

1,800京個の惑星:『ノーマンズスカイ』

2016年のハローゲームズ『ノーマンズスカイ』は、『エリート』の発想を現代の技術で大きく育てたゲームです。64ビットのシード1つから決定論的なアルゴリズムで宇宙全体を作り、惑星の数は1,800京(1.8×10¹⁹)個を超えます。惑星ごとに地形や天気、植物や動物が別々に作られます。

このゲームは、手続き型生成の可能性と限界の両方を示しました。発売当初は、惑星の見た目は違ってもやることが似ていると批判されましたが、その後の長いアップデートで基地建設やマルチプレイのような人の手が入ったコンテンツを加え、評価を大きく引き上げました。「果てしなく多いこと」と「果てしなく面白いこと」は違う、という教訓です。

波動関数崩壊:例からルールを学ぶ

2016年にマキシム・グミンが公開した「波動関数崩壊(Wave Function Collapse、WFC)」アルゴリズムは新しい流れを作りました。小さな見本画像やタイルの組を与えると、その中でどのパーツがどのパーツの隣に来られるかというルールを取り出し、似た雰囲気の大きな結果を作り出します。

このアルゴリズムは、バイキングの襲撃を防ぐ戦略ゲーム『バッドノース』の島の生成、街を積み上げていくおもちゃのようなゲーム『タウンスケーパー』、ローグライク『ケイブス・オブ・クッド』のレベル生成に使われました。開発者がルールを一つひとつコードに書かなくても、求める雰囲気の見本だけで生成結果を調整できるのが長所です。

手続き型生成をうまく使うには

手続き型生成は万能ではありません。使い方を誤ると、「どこへ行っても同じような」退屈な世界になります。成功したゲームにはいくつかの共通点があります。

  1. 人が作ったパーツと混ぜる:スペランキーのように、設計されたパーツを生成ルールで組み合わせると品質が安定します。
  2. 必ずクリアできるか確かめる:生成したマップに出口までの道があるかをプログラムで確認します。
  3. 意味のある違いを作る:色だけが違う惑星より、遊び方が変わる違いのほうが記憶に残ります。
  4. シードを活用する:同じシードを共有して全員が同じマップで競う「デイリーチャレンジ」は、多くのローグライクやパズルゲームが使っている方法です。

小さなチームほど、手続き型生成の魅力は大きくなります。人が何百ものレベルを手で作るのが難しいなら、良いルールひとつが果てしなく新しいステージを作ってくれるからです。ただし、そのルールを磨き上げるには、手で作るのに劣らない時間とテストが必要です。

参考資料

あわせて読みたい