Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

ポートピア連続殺人事件

ゲーム『ポートピア連続殺人事件』(以下ポートピア)は、1985年12月に母親に買ってもらったゲーム・ソフトとして強く記憶に残っている。
当時、PCゲームの様に少しこだわりのありそうな、凝った趣向のゲームはファミコン用には販売されておらず、『ドラゴンクエスト』の登場は翌年の出来事だった。いうなればポートピアはPC的なゲームとして最初の移植作品だった。このようなゲームを求めていた当時の私にとって、このゲームこそがファミコンのキラー・タイトルだった。

ネタバレの代名詞と言えば、「犯人はヤス」というフレーズだ。この起源はポートピアにあるのだが、ファミコン版がリリースされた時点で、すでにネタバレしていたのが面白い。最初にリリースされていたPC版の情報が、クラスに少ないPCオーナーの友人、知人、あるいは彼らの人伝に広まっていたのだ。
1986年の出来事だが、ハドソンの高橋名人が逮捕された、という噂話が、インターネットのない時代でも、人伝に全国へ伝播していく時代だったのだから、何の不思議もない。

犯人は既に分かっている。どうやってそこに辿り着くか、という『刑事コロンボ』的にアプローチする環境が整っていた。ファミコン版はコマンド選択式で、簡単にクリアできそうなのに、しかしそう簡単には”クリア”できない仕掛けが施されたゲームだった。
そのトリックは、コマンドのdouble meaning的な仕掛けに合った。これに気付かないため、クリアまでに数か月を要したのだ。

double meaning的な仕掛け


容疑者の中から犯人を絞り込んでいく典型的なパターンの一つが、情報の不整合を突くことだ。たとえば、ある容疑者について

コマンド
1 アリバイを聞く 「ひとに きけ」 > 「アリバイ」
2 現場以外の場所で聞き込みする 「ひとに きけ」

1、2で食い違う情報を得て、さらに容疑者を問いただすことでゲームが進行していく。同様に、別の容疑者に対してもアプローチするのが定石なのだが、これでは”食い違う”情報を得ることができないのだ。このトリックが仕掛けられているのが、次のコマンドだ。

3 既知の情報を確認する 「ひと しらべろ」 > 「アリバイ」

ある容疑者のアリバイを崩す目撃情報が、このコマンドからも得られるのだ。「〇〇を見たという目撃情報が~」などと、聞き込みを兼ねている要素がある。少年時代、このトリックに気付かずに数か月を無駄にしたのだった。

そしてやはり、この仕掛けをSteam版も継承していた。

Steam版

Steam版は、PC版のようにキーボード入力で操作する。入力形態はPC版譲りではあるのだが、その実態はファミコン版だ。シナリオを踏襲しているだけでなく、キーボード入力に見せかけて、実際にはコマンドを操作しているのだ。

自然言語理解機能が搭載されており*1、ユーザーの入力に関連するコマンドを実行する仕掛けのようだ。つまりコマンドは存在するのだが隠されており、

隠されたコマンド 数値化→ベクトル化されている
入力された文字列 数値化→ベクトル化する
類似度 ベクトルを比較→類似度の高いコマンドを見つける
実行 類似度の高いコマンドを実行する

という流れで、隠されたコマンドが実行されていく。

そのような具合なので、もう多くを語ることはない。

犯人はヤス

しかし結果は意外だった。1時間足らずで遊びつくした気でいたのだが、まだ見つけていない証拠があるのだ。今回見つけた証拠は115。まだ10個以上の証拠を見つけていないのだ。もう少し遊ぶ余地がある。



余談:バイナリのサイズ

PC版のポートピアは、カセットテープをメディアとしてリリースされた。おそらくデータ容量として100KBもなかったのではないだろうか。ファミコン初期のROMサイズは24KBだったという*2。おそらく、ポートピアも同程度のサイズだったのではないだろうか。そしてSteam版は10GBだ。

ゲームのシナリオに変化はなく、より高解像度な静止画、登場人物のアニメーションなどが追加されたとはいえ、KB→GBの変化は極端だろう。おそらく、このデータの大部分は自然言語処理に関連する言語モデルなのではないだろうか。
ゲームの起動中、それがRAMを占有することはなかったため、おそらく舞台となる場面、容疑者毎に特化した小型のモデルを複数作成し、それを切り替えながら動作しているのではないかと推察している。

余談:コマンド選択式の敵は、自分自身の思い込み

80年代当時のゲームは、とにかく”クリア”できなかった。そもそもエンディングが用意されていない作品もあれば、セーブもコンティニューもない環境でプレイし続け、エンディングに到達するのが極端に難しかった。

コマンド選択式という、有限の順列組み合わせでクリアできてしまう仕掛けは、私にとっては非常に納得のいくものだった。きちんと適切な手順を踏めばエンディングに到達できる、ミスによって乱されることのない、再現性のある仕組みに思えたのだ。

有限の順列組み合わせなのだから、手詰まり的な仕掛けが施されていなければ、コマンド総当たりでクリアできてしまう、というのがコマンド選択式に対する典型的なネガティブ意見だ。とはいえ私の少年時代のケースは、しかしそう簡単にはクリアできなかった事例の一つだ。

コマンドの解釈、特性、仕様が理不尽である、ということを無視すれば、コマンドの解釈に対する偏見が強すぎたのだ。解釈が全く柔軟ではなかった。自分の思い込みに忠実であったがために、クリアまでに無用に数か月を要してしまったのだ。
そして何より、だからこそなのだが、総当たりする根気もなかった、というのは少年時代の私が無能だった、というよりもかなりクリティカルに感じられる。
偏見に凝り固まって、とにかく試してみる、という気概がなかったということなのだから。それが”ゲーム”であるにもかかわらず「試してみない」のだから、”リアル”ではどうなのか、ということだ。

store.steampowered.com
www.jp.square-enix.com