リアル脱出ゲームに影響を受けすぎた男~脱出ゲームを作ろう~



7月某日
友人に誘われて初めてリアル脱出ゲームに行った。
脱出ゲームといえば平坦な部屋をクリックし続けるゲームという認識の私にはそれは大きな衝撃だった。
当日はお世辞にも貢献したとは言えない働きだったが
それでも楽しいと言える不思議な達成感があった。
そう、純粋に楽しかったのだ。
しかし
それと同時に作ってみたいと・・・
自分で作った謎を誰かに解いて欲しい。
そんな考えが頭を過った。

作ったゲームを友人にプレイしてもらおう!!
ゲームを作る前に
友人にプレイしてもらう上で、不自然な誘いはしたくない。
色々考えた結果
「オンラインゲームでアカウントが乗っ取られたが、運営AIでゲーム内にしかおらず、プレイしないと問い合わせできない。」
というストーリーを隠れ蓑にすることにした。
そんなわけないがないのは重々承知だ。さすがに辻褄が合わない点だらけである。
でも茶番だし。いいじゃん。
ゲームを用意しよう
ということで早速制作に移る。
背景のストーリーを踏まえてオンラインゲームに見立てたゲームを作る。
謎解きのことを調べると
まず大トリとなる謎を考えて、細かい謎を作るといいようだ。
今回は大トリの謎から3つの細かい謎を作っていこう。
大トリの謎
これはストーリー上IDとパスワードになる。
ただどちらも文字列なのでこれらをそののままクロスワードなどにするのは少し味気ない。
IDは細かい謎の並び替えにして、パスワードは何か工夫を凝らそう。
大トリに繋がる細かい謎
RPGではラスボスが花形とはいえ当然プレイ時間が長いのはモブを倒している時だ。
ここが面白くないとプレイ体験がおざなりになっていくだろう。
アクセントを加えるために
何か一つ私の好きな要素と常套手段を混ぜていくことにする。
※ここから細かい謎を作っていくが、謎の内容はプレイしてもらう部分でご覧ください。
謎① SNS×???
プレイヤーのSNSから答えが見つかるときが一番興奮する。
友人のTwitterのアカウントから答えを持ってきたかったが鍵垢。
仕方なくそれ専用のアカウントを作り使うことにした。
謎② ネットミーム×???
ネットミームが大好き。
私が好きなミーム「東大の医学部は…」を使う。
でも、正直上手く謎解きに絡めることができなかった。悔しい。
謎③ URL×???
URLが突然送られてくると怪しげな雰囲気があって
ワクワクするのではないか。
今回はURLはディスコードの招待URLにし
ディスコードとゲームをリンクさせながら解いてもらおう。
実際に作ろう!






完成!
クソUI

人様に見せるのにみっともなくて恥ずかしいが時間の問題で断念。
※ダミーの文字を好きなものにするとやる気UP!
エラー・不具合

不具合の穴を塞ごうと何かを変えると、また別の穴が開く…。
しかし本当に怖いのはエラーも吐かない抜け道なのだ…。
怖い話

ゲームエンジンはGUIを酷使するらしい。
ゲームを作って以降OW2の調子が悪いよ。なんでかな?
妥協に妥協を重ね一旦ゲームの製作は終了。
改めて
大規模なゲームからインディゲームまで、作品を作り上げる人全員をリスペクトして生きようと思った。
バグを責めるだけの人間にはならないと心に誓った。
友人にプレイしてもらおう
プレイしてもらう友人を呼んだ。
友:やさお・酒飲み
誘われたらリアル脱出ゲームに行く程度
私「今日はありがとう」
「早速なんだけど…」
さあ用意したストーリーからゲームを始めてもらおう。
私「(ゲームでアカウントを乗っ取られたから問い合わせしてくれ。)」
私「オモコロ杯に記事書きたいからゲームプレイしてくれ。」
茶番をして恥をかくリスクを取れなかった。
私「(説明中)」
友「ほうほう」
友「やってやろうじゃないの」
快諾してくれた。
起動確認などの準備が完了したので早速プレイしてもらう。

