WEBVTT 00:00:01.750 --> 00:00:04.910 Game Maker's Toolkitへようこそ 僕はマーク・ブラウン 00:00:04.910 --> 00:00:10.250 僕が他のどれよりも多くプレイしたゲーム それはSpelunkyだ 00:00:10.250 --> 00:00:16.020 高難度のアクションゲームで、マリオやドラキュラなど 横スクロールの面白さを受け継いでいる 00:00:16.020 --> 00:00:22.380 だが、死ぬたびにマップを変化させることで ステージ構成や敵配置を覚える要素を排除している 00:00:22.620 --> 00:00:27.660 しかしSpelunkyを特別な作品にしているのは ステージがランダムにつなぎ合わされているのに 00:00:27.660 --> 00:00:32.780 常に公正で楽しめる作りになることだ 僕は1000回もプレイしたが 00:00:32.780 --> 00:00:35.460 1度もひどいステージには遭遇しなかった 00:00:35.460 --> 00:00:40.230 とてもアルゴリズムによって作られたとは思えない アルゴリズムでステージを作るゲームには 00:00:40.230 --> 00:00:46.070 行き止まりだらけの雑なステージも多い Spelunkyの自動生成されたステージは 00:00:46.070 --> 00:00:52.080 下手な手作りのステージよりも完成度が高い 00:00:52.080 --> 00:00:59.840 それは開発者のデレク・ユーがランダム要素と 手作りの要素を絶妙なバランスで調整しているからだ 00:00:59.880 --> 00:01:04.989 彼はその方法をSpelunkyという題名の 本の中で説明している 00:01:04.989 --> 00:01:10.299 デザインに興味がある人はぜひ手に取ってほしい だが君が配達を待っている間に 00:01:10.299 --> 00:01:16.659 僕は本に書いてある情報を引いて、Spelunkyの面は ランダムとデザインが半分ずつという説明をしよう 00:01:16.660 --> 00:01:21.760 その上で、この作品にとってユニークな面構成が 非常に大事な理由を考えてみよう 00:01:21.760 --> 00:01:26.520 しかしまずは、全てが始まった地点に戻る必要がある というのも、皆はSpelunkyを 00:01:26.520 --> 00:01:31.820 こういう見た目だと思っているだろうが 実は当初、これはフリーのドット絵ゲームだったのだ 00:01:31.820 --> 00:01:34.160 これは現在Spelunky Classicと呼ばれている 00:01:36.840 --> 00:01:42.760 Spelunkyの面はどれも、同じ基本的な形状と サイズから開始するスクリプトで生成される 00:01:42.760 --> 00:01:46.290 箱型4×4マスで16部屋だ 00:01:46.290 --> 00:01:51.580 このスクリプトが最初にやるのは、最上段から ランダムに部屋を1つ選択し、入り口にすることだ 00:01:51.800 --> 00:01:57.720 それから部屋の方向をランダムに左か右 あるいは下に設定する 00:01:57.720 --> 00:02:01.990 このプロセスは部屋ごとに繰り返される 道がステージの端に到達すれば下に向かう 00:02:01.990 --> 00:02:06.000 最下段に行きつくまでこれが続き そこからさらに下へ向かった場合 00:02:06.000 --> 00:02:07.619 そこが出口となる 00:02:07.619 --> 00:02:11.150 このメインルートの部屋は全て、左右に通じている 00:02:11.150 --> 00:02:17.000 これに加えて、下に向かう部屋は底の部分に出口がある 降りた先の部屋は上から出られるわけだ 00:02:17.000 --> 00:02:21.030 その結果、ロープや爆弾を使わなくても 00:02:21.030 --> 00:02:26.340 確実に通行可能な面が生成される 他の部屋はメインルート上にはないので 00:02:26.340 --> 00:02:30.160 通じていることもあれば、形状次第で 塞がれていることもある 00:02:30.160 --> 00:02:36.870 次に全ての部屋はランダムなテンプレートを与えられる デレク・ユーは一部の部屋のデザインを手作りし 00:02:36.870 --> 00:02:41.459 部屋の種類ごとに異なるレイアウトを用意している 下に向かう部屋、降りた先の部屋 00:02:41.459 --> 00:02:44.650 通路や進行に関係のない部屋などだ 00:02:44.650 --> 00:02:49.230 だがテンプレートは完全固定ではなく 部分的にランダム生成される 00:02:49.230 --> 00:02:54.650 場合によっては全てのタイルがランダムで配置される 00:02:54.650 --> 00:02:59.099 このため似たような配列は出てくるが 常に少しだけ違っている 00:02:59.099 --> 00:03:03.909 スクリプトは次にマップ上の全タイルをチェックして ダイスロールを行う 00:03:03.909 --> 00:03:09.190 モンスターや財宝、他のオブジェクトの配置を 決めるためだが、これも完全ランダムではない 00:03:09.190 --> 00:03:14.349 宝石や木箱は壁に囲まれた空間に出現する 可能性が高いし、敵は通常、狭い空間には出ない 00:03:14.349 --> 00:03:19.409 そして全ての物には重さがある だから爆弾ガエルやジェットパック入りの木箱で 00:03:19.409 --> 00:03:22.580 ステージ全体が埋まるようなことはない 00:03:22.580 --> 00:03:27.700 デレク・ユーは自分の面生成アルゴリズムについて こう述べている 00:03:27.700 --> 00:03:32.659 「このシステムが生成する洞窟はあまり自然に見えない プレイヤーは地形が一部使い回されていることに」 00:03:32.659 --> 00:03:37.180 「すぐに気づくし、面がグリッド単位で生成されている こともわかるかもしれない」 00:03:37.180 --> 00:03:42.409 「だがテンプレートとランダム変化の量が十分なら かなりの多様性を得られる」 00:03:42.409 --> 00:03:47.040 「それ以上に大事なのは、面白くかつ 進行不可能にならない面を作れることだ」 00:03:47.040 --> 00:03:51.879 「没入できる体験を演出するためには、リアリズムより こちらの方が遥かに意義がある」 00:03:51.879 --> 00:03:57.010 Spelunkyの面にはもちろん、他の要素もある メインルートから外れた部屋には 00:03:57.010 --> 00:04:01.830 大岩のトラップを誘発する金の偶像や 死体を捧げて有用なアイテムを入手できる 00:04:01.830 --> 00:04:03.830 祭壇が配置されている可能性がある 00:04:03.830 --> 00:04:09.330 部屋はアイテムを買ったり盗んだりできる 店になる可能性もある 00:04:09.330 --> 00:04:13.640 「欲しいアイテムを全て買うと得点が減るので…」 (最終的な得点は入手した財宝で決まる) 00:04:13.640 --> 00:04:18.410 「…店でアイテムを盗む誘惑が強くなっている」 と、ユーは述べている 00:04:18.410 --> 00:04:22.660 アイテムを盗むと、店主はショットガンで 攻撃してくるだけでなく 00:04:22.660 --> 00:04:26.720 そのプレイ中は全ての面の最後に出現して 00:04:26.720 --> 00:04:29.430 予測しづらい攻撃を仕掛けてくる 00:04:29.430 --> 00:04:35.160 また、全ての面には美女が存在しており 体力を1つ増やしてくれる 00:04:35.160 --> 00:04:39.800 他のゲームにおける体力回復アイテムは キノコでも肉でもピザでも即座に効果を発揮するが 00:04:39.800 --> 00:04:44.860 Spelunkyでは美女を出口まで運ぶ必要がある 00:04:44.860 --> 00:04:48.750 予測のつかない迷路で、時には複数のアイテムを 担いでいかなければならない 00:04:48.750 --> 00:04:52.880 最後に、ゴーストの存在だ 同じ面に長時間居座ると幽霊が出現し 00:04:52.880 --> 00:04:55.590 触れると即死する 00:04:55.590 --> 00:05:02.020 これらの追加要素は全て厳密にデザインされたものだが ランダム生成されたゲーム世界に散りばめられており 00:05:02.020 --> 00:05:05.400 選択肢の比較考量を可能にしている 00:05:05.400 --> 00:05:09.680 ユーは「(プレイヤーに)難しい決断をさせることで 選択をうまくした時の達成感と」 00:05:09.680 --> 00:05:13.979 「失敗した時の後悔の両方を味わわせたかった」 と語っている 00:05:13.979 --> 00:05:18.289 店で金を払って得点を犠牲にするか、それとも 盗みを働いてその帰結に対処するか 00:05:18.289 --> 00:05:22.660 危険を冒して美女を投げ込むか それともショットガンを諦めるか 00:05:22.660 --> 00:05:27.389 金の偶像を取って、大岩に潰される危険を冒すか 00:05:27.389 --> 00:05:29.669 ゴーストが出現する前に宝石を回収できるか 00:05:29.669 --> 00:05:33.630 こうした決断はどれも、プレイヤーがすでに面を プレイしていて 00:05:33.630 --> 00:05:38.760 正しい道や、金の偶像を取ると何が起きるかを 知っていたら、面白さが大きく減じていただろう 00:05:38.760 --> 00:05:42.160 だがプレイヤーは面の構造を知りえないので 00:05:42.169 --> 00:05:47.550 状況を読んで計画を立てることを強制される それがとんでもない失敗に終わることもある 00:05:47.550 --> 00:05:50.710 そうなったら苦痛は大きい ゲームの開始地点まで戻されるからだ 00:05:50.710 --> 00:05:55.820 また新たな面を攻略しなければならない このゲームにおいてリスクは非常に高いのだ 00:05:55.820 --> 00:05:59.840 加えて、面をマスターさせてくれないということは プレイヤーは代わりにシステムをマスターする 00:05:59.840 --> 00:06:04.600 必要があるということだ プレイヤーはジャンプの 妙な慣性や、鞭の短い射程を理解しなければならない 00:06:04.600 --> 00:06:08.419 それぞれの敵が持つ特性を把握し、近づいた時に 何が起こるのかを予測できなければいけない 00:06:08.419 --> 00:06:12.160 またアイテムや隠し要素も覚えなければいけないし 00:06:12.160 --> 00:06:15.080 長時間生き残るための小技も必要になる 00:06:15.080 --> 00:06:20.240 Spelunkyが証明しているのは、アルゴリズムだから 無機質なステージになるとは限らないということだ 00:06:20.240 --> 00:06:25.069 デザインされた要素とランダム要素のバランスを 取ることで、遊んでいて達成感のある面を作れる 00:06:25.069 --> 00:06:31.020 そして面構成を学ぶ要素を排除することで 2回目のプレイも1000回目のプレイでも同じになるので 00:06:31.020 --> 00:06:35.590 このゲームはその背後にあるシステムを学び 注意して状況を読み取った上で 00:06:35.590 --> 00:06:38.970 困難な決断をすることを奨励しているのだ 00:06:40.380 --> 00:06:42.080 視聴してくれてありがとう! 00:06:42.080 --> 00:06:45.780 Spelunkyは僕が最高に好きなゲームの1つだ だからこのゲームを名作にしている要素を 00:06:45.780 --> 00:06:48.440 一部分だけでも分析できるのはとても喜ばしいことだ 00:06:48.440 --> 00:06:52.539 そのうち他の要素も扱うことになると思う エマージェントなゲームプレイや驚愕の隠し要素とか 00:06:52.539 --> 00:06:54.539 将来のエピソードでやるつもりだ 00:06:54.539 --> 00:06:57.819 この番組を支援してくれるなら、新しいエピソードを 直接表示できるようにチャンネル登録をよろしく 00:06:57.819 --> 00:07:02.970 Patreonでエピソード単位でいくらかの資金を 援助してくれてもいい 00:07:02.970 --> 00:07:04.910 ここに表示する登録者たちがしているようにね