今年初めてプレイしました
動画は短いですが語ることは少し多いです。
このゲーム何?
知らない人が大半だと思うので。
航海中に嵐に巻き込まれた主人公(男or女から選べる)が、漂着した無人島から脱出を目指すサバイバルゲームです。
RPGに近いですが、満腹度や水分の概念があったり、条件によりエンディング(以下ED)が8つまで分岐するのが特徴です。
キッズと言う名の通り子供が主人公ですが、無人島生活ということで普通に死の概念があります。シビアですね。
実はSwitchオンラインでも遊べます。(重要)
RTAにおいてはED1~8それぞれとオールエンディングのカテゴリがSpeedrun.comに存在します。
また、Hut glitchと呼ばれる大きなバグによってすぐにEDにたどり着けるため、一部のEDでは使用/不使用でカテゴリが分かれます。
走った経緯
このゲームは元々RTAを走っていたわけではないです。というか未プレイでした。
同じくこのゲームのRTAを走っていたaKaFuKuさんにHut glitchの解析を依頼されたのが始まりです。
というのも、現行のHut glitchだとED1,3,7のどれが出るかがランダムで安定しないという問題があったからです。
結局安定法はまだ見つけられていませんが、副産物としてED7のより早いルートでのHut-glitchを発見するに至りました。
要するに今回投稿した動画はそのルートの初RTAです。
hut-glitch(小屋バグ)について
このゲームで見つかってる唯一のバグらしいバグです。
簡単に言うと想定しないメッセージを呼び出してメモリ破壊を引き起こして悪さをできます。
aKaFuKuさんのRTA動画を見ると理解が早いかもです。
余談ですが、このバグ自体はMUGGさんを始めとした海外のTASコミュニティで発見されたものです。
TASvideosのフォーラムを見ると経緯が分かるかも?
ED7新ルートの説明
本題のはずだけど今更説明。
と言っても、既存のHut glitchのルートとベースは同じで、小屋に入るまでに発生させるメッセージを変えただけです。
元々はマッチを使ってメッセージを発生させていたのを、ひつけどうぐ関連に変更することで早く確実にED7ルートに行けるようになります。
具体的には
- ひつけどうぐで点火する
- 点けた火を調べる
- ひつけどうぐを捨てる
のメッセージをそれぞれ発生させてます(順不同)。合成の手間がありますが、それを加味しても従来より早くなっています。
【備考】hut-glitch(小屋バグ)の仕組み的なもの
ゲームを中断した箇所での本来の流れは小屋を発見~小屋に人がいないのを確認するといったものであり、メッセージ送りがそれに含まれます。
初回に小屋に入った時は直前のメッセージの次を表示するため、本来は小屋発見時からメッセージが一連で表示されることになっています。
小屋バグでは別のメッセージから次に送っているため、正常にメッセージが設定されていなければヘンなものがメッセージとして表示されます。バグが発生した場合はメッセージ表示とは全く別の処理がなされる?(マップ描画らしいけど正確には分からず)
この時、メッセージ格納領域に大量のデータが書き込まれます。バグメッセージの原因はコレです。そして、バグメッセージは本来のメッセージの格納領域を大幅に超え、別のメモリの値まで浸食します。いわゆるバッファオーバーフロー。
書き換えられるメモリは主に生存日数やイベントフラグです。特に生存日数は高確率で99日を超えるため、「生存日数が100日以上になる」と強制的に発生するED3とED7がかなり出やすいです。
動画で火をつけたり火を確かめたりしてるのはそのトリガーメッセージの調整です。
トリガーメッセージは小屋バグの行く末に大きく影響を与えます。具体的には
- メモリ破壊によって書き換えられる内容
- バグメッセージの文字数と速度
が変わります。
1は分岐するEDの種類、2はED到達までのタイムに影響を与えます。
今回のルートも偶々早いものが見つかりましたが、さらなる更新の可能性もあります。Hut glitch自体もトリガーメッセージ次第で応用が利きそうなのでまだまだ研究のしがいはありそうです。