解決策
GTAオンラインの悪名高い長いロード時間は、プレイヤーの間で笑い話になっていた。ゲームに入る前に6分以上もロード画面を見つめるのだ。2021年3月、t0stとして知られるコーダーがそれにうんざりし、ゲームを分解して独自の修正を考案した。
原因はありふれたものだった。GTAオンラインの開発者が、数メガバイトの大きなJSONファイル内のデータを解析し、その後ソートする方法にあった。t0stの修正は、彼自身の非公式なベンチマークによればロード時間を約70%短縮し、彼の記事は、核となる解析と保存の問題は「1人の開発者なら解決に1日もかからないはずだ」と指摘していた。
2週間以内にRockstarはt0stに連絡を取り、彼がPC版のロード時間に関する真の改善を明らかにしたことを認め、バグ報奨金プログラムに基づいて1万ドルを支払い、今後のタイトルアップデートで変更を実装することを約束した。
達成したこと
6分間のロードは、数メガバイトのJSONファイルに対する1回のCPU依存の解析とソートに帰着した。1日で直せる修正が、何年もの間、目の前に隠れていたのだ。
うまくいった理由
起動のたびに実行されるスタートアップコードは目の前に隠れている。ずっと遅かったものは誰もプロファイリングしない。
数メガバイトのファイルに対する非効率な解析とソートは、起動のたびにプレイヤーの待ち時間を数分単位に増幅させる。
逆アセンブラを持ち、先入観のない部外者が、何年もの日常的な開発では表面化しなかったものを数日で見つけた。
応用できること
製品の中で最も遅いものは、誰もプロファイリングしたことのない1つのデータ構造かもしれない。そして時には、逆アセンブラを持つ顧客だけがそれを調べるだろう。
その後
RockstarのPC Gamerへの声明は、t0stが「実際に、ロード時間に関連するゲームコードの側面で改善可能なものを明らかにした」ことを認め、変更は今後のタイトルアップデートで配信されると述べたが、時期は示されなかった。この一件は、ゲームにおけるコミュニティによるプロファイリングとバグ報奨金の支払いの両方について、定番の引用例となった。
出典をたどる
出典
- Developers to update GTA Online to address poor load times after community fix Ars Technica · arstechnica.com ·