友「FACTORY FACTORYはダサくない?」
私「」
作る過程で見過ぎて忘れていたがかなりダサい。
いきなり核心を突かれたような気分。
ちょっと心が折れかかっている。
友「これは普通にアカウントを作ればいいの?」
私「そうそう」
友「ほ~ん」




私「ちょちょちょちょちょちょちょちょちょ」
あ〜〜〜あ〜〜〜〜〜〜〜!!!!!!!!!!!!!!!!!!!
もちろん何を入れても進めるわけじゃない。
アカウント作成をすればIDとパスワードが登録される。
それに一致しないものは全てはじかれるように作ったのだが
初期値が空白だったために、入力欄と一致しゲームが始まってしまった。
意図せずゲームが始まってしまう唯一のルートだ。
冒頭も冒頭、折れかかった心が完全に折れた。
友「さすがにやり直そう」
友人の優しい言葉が折れた心を癒す。
そもそも変なことをしなければ、こんなことにもならなかったのにな。
ちゃんとアカウント作成からやってもった。

友「運営がいる」
私「こいつAIね」
友「そんなこと言ってたっけ」

友「ふふっ…」
友「これセリフもお前が考えてるのか」
私「これ恥ずかしいな」
ざっくりゲーム内ストーリー
友人が運営に不正ログインの件を伝えると解析してもらえた。

正常に解析できなかったが、挑戦状のようなデータが見つかった。

謎① SNS×???

ついに謎解きが始まる。
@と大小のある数字の羅列とアルファベット。
そして下に書かれている7列の数字とアルファベット。
1行目が赤く、7行目が青い。
友「う~ん…上が赤で下が青…」
友「3と4が最後に並んでるんだよな」
友「なんで上のやつ大きさが違うんだ?大文字小文字の差か?」
順調に考えを巡らせてくれる友人。
これがやりたくてわざわざゲームを作ったのだ。
不思議と少しワクワクしている。
友「う~ん」
友「Sunday?Monday?」
着々と答えに近づいていく。
友「あ~来たか?」
友「来た来たこれだ」
そう、この謎のカギは曜日だ。
解説

上のように曜日に変換すると数字とアルファベットが対応する。
さらに大きな数字は大文字、小さな数字は小文字に対応させる。
これを@以降に当てはめると、文字列が割り出せる。
ただ、これだけでは正解ではない。


友「違うじゃねえか」
私「いいねぇ…(ニチャア)」
想定誤答が来ると嬉しいものだ。
折れた心が少し治ってきた。
私「問題文読んでみてよ」
友「鍵は下記に用意した。」
友「あ~~~そういうこと?」
友人のゲーム画面が止まる。裏画面に行っている証拠だ。
そう、このIDのアカウントで答えを投稿しているのだ。

友「なるほどな」


順調に謎①をクリア
ざっくりストーリー
解析を進めるとIDではなく文章が出てきた。

と、同時にアイテムである共有端末が解禁。
端末は別プレイヤーが投稿した(という設定の)スレッドが確認できる。
そしてスレッドのIDを入力するとプライベートスレッドが閲覧できる。

友「なんだこれ」


友「ヴィジュネル暗号、これ出てくるよ」
私「(察しが良すぎる)」
そして、スレッドを読んでいる間に謎②を手動で投稿した。
謎② ネットミーム×???

