11年続くゲームの、増え続けるバランスの最適化 ノート
HackerNoon 日本語

11年続くゲームの、増え続けるバランスの最適化

War Robots は、膨大なコンテンツのために「バランス」と呼ばれるゲームデータを保存しています。これらのバランスは、メタゲームプレイとコアゲームプレイに分かれており、デフォルトモードとスカーミッシュモードで別々のセットが用意されています。11年以上にわたり、ゲームはかなりの量のコンテンツを蓄積してきたため、バランスファイルのサイズが大きくなっています。当初、メタバランスは 9.2 MB、コアバランスは 13.1 MB で、プレイヤーのダウンロード総容量は 44.6 MB でした。この問題に対処するため、開発チームはバランスファイルのサイズを分析し、文字列がかなりの割合を占めていることを発見しました。彼らは重複した文字列を特定するためのツールを開発し、それらが非常に多く存在することを発見しました。解決策として、各バランスにユニークな文字列ストレージを作成し、直接的な文字列インスタンスをインデックスに置き換えました。これにより、文字列の使用回数が大幅に減少し、効率が向上しました。さらなる最適化として、データプロトコルが改修され、文字列キーを持つ MessagePack から、数値キーを持つバイナリバイト配列への移行が行われました。空のコレクションも削除され、データサイズと処理時間がさらに削減されました。新しい機能はトグルで有効化されるようになり、古いバージョンと最適化されたバランスバージョンの両方を同時にサポートできるようになりました。リフレクションを使用した厳密なテストにより、両方のバランスバージョンが同一の値を出力することが保証されました。これらの最適化により、ファイルサイズは大幅に削減され、メタバランスは 1.28 MB、コアバランスは 2.22 MB になりました。デシリアライゼーション時間も劇的に改善され、クライアント側で必要なメモリも減少しました。チームは、効率的なデータ転送とコスト削減のためには、慎重なデータ管理と、特に文字列における冗長性の排除が不可欠であると結論付けました。
CdXz5zHNQW_McKynR1tiz.jpeg