ディスクキャッシュ

当時はフロッピーが全盛で、家庭にはハードディスクが普及していなかった。
フロッピーは大きなデータを読み出すのにとても時間が掛かり、
絵を多用するアドベンチャーゲームには向いていない。
絵は大きいほどデータとしてのサイズも大きくて数秒の差になってあらわれる。
この差がゲームを「遅い」ゲームと感じさせてしまう原因となる。

強い嗜好品であるゲームで、「遅い」という感覚は、
「つまらない」という感想に結びついてしまうことが多く、
それを避けようとしてソフトメーカーはプログラムの高速化に
力を入れていた。

サイレントメビウスを開発するにあたって、
絵の大きさを従来の他社のアドベンチャーゲームよりも大きめに
設定することになっていた。
大きいほうが絵として迫力がある。
絵の密度も従来はPC8801用の画面640×200・8色に合わせていたものを
PC9801用の画面640×400・16色に合わせることになった。
必然的に絵の容量は4倍に膨れ上がる。

開発中はハードディスクに絵を入れてゲームを実行していた。
この場合はハードディスクのデータ読み込み速度は高速でゲームの進行に
支障はなかった。
むしろ従来のアドベンチャーゲームにはなかった、
密度の高い美しい絵を堪能していた。
最初のテストでフロッピーに収めた段になって、遅いゲーム進行の問題が出た。
絵の容量が大きいのと、ハードディスクとの読み込み速度の落差で目立った。

フロッピーのプレイでも速度が落ちないようにする。
これはサイレントメビウスのアドベンチャーゲームとしての質を上げるためにも
必要だと感じていた。

私は自分のオリジナルであるディスクシステム、EXELOADの強化をした。
マイクロソフト社の市販MS−DOSと比較して若干機能不足であったため、
メモリ操作のための機能を追加したPSHELLというプログラムを追加した。

ディスクキャッシュという技法を使い、
フロッピーディスクのデータ読み込み速度の遅さによる苛立ちを最小に押さえる
方法を採用した。

方法はこうだ。
初めて読み出す絵、たとえば「一等船室・廊下」の絵をフロッピーから読み出す。
初めて見る「一等船室・廊下」は時間が掛かっても見られたときの感動があり
苛立ちが少ない。
この読み込んだ「一等船室・廊下」の絵をメモリーと呼ばれる場所にしまっておく。
メモリーは読み出しが非常に高速で問題がない。
次に、「一等船室内」に移動した絵をフロッピーから読み出したとする。
これもメモリーにしまっておく。
次に廊下に戻ったときに、以前しまっておいた「一等船室・廊下」の絵を
メモリーから読み出せば高速で表示され、苛立ちが無い。
ここでまた、「一等船室内」に戻ったときでも、メモリーから読み出せば
高速に表示できる。
ただし、メモリー内にはおおよそ5枚程度の絵しか入らない。
そこでいちばん読み出し時間の古い順に外していく。
これと同じ手法はインターネットエクスプローラーとネットスケープでも
使われている。

ディスクキャッシュの仕組みによって、ゲーム特有の「遅さ」はかなり
回避でき当時としては豪華なグラフィックを表示できることとなった。

もちろんハードディスクへのインストールも可能にしていたのは言うまでもない。

つぎ

もどる