友「ツイートされてる」
早速投稿に気付いた。
友「トウダイ ノ イガクブ ハ アタマ ワルクナイカ」
友「ホントウ ダカラ ダ!」
友「ちっちぇーな。字がな。」
私「歳か?」
謎②は暗号文と鍵があたえられている。
そしてアルファベットの表。
まさにこの表こそが今回のカギ。
ヴィジュネル暗号である。
ヴィジュネル暗号は横軸に元の単語、縦軸に鍵の単語を使用し交点となった文字を並べることで暗号化された文字列が生成される。
詳しくはwikiを読んでね。
友「なんだこれ、これ逆から見てもなんかあるのか?」
友「L…C…」
友「う~ん?」
着目はしたもののヴィジュネル暗号には気付かない様子。
私「苦戦しているようなのでヒント出します」
私「もうヒントは全て手に入れています」
友「じゃあやっぱりこのスレッドなのか」
友「このヴィジュネル暗号ってやつをググるか」
友「この表出てきた、これじゃん」
必要なパーツは早々に揃った。
この謎はヒントへの誘導が少なかったと思っていたのだが、かなり速く終わるかと思ったのだが
10分後
友「あれ?」
友「やっぱりヴィジュネル暗号の理解からだな」
私「(おっせ…)」
謎②の解答は縦軸に鍵である”HONTOU”を当てはめ
暗号文である”JOAWCL”が交点になる場所まで進んだ時
縦軸が回答となる。
画像でも分かりづらいからwikiを読んでね。

縦軸を順番通りに並べると、解答はCANDOR(率直)となる。
友「酔っぱらってるときに頭使わせんなよ」
私「飲んできたのはお前だろ」
数分後
友「わかったわかった」
友「え~っと、c…a……n…」

私「あっ大文字じゃないと認識しないです(小声)」
友「嘘だろ」
私「まあ、表のアルファベット大文字だし、俺のミスじゃないよね」
友「なんだこいつ」

正しい回答を入力し新たなスレッドが解放される。

友「え?手打ち?」
URLに進むとディスコードの招待が表示される。

サーバーに参加するとディスコードボットがアナウンスをしてくれる。
はずだった。

ディスコードボットでエラーが発生した。
(実際には起動するボットを間違えて試験用を起動していただけだった)
今まで細かな不具合があるもののゲームが進行不可になるようなエラーは発生していなかった。
私「ごめん、ちょっと待ってね」

ゲームの進行できなくなるのは何とか避けたかったので
苦し紛れでコードからそのままメッセージをコピーした。
友「これはダンジョンに行けばいいの?」
私「すんません。そうして下さい。」

ここからはディスコードとゲームを行き来しながら進んでいく。
謎③ URL×???


ダンジョン開始時に、新たな行動が指定される。
が、友人は部屋の探索を始めた。


友「回収?」

友「え???」
私「シュールでしょ」

ギミックでひとしきり遊んだ後、謎に戻る。
ディスコードボットは遊んでいる間に正常に動作するように戻した。
友「さて」
友「ロビーって何?」

実は参加したディスコードのチャットルームは「ロビー」という名前で、ここで発言すればボットが反応してくれるのだが
友「最初のとこか」


友「挑戦」
友「違うなあ…」
なかなかロビーに気付かない。
簡単な導入のつもりで作ったが、意外なところで詰まるのも面白い。
面白いが時間が迫ってきているのでヒント。
私「ロビーにはちゃんとロビーって書いてあるよ」
10分後
友「ディスコか~」

ボットからの返信が来ると同時に新たなチャットルームが解禁される。

チャットルームは「鏡の部屋」
後はボットをどう使うかがカギになる。

友「これは何をしたらいいの?」
私「ディスコードでもあった通り
素敵な部屋を正しい姿に戻してください。」
友「???」
友人のピンと来てない様子を見て初めてヒントの少なさに気付いた。
確かにこの状態で放置されたら何をするべきか分からない。
部屋のモノを回収したり、ボットに話しかけたり
色々試す友人だが、一向に近付かないので

私「ヒントです」
素敵な部屋と鏡の部屋は対になっていて鏡の部屋には観測者がいます。
今、素敵な部屋は正しい姿ではないですが
鏡の部屋は正しい姿なので、観測者に正しい姿を聞いてください。
友「ふ~~~ん」
あまり納得いっていないご様子。

友「右側?こいつどこいるの?」

