ゲーム開発昔話01_回転メディアは遅い

タイトル装飾

ゲーム開発昔話01_回転メディアは遅い

(この物語はフィクションであり、実在の人物・団体・事件とは一切関係ありません)

 

目次

◆ 昔の話

◆ DVDやCDなどの光メディアについて

◆ DVDやCDなどの光メディアはなぜ遅いか

◆ 家庭用ゲーム開発中の読み込みメディアの扱い

◆ 思い出のPCパーツコーナー ~ 悲しき恐竜 WD VelociRaptor

◆ 昔の話

これは某PC版シミュレーションゲームを家庭用ゲーム機に

移植してる時の話なんだけど…

 

S「Kさん、ちょっと良い」

K「なんでしょう?」

 

S「このゲームの起動、滅茶苦茶遅くない?」

K「そうですね、自分も気になってたんですよ

  タイトルが出るまでに30秒ぐらいかな、さすがに遅すぎでしょ」

 

S「30秒? いや2分ぐらい掛かってるんだけど…」

K「そうなの?、自分の所はそんなに時間かからないけど

  Sさんの開発機壊れてるんじゃないの?」 

       

S「いや、そんな変な壊れ方するわけないじゃん」

K「うーん、じゃあ開発機のファイル読み込みモードが

  エミュレーションモードになってるとか?」

 

S「それも無いですね、開発PCのホストモードになってるよ」  

K「なるほどね、そうなるとやっぱり起動時の読み込み時間が怪しいですね」

 

S「そうそう、このゲーム、登場する国ごとにパラメータファイがいくつかあって、

  そこの読み込みじゃないかな」

 

K「どれどれ、どのファイルですか?」

S「えーとこの場所だったかな、うーん結構ファイル数多いな…

  個々のファイルのサイズは小さいけど…」

 

K「開発PCのHDDから読んでも遅いなら、実機のDVDならなおさらですね、

  これは何とかしといて置いた方が良いんじゃないですか?」

 

S「じゃあちょっと何とかしてくれる? いまそんなに忙しくないでしょ」

K「うーん、まぁ良いけどさぁ」

 

--後日--

 

K「例の読み込み時間の件、何とかなりましたよ」

S「お疲れ様、どうなりました」

 

K「自分のPCでタイトルが出るまでに8秒ぐらい、DVD‐ROMからでも

  15秒ぐらいかな、SさんのPCでも10秒ぐらいでタイトル表示まで

  行けるんじゃないですかね」

S「良いじゃないですか で、どうやったんです?」

 

K「100個ぐらいあったパラメータファイルを一つのファイルに連結して

 一度に読み込むようにしたんです、まぁファイルI/Oのセオリーですよ」

S「確かにファイルのOpen/Closeはそれだけでも重い処理だしね」

 

K「しかし、なんでこんな作り方してたんでしょうね?

  いちいちファイルを開いたり閉じたりしたら遅いに決まっているのに…」

 

S「さぁ、それは作った人にでも聞いてみないと…

  それはそうと、なんで自分の環境とKさんの環境でで読み込み時間が違ったの?」

K「マシンパワーの違いですかね、SさんのPCは普通のHDD使ってるんでしょ、

  自分は高速のHDDでレイド構成にしてるからI/O 性能も違いますよ、マザーと

  CPUもワンランク上の構成にしてるし、メモリも・・・・・

   

S「(こいつ勝手に開発用PCの中身いじってんのかよ、まったくろくでもねぇな…)」

◆ DVDやCDなどの光メディアについて

昨今はネットからのデータダウンロードが主流となり、データ等をDVDやCDなどの

光メディアに接する機会が減少し、企業も記録用光メディアの生産から撤退する傾向にある

 

という事で、場合によってはDVDやCDの様な光メディアを見たことはあっても、

自分では使ったことが無いという人もそろそろ現れる頃合いではないだろうか、なので今回は

光メディアとはどの様な物かこのタイミングで振り返って見ようと思う

 

まず、DVD/CD などの光メディアの仕組みを簡単に説明すると

 

・データを極微小な凹凸として記録する

