ゲームのバックエンドシステムといえば、大量のデータを処理するマルチプレイヤーゲームやスマートフォンを使ったソーシャルゲームのものを思い浮かべますが、それ以外にも様々なジャンルのゲームで、バックエンドのシステムが稼働しています。
人気ゲーム機・Nintendo Switch™のゲーム「ファッションドリーマー」(株式会社マーベラス)は、オンラインで世界中のプレイヤーとコミュニケーションを楽しめるファッション&コミュニケーションゲームです。2023年11月に世界同時リリースされました。
開発を担当した株式会社シンソフィアでバックエンド部分を担当された、開発部のサーバーエンジニアである小野崎さんと遠藤さんにお話を伺いました。
大規模なDAUが想定されるバックエンド設計
ファッションドリーマーは2023年11月に発売された、全年齢を対象としたトップインフルエンサーを目指すゲームです。仮想空間でファッションを楽しみながら、ほかのプレイヤーにコーディネートを提案したり、「いいね」を送ったりしてコミュニケーションします。
ファッションドリーマーの開発は2021年春に始まりました。当初、小野崎さん・遠藤さんにはシステム規模に関する不安事項がありました。
「私や遠藤は、DAU(※)が1万くらいのソーシャルゲームを扱った経験があります。しかし、世界同時発売のコンシューマーゲームに取り組むのは今回がはじめてでした」(小野崎さん)
※DAU:デイリー・アクティブ・ユーザーの略。1日に1回以上接続や行動を取ったユーザー
ファッションドリーマーの想定DAUはそれを大きく上回ります。さらに、二人とも他にも様々な業務があり、インフラ設計をメインとしていたわけではありません。
「全世界で遊ばれるゲームのインフラを担当したことがなく、インフラの組み合わせやアプリケーション設計、さらに負荷試験をどう行うのかなど、不安要素がたくさんありました」(小野崎さん)
「インフラ周りの知識や経験はありましたが、規模の大きなサービスに対してどうしたら良いのかは、わかりませんでした」(遠藤さん)
世界同時発売についても、仕組みや体制面で気になる点があったそうです。
「主に日本アジア版・欧州版・米国版と分かれますが、リリースのタイミングを日本に合わせるのか各国に合わせるのか、検討しなければなりませんでした。日本に合わせるのであれば負荷のピークが高くなります。各国に合わせるのであれば負荷は分散されますが、すべての発売タイミングをピークと捉えて運用を考える必要がありました」(小野崎さん)
そして、通信方式がソーシャルゲームと大きく異なっているのも懸念点だったと言います。
「多くのコンシューマーゲームやスマートフォンのゲームは、ユーザーがアクションするとすぐに通信が発生して、レスポンスが返って来ます。今作では通信内容を数分間保持し、一定のタイミングでクライアントからまとめて送る仕様になっていました」(小野崎さん)
社内のインフラエンジニアは専業ではない小野崎さんと遠藤さんの二人でした。これらの懸念を抱え、インフラ面では心強いパートナーが必要な状況だったのです。
大規模の負荷試験の実績があるパートナーを
クラスメソッドへ依頼したのは2022年の初頭。本番の想定をしてインフラを構築しはじめなければならない段階にさしかかっていた時期でした。
「大規模の負荷試験の知見があり、アドバイスをいただけるパートナーが必要でした」(小野崎さん)
それまでにAWSに触れた経験があり、AWS Japanからパートナー企業としてクラスメソッドを紹介されたのがきっかけです。
他社とも相談はしていたとのことですが、世界同時リリースという規模感や、固まっていない仕様があったことで、契約に至れなかったケースもあったとのことです。
「クラスメソッドさんが、臆することなく引き受けてくれたのがとても心強かったです。技術ブログのDevelopersIOの読者でよく知っている企業でしたので、安心できました」(小野崎さん)
クラスメソッドより提案した支援内容は主に以下の通りです。設計から構築、そして負荷試験やゲームリリースまで幅広く支援しています。
・システムアーキテクチャ設計支援
・AWS環境構築
・負荷試験の支援
・ゲームリリースの支援
・AWS全般の技術Q&A対応
コンシューマーゲーム開発のスケジュールに合わせて伴走
当初は同年夏ごろまでに開発環境、ステージングおよび検証環境、本番環境を構築する予定でした。
「コンシューマーゲームの場合、発売ギリギリまで開発できるわけではありません。例えば発売の数ヶ月前には、パブリッシャーや関係各社によるチェックが入ります。その時点で本番環境が構築できていなければいけません」(小野崎さん)
「緊急の依頼にも優先度を上げてサポートしてもらえました。負荷試験の結果が良くないときに、こちらで考えた対策を確認してもらったり、代案を提案してもらえたのは心強かったです」(小野崎さん)
「クラスメソッドのサポートを受けていることで、大船に乗った気分でいました。内容が高度だと感じることもありましたが、その都度ていねいに説明してもらえたので理解できましたし、構築を進める上で心配はありませんでした」(遠藤さん)
そしてインフラは無事に構築が完了し、発売日を無事に迎えることができました。
「負荷対策で余裕を持った設計ができていましたので、発売した後は、過負荷で悩むことはありませんでした。負荷の大きさよりも、より効率的に処理を行うために調整することが多かったですね」(小野崎さん)
開発側の気持ちを理解した伴走を
無事にリリースできた背景には、お互いの認識のすりあわせと、サポートがうまくかみ合った点が挙げられます。
「数分に一度、ゲーム機からのデータをまとめて送る通信方式が特殊であったこと、コンシューマーゲームならではの作り方を、まず共有しました。その上で、ゲーム制作の進め方や負荷を確認する方法などについて、我々とは異なる視点から意見をもらえたのはありがたかったです」(小野崎さん)
「ドキュメント作りもこちらから依頼したことはなかったのですが、先回りしてナレッジをまとめてくれました。また、負荷試験においては指標とすべき値を算出するため、基準値を入力すると、実際に指標とすべき値を計算してくれる表計算シートを作ってくれて助かりました」(遠藤さん)
社内の技術領域の中で、メインにならない部分はどうしても人員を割けなかったり、兼務で担当することになります。一時的にエンジニアを増やしたからといって、プロジェクトがうまく遂行できるとは限りません。
「我々のようにインフラ構築が常時必要ではない場合、インフラエンジニアが余ってしまう時期があったり、逆に大規模なシステムを構築したいときに不足してしまうことがあります。必要なときに力のあるパートナーにサポートしてもらえるのは、効率的だと思います」(小野崎さん)
「企業の規模によりますが、インフラに専念できるエンジニアを揃えられないプロジェクトもあると思います。自社ですべて完結させるのは無理があるので、そうした時に力を貸してもらえるのはとても助かります」(遠藤さん)
クラスメソッドは、今後もシンソフィアのゲーム開発を支援してまいります。