友「お、これを回収するのか」

この謎のメインイベントは素敵な部屋から不要なモノを回収し正しい姿に戻すことである。
メインイベントが弱いと考えそこに行きつくまでややこしくしたが、調整を失敗したようだ。
作った時はまだ弱いと思っていたのでもう一山用意してある。
友「これで全部回収したが?」

友「どうするんだ?」
またも路頭に迷う友人。
割と時間もかかっているのでヒントを出そうと思っていたら。

私「あっ」
友「???」
実は鏡の部屋で観測者と発言すると観測者の位置と行動を知ることが出来る。

しかしこの部屋では決められたモノ回収し終え、決められた行動をするとクリアなる。
そのため偶然クリアとなる確率が高いことは分かってはいた。
本当はモノの移動や特殊な行動を実装したかったが、技術と時間が足りず実装できなかった。

最後にあるワードを教えてもらい終了。
気に入っている仕掛けではあったが、全体的に段取りが悪くなってしまった。
ざっくりストーリー


運営に今まで謎を仕掛けていた犯人が自身の作ったAIの暴走した結果であり、アカウントの乗っ取り犯でもあることを教えてくれる。

そして共に運営する人を集めるために乗っ取り行為をしていると教えてくれた。


そして、暴走を止めるためにアカウントを取り返して誘いを断って欲しいとお願いされる。
大トリの謎
ついにフィナーレとなる問題がメールで送られてくる。

今までの謎をあてはめるだけの簡単な謎だ。
友「これ2個目のなんだっけ」
気付かなった。
言われると謎②は解答欄にメモすると答えを得る方法がもう一度謎を解くしかない。
普通に反省。
友「めんどくせえなあ」
私「ごめん。教えるよ」
友「いや、もう一回解くよ」
私「(なんで?)」
並び変えるとこのようになる。

私「これ過不足ないんだよ!すごくない!?」
友「あ~」
え
反応薄くない…?
ということでIDが判明した。
そして運営がパスワードの解析が終わったという。


当然入力できるわけもないので、これこそが大トリの謎のつもりだったが

友「これか」

しれっとスレッドを追加したがすぐバレた。どこで苦戦するかが本当に分からない。

あっさりと大トリの謎を解きエンディング
エンディング

手に入れたIDとパスワードでログインすると

ラスボスとの会話になる。

友「え」

私「なんで?」




私「なんもないよ」
友「なんか用意しとけよ」
悪のAIの手に落ち続けようとする友人を止めていいえを選ばせた。

ストーリーが思いつかず無理やり終わらせた。



友「しょうもな」
友人の心無い一言でゲームが終わった。
感想
総じて考えが甘かった。スケジュールからゲームの設計まで穴だらけ。
誤字脱字やストーリーなど明らかに未完成ではあったが
ギリギリを極めて何とかここまでたどり着けた。
内容はひどいものだがほとんど会話や判定などのシステムの部分に時間を取られ睡眠時間を削る羽目になった。
結果4分の1は当日作り上げた。
プレイしてもらった点では
やはり苦戦するポイントが全く予想と違ったことに驚いた。
本当のゲームを作っている人はどうやって難易度を決めているのだろうか。
友人に感想を聞いたが、やはり謎③は納得感が足りない部分はあったそうだ。
例えばボットを会話するチュートリアルを入れたり
モノの名前を打ち込むと返答があるという発想には至らないとのことだった。
確かにあらゆるゲームで新たな機能が来たときは必ずチュートリアルがある。謎解きといえどもそこは親切心を忘れてはいけないようだ。
山のように反省点があるが、ストーリーのある長いゲーム作ることも誰かにプレイしてもらったのは初めての経験で一つ一つが楽しかった。
恥ずかしさが楽しさに勝る場面が多かったがやってよかったと思っている。
最後に
ゲームを作ってほんとに大変。
みんなもやってみよう。

偉そうなこと言うだけのやつは
ね。