・凹凸を円盤の円周にそって並べる(CD/DVDは螺旋状に配置されている)

・円周に配置された凹凸にレーザーを当て反射の強弱でデータの読み込みを行う

・読み込みを行う装置、ピックアップは内周から外周の間を移動する

・円盤の回転とピックアップの移動によって任意の位置からデータを読み込みが可能

 

ちょっとこの説明では簡単すぎるので、もっと詳しく知りたい方はこちらを参照して欲しい

  https://global.canon/ja/technology/s_labo/light/003/06.html

  https://www.ieice-hbkb.org/files/08/08gun_02hen_03.pdf

◆ DVDやCDなどの光メディアはなぜ遅いか

さて、DVDやCDなどの光メディアの読み込み時間は、HDDなど他のメディアと

比較的しても遅い部類に入る

 

なぜ遅いのか?、光メディアの読み込み時間の足枷になるのは円盤の回転速度と

読み込み用ピックアップの移動だ

 

DVDやCDがデータを読み取る時間はおおよそ以下の足し算

 

・ピックアップがデータがある位置まで移動するまで待つ時間:シーク時間

・データの記録位置がピックアップの位置まで回転するのを待つ時間:サーチ時間

・ピックアップが回転する円盤からデータを読み取る時間:転送時間

 

どれも物理的な動作を必要とし、特にSSDなどの物理的な動作を伴わないメディアに

比較し格段の時間が必要になる事は理解してもらえると思う

 

ゲーム開発において読み込み待ち時間はプレイヤーのストレスに直結する問題であり

これは当時の開発者としては大いに頭の痛い問題でありいろいろな工夫を凝らしていた

 

まず最初の工夫は、ファイルの呼び出しの最初に発生するシーク時間とサーチ時間を

どう短縮するかについて、こちらの対処は複数のファイルをまとめて一つのファイルに

してしまうというやり方が定番

 

沢山のファイルを使うようなシチュエーションでは確実に効果が期待できるし、

逆にこれをやらないとファイルを開くたびにヘッドが動いて悲惨なことになる

またファイルを一つにまとめられない場合も、使用頻度の統計を取って関連性が

近いファイルを隣接させて配置するなども効果がある

 

次に転送時間について、転送速度は円盤の回転速度に依存しているので、DVDドライブ

などのハードウェアの性能が物を言う、したがってソフトウェア側からのアプローチ方法

は限られてくるのだが、DVDやCDなどの記録方式によっては転送速度を改善する小技も

存在している

 

まず、その小技の話をする前にDVDやCDの記録方式としてはどの様な方式が存在するかを

説明しておく必要がある、これは円盤の回転速度を同制御するかという事で

 

・CLV方式(Constant Linear Velocity:線速度一定)

  円盤の内側と外側で一定の速度で読み込みを行う方式

  円の内側から外側に行くに従い円周は長くなるので円盤の回転は

  内側では高速/外側では低速になる様に制御する必要がある

 

・CAV方式(Constant Angular Velocity:角速度一定)

  円盤の内側と外側どちらでも一定の円盤の回転速度を維持する方式

  読み込み位置が内側/外側どの位置でも回転数は変化しない

  円盤を一回転する時にヘッドの上を通過する距離は外周の方が長くなるので

  内側より外側の方が転送速度が早くなる傾向がある

 

つまり対象とするハードがCAV方式でデータを読んでいる場合、より早い転送速度が

必要なデータを外側、速度が必要でないデータは内側に配置すればプレイヤーの体感

読み込み速度を改善することも出来なくは無い

 

以上今回は、今となっては役に立たない光メディアについての知識について

つらつらと思い出話をさせていただいた

 

もっと詳しく知りたいと思う人はこちらを見てもらいたい

https://www.logitec.co.jp/etc/cdrw/cdrw01.html

◆ 家庭用ゲーム開発中の読み込みメディアの扱い

思い出話のついでに普段はあまり触れることの無い家庭用ゲーム機の開発環境についても

簡単に触れておこう

 

家庭用ゲーム機というのはWindowsやAndroid等の一般にオープンされた

