『グランブルーファンタジー』の、100万行を超える大規模なシステム再構築ノウハウを補足解説。「Developers Summit 2024」で行われた講演のフォローアップ記事をサイゲームスが公開

2024.04.11
ニュース
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

この記事の3行まとめ

  • サイゲームスが「【Developers Summit 2024フォローアップ】『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~」と題した記事を公開
  • 2024年2月に行われたデベロッパー向けカンファレンス「Developers Summit 2024」での講演を補足するフォローアップ記事
  • レスポンスタイムを約6割に減少させたアーキテクチャの概要図などが補足されている

サイゲームスは、「【Developers Summit 2024フォローアップ】『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~」と題した記事をCygames Engineers’ Blogにて公開しました。

同記事は、2024年2月に行われたデベロッパー向けカンファレンス「Developers Summit 2024」にて行われた同名の講演のフォローアップ記事となっています。

「『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~」は、2024年3月に10周年を迎えたゲーム『グランブルーファンタジー』の長期運用にあたり発生した問題を解決すべく実施された、大規模な再構築について解説した講演です。

今回公開された記事では、講演で使ったスライドに補足を行っています。なお、スライドはSpeaker Deckにて公開されています。

(画像はSpeaker Deckより引用)

『グランブルーファンタジー』の既存システムは、フレームワーク等を除いたPHPのソースコードだけでも300万行を超え、テーブル数も水平分割を含まない形で9,000テーブル超、パラメーターファイルも5万ファイル超と大規模なものでした。

10年という長い年月の運用によって起きた「コードや仕様の多重化」「属人性の増加」などの問題解決にあたったのは、同作品の開発・運用にあたるエンジニアのうちの6名のバックエンドエンジニアを中心とした専任チームです。

開発効率を最大化するために、設計思想や原理・原則を守ることを徹底し、チームメンバー間での意識の統一を目指しました。そのため、徹底した設計レビューと、新人を1人にしないペアプログラミングを実施したそうです。

新人メンバーと一緒にペアプログラミングをすることで、設計思想を共有しています。

(画像はブログ記事より引用)

今回、講演時に「後日構成資料公開予定」とされていたアーキテクチャ資料も公開されています。

データマネージャーはデータベース、キャッシュ、データトランスファーオブジェクト(DTO)をカプセル化し、管理しています。DTOを使うことで、最新情報を一元的に管理し、データベースの負荷を気にせずにデータを扱えます。

こうして、変更や拡張に強く、データの安全性が高いシステムが構築されました。

リファクタリングされたデータマネージャーのアーキテクチャ(画像はブログ記事より引用)

『グランブルーファンタジー』では、パラメーターデータをRedisを使って運用しています。これにより、リファクタリング前は武器の能力強化機能が増えると、それに紐づくパラメーターデータが増え、武器やキャラクターなどをまとめた編成情報を取得するだけで数百回以上Redisへアクセスする必要が出ていました。

これにより、同時接続数を増やすとパラメーターデータキャッシュに負荷がかかり、処理速度の低下を招いていました。

リファクタリングでは、リレーションするパラメーターデータをまとめたキャッシュとして扱う仕組みを導入。Redisへのアクセスを大幅に抑制しました。

赤く強調表示されているのがボトルネックだったRedis(画像はブログ記事より引用)

ほかにも、仕様の多重化の解決例が紹介されています。

詳細は、こちらをご確認ください。

【Developers Summit 2024フォローアップ】『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~ | Cygames Engineers' Blog

関連記事

2D向けゲームエンジン「GameMaker」で2024年にリリースされる機能は?新しいコードエディターやPrefab機能など、提供予定の機能を紹介する記事をYoYo Gamesが公開
2024.05.20
Adobeの「Substance 3D Modeler」のバージョン1.10.50がパブリックベータに。ブーリアンを使った非破壊プリミティブやオブジェクトのアウトライン管理が可能に
2024.05.20
インディーゲーム紹介番組「INDIE Live Expo 2024.5.25」、情報更新。注目作品として『Hotel Barcelona』『けものティータイム』『Hookah Haze』が発表
2024.05.20
iZotope、高機能オーディオリペアツール「RX 11」を発売。機械学習による超強力なノイズ除去ツールの進化など、注目の新機能を紹介
2024.05.17
VESAによるHDRモニターの認証規格「DisplayHDR」がバージョン1.2へ更新。色域要件の厳格化が行われたほか、新たなテスト手法の追加も
2024.05.17
ゲーム開発者から多く寄せられたSteamの質問と回答をValveが公開。Steam内でゲームが表示される仕組みなど、8つの質問に回答
2024.05.16

注目記事ランキング

2024.05.14 - 2024.05.21
VIEW MORE

イベントカレンダー

VIEW MORE

今日の用語

フォワードシェーディング(Forward Shading)
フォワードシェーディング オブジェクト毎にライティングの計算を行い、その計算結果を描画するレンダリング手法。フォワードレンダリングともいう。ディファードシェーディング(Deferred Shading)に比べてポストプロセスの自由度は低いが、(何も物を配置しなかった際にかかる)最低限の描画コストが低く、アンチエイリアス処理などにおいてフォワードシェーディングの方が有効な分野も存在する。
VIEW MORE

Twitterで最新情報を
チェック!