SFC 聖剣伝説 3
SFCのレトロゲームをやってみた感想文です。
このゲームは、チート対策が非常に凝ったシステムで、それが見どころの一つと言っても過言ではないかと思います。SFCでこんな対策システムを採用しているゲームは他に無いですし、よく思い付いたものだと感心しました。
まあ、このゲーム、全てにおけるゲームバランスがドイツ車並にしっとりとした扱いやすさに調整されているので、製作サイドも『絶対に弄られたくない』と思ったのでしょう。このゲームバランスは聖剣伝説2とは比べるまでもなく、SFCのソフトの中でも群を抜いてトップクラスだと思います。
そんな完璧なバランスを練り上げるだけの実力があるだけあって、このゲーム、チート対策も万全です。レトロフリークなどでチートを使ってサラッとストーリーだけ追ってみようかなどと思っているならば手を出さない方が良いかと思います。狙った先にコードが効かないばかりか、一発で取り返しのつかないバグが発生します。
まず、このゲームの仕様について簡単に説明しますと、ゲームはドラクエ2みたいに三人旅です。6人いる主人公キャラの中から最初に一人を選び、残りの二人の仲間も最初の時点で選んで、そのまま最後までその3人は変更出来ません。主人公や三人の組み合わせによってストーリーもラスボスもエンディングも違うマルチストーリーをなっています。戦闘などで動かせるのは一人で、セレクトボタンで誰を自分で動かすか切り替えられます。自分で動かさない他の二人はだいたい勝手に動いてくれます。(ドラクエ4みたいに作戦を決めて、それに沿った動きをしてくれます) また、それぞれのキャラに『上級職』みたいなジョブがあって、ジョブ毎に能力値の上限があるため、それぞれのジョブチェンジが出来る場所に着く前に下級職のままレベルを上げても能力値が頭打ちになって強くならないという『初期過剰レベル上げ対策』もとられています。このシステムの秀逸なところは、例えば、初期職での力の上限は12なので、最短でレベル18で次のジョブクラスに上がればレベル18から再度力のステータスも12から上に上がっていくのですが、初期職でレベル50まで上げてしまったら、力が12から上がり始めるのはレベル50からとなります。この時点で同じレベル50でも、レベル18から力を上げてきたものは力は30くらいになっています。つまり、過剰なレベル上げをせずによりレベルの低い段階でジョブチェンジの場所まで到達したほうが最終的に強いキャラを作れるという持っていき方が上手い。ゲームというのはボス戦でギリギリ勝てるくらいが一番面白いというのを味わわせるための仕様が実に秀逸だと思います。
本題のチート対策ですが、そもそもチートというのは、これもごく簡単に言うと『アドレス』と『値』という二つの数値をゲームのプログラム内に無理やり嵌め込む事をチートと言います。
単純なゲームで云えば、画面の左上などにスコアが出ていたりしますよね。あのスコアの表示ウインドウがアドレス(位置、番号)で、そこに好きな数値を入れ込むわけです。
シューティングゲームならば残機数を表示しているアドレスに99と入れたり、自機のアドレスにノーマル状態の表示番号を入れておけば敵弾に当たっても爆発のグラフィックにならないのでプログラムが作動せず無敵状態で進めたり。
チートが特に有効なのはRPGで、ステータス枠などアドレスが分かりやすいので数値の改編も簡単、キャラ毎に表示位置も変わらないのでアドレスも一つ違いだったりしてとても単純で、レベルも装備品も簡単に弄れます。
しかし、この聖剣伝説3で従来通りのチートをやってもメチャクチャになります。この対策について、少し前のチーター達は『チート出来ないようにアドレスが浮遊してる』などと言っていましたが、これ、違う。いくらスクウェアとはいえ、これまで言われてきた『浮遊してるアドレスをランダムなタイミングでランダムに振り分けている』というようなもの凄いプログラムではないです。
これ、メインの画面上のキャラのアドレスとメニュー画面上のキャラアドレスが別になっていて、メニュー画面自体がチートの入力値を入れるソフトのようなシステムになっていて、要はそこに入れた数値がメイン画面上に反映されているだけというシステムになっています。まあ、ここまでは普通のRPGゲームでも同じなのですが、この聖剣伝説3のチート対策の凄いところは、メイン画面上は終始3人キャラなのに対して、メニュー画面のシステム上は画面に載らない、通常は操作に反応しない4人目のキャラが存在しているというところです。
しかも、この4人目のキャラの動作プログラムが凄い。
この4人目、経験値やステータス値など、全て加算されない0固定になっているのですが、このゲームの場合、主人公の一人目のステータスが全部0だと『ある状態に戻る』ようにプログラムされています。その『ある状態』というのがよく考えられていて、このゲームはメインのフィールド画面が消えると(宿に泊まる、乗り物に乗る、セーブからゲームを再開するなど)名前とグラフィック以外、ステータスなどが一人分ズレるようにチート対策のプログラムされています。ここで全部0の4人目のステータスが1人目のステータスにローテーションでズレてきて、1人目のステータスが全部0になると、それが元に戻るトリガーとなってズレが逆回転して戻るので通常ならば問題ない。しかし、ここでチートを使って1人目のステータス値をMAX値で固定していたりするとズレを戻すプログラムが発動せず、特にゲーム中盤以降、移動に必須なフラミーなどの乗り物を使うと枠アドレスのズレによって様々なバグが発生してフリーズしてしまいます。ステータス値が一人分ズレるというのは致命的なバグで、主人公のステータスは全部0、二人目、三人目も名前とグラフィックに対してジョブも必殺技もチグハグでそれらを使うことも出来ず、オート操作が勝手に技を使おうとした瞬間、フリーズしたり画面が真っ暗になってセーブデータがとんだり。全くゲームになりません。
しかも、このズレ仕様の優れているのは、ズレるのは正方向に一回しかズレず、ゲーム内の時間経過ごとに一日4回、ズレが修正されているかチェックが入るようで、その時点でズレていたら画面が真っ黒になってオープニング画面に戻されるプログラムまで付いています。
後半になってくると移動は乗り物でしか出来ません。乗り物に乗るたびにステータスがズレてバグってしまいます。なんだか開発サイドの『絶対にチートは使わせない』という執念すら感じます。
ただ、ひとつ抜け穴があるとしたら、終盤、各ボス戦手前にセーブポイントを置いたというところでしょうか。チートを切ってセーブポイントまで来て、セーブをしたらリセットを押して、再開するセーブデータを選ぶ時にチートを発動して再開すると、そこからボスを倒してフラミーに乗るまでチート状態を保てるんですよね。
まあ、チート使っちゃうと神獣も竜帝も秒殺なので、音楽とかグラフィックとか充分に楽しみたい人はやめといた方が良いのは当然ですが。
ちなみに私は、このゲームの構造を見てみた際に『たまたま』この特異な仕様を見つけてしまっただけなので、あしからず。個人での使用以外使う気はないです。
ゲームの内容も然る事ながら、プログラムの面でも面白いところが沢山あった作品でした。