規格に準じて作らているものではなく、ゲーム機メーカーのクローズな設計で作られた

ハード、したがって開発環境などは一般に公開される事は無いし機材も市場に流通

することも無い

 

普通、家庭用ゲームを開発するには、まず家庭用ゲーム機のメーカーと使用許諾の契約して

開発機材を入手しなければならない、審査があるから身元の怪しい会社だと許諾は通らない

場合があり、実績のない会社は参入が難しかったりする

 

開発機は市販されているゲーム機よりメモリが増やされていたり、開発PCに接続する

インターフェイスが増設されているが、最近は市販のゲーム機に近い見た目をしている

事が多い(ただし開発が難航しているゲーム機だと対象のゲーム機の4倍ぐらいの大きさ

の図体の物がやってきて開発者の度肝を抜いてくる事も…あったり無かったり…)

 

最新のゲーム機でもブルーレイなどの円盤メディアでパッケージが販売されている物も

あるが、今では光メディアから直接読み込む事はない(遅いからね)ゲームは最初に

光メディアから本体のHDD/SSDにインストールされそこから起動されるので、

インストール後の円盤メディアはゲームの起動チェックに使われるだけだ

 

しかし昔のゲーム機には本体内蔵のHDDやSSDは無いので、ゲームはCDやDVDなどの

光メディアから読み込まれる(大昔はROMカセット)、しかし開発中にいちいちDVDを

焼いたりしていたら仕事にならないので開発用PCのHDDからLAN経由でゲームの

データを読み込む機能が提供されるのが普通だ

 

開発PCのHDDは円盤メディアより何倍も早い読み込み速度を持っているので、普段の

開発中と実際に光メディアから読み込んだ時の読み込み待ち時間が把握しづらい

そのため、開発PCからの転送速度を光メディアからの転送速度並みに制限する

エミュレーションモードなどと呼ばれるモードが用意されており開発中はこのモードで

読み込み時間を確認するわけだが100% 実機並みの速度を再現してくれるわけでは

ないのでDVDを焼いてみて初めて問題に直面する場合もあったりするので油断できない

 

逆に開発PCからの読み込み速度を速度制限しないモードはホストモードなどと呼ばれて

おり開発者も風通はこちらを使っている(開発者も読み込み時間にはイラついてるからね)

◆ 思い出のPCパーツコーナー ~ 悲しき恐竜 WD VelociRaptor

ついでのついでに、私が今まで使ってきたPCパーツのうち、お気に入りだった

PCパーツについても紹介しておこう

 

WD VelociRaptor はSSD黎明期から普及期ごろに Western Digital(WD)が投入した

ハイエンドHDD、一般的なHDDよりも高い回転速度 10000RPM で高速な転送速度を

実現し、 2.5incの本体に装着した 3.5incサイズの大型ヒートシンクで発熱対策、安定性

も十分という自作PCマニアが多いに注目したHDDだ

 

当時の紹介記事

https://xtech.nikkei.com/it/article/COLUMN/20080529/304825/

https://ascii.jp/elem/000/000/136/136686/

https://pc.watch.impress.co.jp/docs/2008/0422/wd.htm

 

外見も高級感があり音も静かで、自分としてはかなり気に入って使っていた

 

とは言え、価格や容量ではSSDに優位を取れるかもしれないがアクセス速度や

転送速度ではSSDには敵わず、SSDが低価格化/大容量化が進むにつれ VelociRaptor

の様なハイエンドHDDはその存在意義を失ってしまう

 

特に同時期に現れた NVMe規格のSSDはSATAに繋ぐストレージとは別次元の性能を

持っており、PC用のストレージはHDDからNVMe規格SSDが主流となって行ったのである

 

その後、HDDメーカーはデータセンター向けの大容量/高耐久の製品に力を入れ

ターゲットの市場を変え生き残っている、WD VelociRaptor は速度を求めた

ハイエンドHDD、その黄昏の時代を生きた最後の恐竜なのだ

https://www.storagereview.com/ja/review/western-digital-velociraptor-1tb-review

 

作者
  Y・K
  PG

目次

目次を生成中...