本記事の終わりにある追記も併せてご覧ください。(2013年12月31日追記)
う~ん…これはひどい。
既に多くのユーザ(プレイヤー)の阿鼻叫喚がネット上に聞こえているが、日本ファルコムの「英雄伝説 閃の軌跡」(PS3及びPS Vita)がひどすぎる。キャッシュなしのCD-ROM(光学メディア)から、逐一読み出しているとしか思えないほどの長い、長~~いロード時間。Now Loading ...が10秒前後明滅するのが繰り返される、いや、それ以前に、Now Loadingが出るまでにそれなりの時間要するというのが笑ってしまう。最近のゲームでは、古典芸能という領域であろうNow Loadingをここまで頻繁に見せるのは、他のすべてがよかったとしても全部をぶち壊してしまう極悪レベルといって過言ではない。喩えて言えば、飛行機のファーストクラスに乗ったにもかかわらず、フライトの間、常時乱気流に巻き込まれているような状態──つまり、せっかくのいいもの(シナリオ、ゲームシステムなど)がありながら、ロード時間の長さですべてがだめになってしまっているのである。
なぜこんなことになったのだろうか。
まぁ、社内事情が一番大きい(9月中にリリースせざるを得ない理由があったということ)には違いないが、それ以前の問題として、そもそもこんなに長いロード時間でプログラミング(システム設計)したことが問題である。かつてのPlayStation、それ以前のPC EngineのCD-ROM版では、あまりにも遅い光学メディアからの読み込み時間をいかに少なくするかが、プログラミングテクニック並びにシステム周りの設計として重視されていたものの、それでも根本的な部分は代えがたいことから、スーパーファミコン等、半導体ROMからの読み出し時間と比べれば致命的に遅く、Now Loadingの長時間化、つまりゲームプレイ環境としては悪化したのだった。任天堂がNINTENDO64で、あくまでROMカセットに拘ったのも光学メディアでは快適なプレイを約束できないという判断が働いたのも、至極当然だったのである。
でも、今はROMカード、HDDインストールじゃないの?
光学メディアからの読み出し時間をいかにユーザ(プレイヤー)に感じさせないか。絶対的な読み出し時間を減らすにはロードするデータを小さくすればいいが、光学メディアの場合、それでも限界があった。理由は、光学メディアに対し、データの場所を探す(Seek)までの時間が実際に読み出す時間よりも長いからである。データの場所さえ見つかれば、あとは読み出す(これも一定量が決まっているので、一定量までは多かろうが少なかろうがほとんど時間は変わらない)だけなのだが、一定量を超え、かつ記録されている場所が断片化されていると、何度も何度もデータシークをしなければならない。これが光学メディアの読み出し時間が遅い元凶となる。これを一般的な表現で言えば、光学メディアは「シーケンシャルアクセスはそれなりだがランダムアクセスは致命的に遅い」、となる。一方で、半導体ROMやHDDはそのようなことはない(HDDも断片化が進めば遅延は発生するものの、光学メディアのそれとは比較にならないほど無視できる)ので、一般的に長いロード時間は回避される。その上で、ロード時間が長いのは、別の理由があると考えていいだろう。
光学メディア時代のロード時間の工夫
時代をさらにさかのぼれば、ロード時間が長いのは自明であった。「覚えているかい、少年の日のことを…」ではないが、かつてのマイコン(PCの先祖)時代はカセットテープが記録(記憶)メディアであったので、300ボークラスでのロード時間、円盤形よりもさらにランダムアクセスに向いていないテープ形、マイコンそのものもRAM資源は少なく、いわゆる裏RAMを使うなど当たり前であった。カセットテープからフロッピィディスクになったときは、圧倒的に速いロード時間に感激した(分単位から秒単位)ものだが、それでもROMカセットと比べれば致命的に遅く、ハードウェア性能としては上のはずのPCがゲーム専用機やMSXに負けていたのは、すべて外部記録メディアのロード時間が遅いためと言ってよかった。そのため、いかにして遅く感じさせないための工夫がプログラミングテクニックとして蓄積されていくようになる。
よく使われるテクニックはいわゆる先読みで、次の動作が予定されている場合、あらかじめそれを読み込んでおこうというものである。もちろん、ハードウェア側(具体的には本体側のRAM。8ビット時代であればCPU演算能力)に余裕がなければそれはできないが、あらかじめ予備(キャッシュ的)領域を設けておくことで対応可能である。具体的には、リザルト画面でプレイヤーに結果を表示している間にバックグラウンドで先読みする、マップ切り替えエリアにさしかかる前に次のマップを読み込んでおく(プレイヤーの気まぐれで無意味になることもあるが)など、様々な方法が編み出されている。
このほかにも、頻繁に使用するデータはRAM内に残しておき、常時それを利用するという方法や、読み込み時間を少なくするためにデータを圧縮しておき、RAMにマッピングする際に展開するという方法など、CPUスピードが上がっていく過程で読み込み時間を短縮する工夫も平行して実装されている。ただし、PlayStation版ドラゴンクエスト7のように、ROMカセット時代の感覚から抜け出せず、常時CD-ROMからデータ読み出し続け、CD-ROMドライブ耐久テスト状態となってしまったものもある(熱暴走あるいは読み出しエラー頻発によってゲームどころでなくなる)。要は、バランス感覚がここでも大事だということである。
で、英雄伝説 閃の軌跡のロード時間は…
現行世代のゲーム機は、プロセッサ演算能力も高いし、HDDや半導体ROMからデータを読み出すこともでき(データバスも広くて速い)、さらには狭い(少ない)といわれはするがRAMもそれなりにはある。加えて、他社のゲームを見ればロード時間が短いものがほとんどであって、まれに遅いものがあってもそれが頻発するものではない(ダンジョンに入った後のように、データの入れ替えが多い場合とか)。よって、明らかに「英雄伝説 閃の軌跡」のロード時間がおかしい、異常だと言うことになる。原因は予想することしかできないが、間違いなくシステム設計に問題があると断言できる。おそらく、データの一気読み、一気捨てが繰り返されてのものだろう(バックグラウンドで逐次読み出ししていないと感ずる。さすがに一回だけ流れる声・台詞はそんなことはないだろうが)。加えて、3Dモデルの展開方法にも難があると見る。ロード時間が10秒前後かかるというのは、単にHDDや半導体ROMから読み出すだけなら、そんなに時間はかからないからで、読み込んだデータをその都度その都度、3D展開しているとしか思えない。キャッシュするとか、頻繁に使用する3Dモデルを非表示ないしRAM内に維持しておくという発想がない、あったとしてもそれを捨て去る判断をしたと言うことだろう。古のPCゲームメーカとは思えない、稚拙な作りだと言われても仕方が無いと思う。これはすべてゲームバランスという以前、システム周りが崩壊していると判断せざるを得ないわけである。
誰の判断?
こんなものはテストプレイすればわかるし、デバッグコードが入っているにしても、一定の工夫をしていればここまで遅くすることは却って難しい(意図的にウェイトを入れていれば別)。根本的なところで設計に問題があり、それを許容したところがすべてである。パッチが当てられるということだが、どこをどうするつもりなのだろう。ロード時間を短くするには、3Dモデルの展開方法とそれをあらかじめどこに格納しておくか(いちいち繰り返し読み出さず、且つ展開しない)の解決であり、どう考えてもパッチで済むレベルとは思えない。ゲームシステムを根本的にさわらない限り困難であるので、お茶を濁す程度(例えば一部データのみRAMに置いておくとか)になるのではないか。
とどのつまり、誰かの判断によって、このような駄愚ロードを搭載したのが本作であり、それがすべてを台無しにした。といったところで、今回はここまで。
2013年10月4日追記
昨日(3日)、ロード時間改善とされるパッチがリリースされたので早速あててみたところ、正直「どこが…」というレベル。おそらく、ストップウォッチで計測すれば速くはなっているのだろうが、最初からパッチがあてられた状態でリリースされていたとしても結論は変わらない。遅いものは遅い。それだけである。
2013年12月31日追記
今頃追記するのもあれかもしれないが、パッチ1.02がリリースされ、これを適用してようやく受忍限度ぎりぎりのロード時間に落ち着いた。これ以降、再び本ゲームを再開し、何だかんだで二周目を終えた。
最初から、この程度のロード時間であればよかったものを…。
コメント