ロード時間
ゲームプレイ中にデータの読み込みによって待たされる時間。
ゲームをする上でフレームレートと同じくらい私は気になるタイプです。フレームレート検証の開始が去年の8月なので新ツールはおよそ半年ぶり。(一応googlePhotoのURL解析器なんかも作ってましたが・・・)
で、どうやって検証するのがいいのかなと考えた結果・・
- 計測時間を同じにすることで他のゲームとの比較ができる
- アップデートの効果も比較できる
- ある程度のゲームループを体験できる必要がある
以上のことからまずは10分間で検証してみることにしました。将来的に時間を伸ばしたりするかもしれませんが、一旦。
フレームレート検証と同じく動画から算出する方法をとります。フレームレート検証の場合と異なり、自動化するのがすぐには無理な印象なので手作業で時間(キーフレーム)を打ち込んでいきます。
60fpsの10分動画で36000F。さすがに毎フレーム人力チェックは厳しいのでかなり緩めに打ち込むことにします。また、実際にロードしているのかどうかは目視でしかわからないのでかなりざっくりなロード時間検証です。
C# + OpenCV
フレームレート検証ツールと同じくC#+OpenCVの組み合わせ。
動画周りはそのままコードが流用できたので比較的簡単に実装できました。
ところがハマったのが、チャート周り。グラフを表示するのに凄く便利ですが、出て欲しい形に調整するのにかなり時間がかかりました。(最終的にかなり妥協しました)
ロード時間検証
さっそく検証してみました。
ツール開発中ちょうどロード時間周りで話題になっていた「jump force」でやってみます。パッチでロード時間の短縮と書かれているので検証するにはもってこい。
ノーパッチ(1.00)とパッチ適用済み(1.03)で検証。10分でキャプチャしたものの、さすがに10分も見てられないので10倍速。
赤色がloading時間。1.00では51.00秒、1.03では36.83秒でたしかにロード時間が短縮されていました。
2回目。1.00では47.50秒、1.03では31.50秒。だいたい15秒くらい早くなっている印象です。まだまだ遅いと感じますが、今後も改善を続けるそうなので期待です。
個人的に10秒を超えると長いと感じますが、世間的にはどうなんでしょうか。
やってみて
10分間のうちのロード時間の割合を取ってみましたが、あんまり意味がなかったです。
というのもplayableの時間を完全に揃えないと他の割合が上昇するので・・ちょっと考えればわかることでしたね。。。
よってリザルト表示も全く意味がないものになってます。
ただ、バージョンまたぎでの比較には使えないけど、ゲーム同士の比較にはもしかしたら使えるかもしれません。例えば、10分間のゲームプレイでの充実度とか?それでもプレイの仕方によってplayableが変動するなら何回か試さないと行けないから微妙かあ・・playable時間が決まっているものならいけるかも?
とりあえず10分間という時間制限をつけずに1回のゲームループがどんなものか、という方向性のほうがいいかもしれないですね。
追記(2019.03.09)
ゲームのロード時間を検証しよう2 に続きます。