SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

グランブルーファンタジーの「次なる10年」に向けて、100万行を超える大規模なシステム再構築の裏側とは

【15-D-3】『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~

  • X ポスト
  • このエントリーをはてなブックマークに追加

 2024年2月15日、16日の2日間に渡り、ベルサール羽田空港にてCodeZine編集部主催のイベント「Developers Summit(デブサミ)2024」が開催された。株式会社Cygamesでサーバーサイドエンジニアを務める伊藤顕二郎氏と穴久保拓磨氏によるセッション「『グランブルーファンタジー』100万行を超える大規模なシステム再構築 ~10周年のその先へ~」では、同社が開発・運営するスマホ向けRPGゲーム「グランブルーファンタジー」で100万行にも及ぶリファクタリングとシステム再構築を行った事例の紹介が行われた。

  • X ポスト
  • このエントリーをはてなブックマークに追加

10年間の運用で積み重なる課題

 株式会社Cygamesが開発・運営する王道スマホRPG「グランブルーファンタジー(グラブル)」は、2024年3月10日でサービス開始より10周年を迎える人気ゲームで、2024年2月15日時点で登録者が3600万人を突破するなど今なお数多くのユーザーによってプレイされている。しかし、この人気の裏では長年に渡る運用の過程でさまざまな課題が積み重なっていた。

 「グラブルはアプリ審査が不要なブラウザ向けゲームのため、機能追加やイベント、キャンペーンなどのアップデートを高頻度で行うことが可能となっています。そのため毎月10回以上、数万行に及ぶソースコードの変更を伴うアップデートを長年続けてきました。そのアップデート頻度を維持するため、本来は開発時に構造から修正すべき実装についても、追加開発では大きく構造を変えず、影響範囲を小さくするように開発を行ってきました。このような開発スキームの影響でコードの多重化や可読性の低下、技術負債の蓄積、属人性の増加といったさまざまな課題が蓄積されていました」(伊藤氏)

Cygames グランブルーファンタジー/サーバーサイドエンジニア 穴久保 拓磨氏
Cygames グランブルーファンタジー/サーバーサイドエンジニア 伊藤 顕二郎氏

 その結果、機能追加のたびに複雑な仕様やソースコードと格闘しなければならなくなっていた。さらにはソースコードの複雑化により、メンテナンスが初期実装者に偏ることで、属人化の問題も顕在化してきた。また、ソースコードのみならず機能追加によるデータアクセスも増加し、データベースやキャッシュサーバーに掛かる負荷も次第に高まっていた。

 こうした運用面での課題に加え、技術面においてもさまざまな課題が持ち上がっていた。例えばコードは初期のアーキテクチャが手続き型で実装されていた事に加え、長年の運用により密結合な状態になっており、拡張性やメンテナンス性が低い状態になっていた。データについても一元的に管理できておらずデータアクセスも最適化されていなかった。データアクセスが増えデータベースやキャッシュサーバーの負荷も増加する一方で、WEBサーバーの負荷も増加を続けていた。

 長年の運用の末にソースコードにして300万行、テーブル数が3万超、アクセス数が秒間28万という巨大サービスに成長した今、それらの課題に直面し、アーキテクチャの限界や老朽化を感じていた。その結果「度重なる拡張によって初期のシステムが老朽化していると考え、グラブルの次の10年を支えていくために、ゲーム業界でも最大規模の100万行を超えるシステムの再構築にチャレンジすることになりました」(伊藤氏)

100万行超の大規模リファクタリングを断行

100万行超の大規模リファクタリングの方針

次のページ
設計思想や実装意図まで徹底的に読み解いた設計フェーズ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 セッションレポート連載記事一覧

もっと読む

この記事の著者

吉村 哲樹(ヨシムラ テツキ)

早稲田大学政治経済学部卒業後、メーカー系システムインテグレーターにてソフトウェア開発に従事。その後、外資系ソフトウェアベンダーでコンサルタント、IT系Webメディアで編集者を務めた後、現在はフリーライターとして活動中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山出 高士(ヤマデ タカシ)

雑誌や広告写真で活動。東京書籍刊「くらべるシリーズ」でも写真を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:株式会社Cygames

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19194 2024/04/23 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング