導入事例一覧

導入事例

ZigZaGame、Tokyo Debunker で WebSockets を使わない低レイテンシのメッセージングを実現

ZigZaGame は Momento Topics を活用し、Tokyo Debunker のチャットや協力プレイで、WebSockets の管理なしに低レイテンシのリアルタイム通信を実現しました。

ZigZaGame の事例の主な成果を三つ紹介する図
ZigZaGame の Topics 導入成果:WebSockets を廃止し、実装するコードと Lambda 関数を削減。低レイテンシによりレイドの双方向通信を改善し、リアルタイムのギルド戦も実現しました。インフラ管理を減らし、ゲーム開発により多くの時間を使えます。

世界でモバイルゲームを展開する ZigZaGame は、122 か国で 1,000 万ダウンロードを記録した Evertale に続き、2024 年 4 月に最新作 Tokyo Debunker をリリースしました。Momento Cache と低レイテンシのイベントバス Momento Topics は、バックエンドの高速化とスケーリングを支えています。これにより ZigZaGame は、ファンに喜ばれる新機能や新作の開発に集中できます。

ZigZaGame の CTO、Tom Delorenzi 氏に、Cache と Topics を使った Tokyo Debunker のリリースについて伺いました。

Tokyo Debunker(TD)について教えてください。

Tokyo Debunker は、キャラクターを集めながら気軽に楽しめるモバイルゲームです。プレイヤーは学生記者となり、個性豊かなクラスメートであるグールたちと東京各地の怪事件を調査し、バトルでモンスターを倒します。没入感のある物語とコミック調のビジュアルが特徴です。チャットや協力プレイもあり、ほかのプレイヤーとクエスト、レイド、ギルド戦に参加できます。従来の Evertale は戦争を題材にしたゲームで、対象ユーザー層も大きく異なります。TD は、私たちにとって新しいジャンルへの挑戦です。

Tokyo Debunker のキャラクターとゲーム画面
Tokyo Debunker のゲーム画面。

TD の技術構成について教えてください。

プラットフォーム全体を AWS 上に構築しており、サーバーレスを第一に考えています。Momento の Cache と Topics の両方を利用していて、この二つのサービスが TD のインタラクティブな体験を支える基盤になっています。

TD に Momento Topics を導入しようと考えたきっかけは何ですか。

以前のタイトル Evertale に Momento Cache を導入したところ非常にうまくいったため、Tokyo Debunker にも採用することにしました。今回は新たに、WebSockets を Momento Topics に置き換える選択もしました。Tokyo Debunker には低レイテンシの双方向通信に依存する機能がいくつもあります。WebSockets の管理に時間を取られず、より良い方法で実現したいと考えたのです。

なぜ WebSockets を置き換えたかったのでしょうか。

Evertale のチャットには WebSockets を使っていましたが、購読管理のために相当量のコードを Lambda で作成し、保守する必要がありました。運用面でもインフラ面でも、コストがかかっていました。

従来の WebSockets 構成には、接続情報を管理するための API Gateway と Lambda がありました。

Evertale(従来のアーキテクチャ)

Momento Cache を使用した Evertale の従来の構成
Evertale の従来構成:クライアントが API Gateway の WebSocket API に接続し、$connect と sendmessage のルートを Lambda 関数で処理します。Lambda が Momento Cache とデータをやり取りします。

Momento Topics によって、アーキテクチャは大幅に簡素化されました。クライアント側 SDK、購読管理、認証、API 層、メッセージバスを Momento が提供します。必要なものがそろっているので、内部の細かな仕組みを気にせず、メッセージの発行と購読に集中できます。

Tokyo Debunker(新しいアーキテクチャ)

Momento Cache と Topics を使用した Tokyo Debunker の構成
Tokyo Debunker の新構成:ユーザーと Lambda が Momento Cache を利用し、Momento Topics を通じてメッセージを発行・購読します。

Evertale の pub/sub と、Tokyo Debunker での Topics の実装には、大きな違いがいくつかあります。Evertale は「プル型」でしたが、Tokyo Debunker は「プッシュ型」です。Topics がクライアントにメッセージを配信します。キープレフィックスごとにトピックの認証を柔軟に設定でき、クライアントが自分に必要なデータを取得できるため、データ取得をクライアントに任せてサーバーの負荷を減らす選択肢が広がりました。

従来の構成から Momento Topics への移行は、全体として容易でした。主要なコードを書くのにかかったのは、わずか数日です。数か月のテストを通じて、権限、トークン、上限の引き上げ、タイムアウトについて理解を深めました。最終的には Momento のチームと調整し、Tokyo Debunker の円滑な本番リリースに備えました。

新しい技術を使った新作ゲームのリリースは大きな挑戦です。TD のリリースはどうでしたか。

Tokyo Debunker のリリースは順調で、成功しました。初日から問題はごくわずかで、Momento に関する問題はありませんでした。

TD では具体的にどの機能に Topics を使っていますか。新しい製品として、どのように導入を進めましたか。

まずチャットシステムに Topics を導入して試した後、ほかの数人のプレイヤーと協力してボスと戦うレイド機能にも適用しました。こちらは Topics にとって、もう少し負荷の高い用途です。プレイヤーは一日に 2 回参加でき、報酬を得られます。ゲームのリリース時からこの機能を提供しており、順調に動いています。

Tokyo Debunker のレイド機能で協力してボスと戦う画面
ほかのプレイヤーと協力してボスと戦う、Tokyo Debunker のレイド機能。

2024 年 4 月にリリースしたレイド機能の成功を受け、大規模な戦闘とリアルタイムのゲームプレイを実現する戦争機能「Game of Claws」にも Topics を適用しました。pub/sub の規模も大きい機能です。

  • プレイヤーはギルドを結成し、リアルタイムの戦闘からなる 2 週間の戦争に、月に 2 回参加します。
  • ギルドは、ゲーム独自の収集対象である猫たちがいる城の占領を争います。城を防衛したり攻撃したりして報酬を獲得し、2 週間の終了時に最も多くのポイントを集めたギルドが勝利します。
  • レイド機能よりもプレイヤーにとって勝敗の重みが大きく、得られる報酬も多くなります。

これは Topics にとっても、はるかに負荷の高い用途です。すべての戦闘が、毎日 1 回、45 分間に集中して行われます。レイドと異なり、戦争のバトルはリアルタイムで、2 秒ごとのアクションが想定されるため、レイテンシへの要求は非常に厳しくなります。私たちはこれを、Topics にとってのミッションクリティカルな、真のリアルタイム性の検証と捉えています。2024 年 7 月に公開し、とてもうまくいっています。

また、Topics を使う共通の機能からも、Evertale と Tokyo Debunker の違いをすでにいくつか実感しています。

  • Evertale と Tokyo Debunker の両方には、戦闘を再生できるリプレイ機能があります。Topics を使う Tokyo Debunker では、Momento から直接リプレイを取得できるため、Evertale よりも低いレイテンシで利用できます。
  • アーキテクチャの変更は、Evertale と比較した場合、Tokyo Debunker のギルド戦機能にも効果をもたらします。

Momento の技術は、今後のゲームに対するチームの考え方にどのような影響を与えましたか。

ゲーム開発者は、できる限り良いゲームを作ることに集中しています。私はエンジニアとして、その構想を実現する解決策を探し、常により良い方法を考えています。Momento の技術によって、新しい方法で改善できるようになりました。新たな機能に加え、時間と費用にも余裕が生まれることで、今後のゲームのアイデアづくりにも役立ちます。翌年には別のタイトルをリリースする予定で、引き続き Momento のプラットフォームを基盤に開発する計画です。

Momento の成果は、主にコストと信頼性で評価しています。コストは容量ではなく利用量に比例します。信頼性については、これまでと同じ水準を維持してくれれば、私たちは今後も満足して使い続けられます。

Momento との協働は、どのように始まったのでしょうか。

前年の 2023 年、接続の急増による障害を経験した私たちに、AWS のソリューションアーキテクトである Matt Nimmo 氏が Momento Cache の検討を勧めてくれました。当時、私たちはサーバーレスを第一に考える方針を固め、Lambda に全面的に移行していました。従量課金と、ゲームの季節的な負荷増加に対応できる伸縮性を気に入っていたからです。ただ、Lambda への移行は簡単ではありませんでした。ElastiCache Redis が Lambda からの接続の急増に追いつかず、プレイヤーの体験を損なうおそれがありました。

Evertale のゲーム内チャットに Momento Cache を導入すると、Momento のルーティング層が接続の急増を吸収してくれました。Lambda で気に入っていた、利用量に応じた料金体系も備えています。Momento Cache は既存の構成に円滑に組み込め、接続の急増にも対応し、期待どおりに動作しました。導入にかかったのは、わずか 3 週間でした。

Momento の利用を検討しているほかのゲーム会社に、アドバイスはありますか。

PoC は、範囲が限定され、影響の小さいワークロードから始めることを勧めます。たとえば、私たちはまず既存タイトルの Evertale のゲーム内チャットに Momento Cache を導入しました。これにより、ゲーム全体に影響を与えるリスクを抑えられました。

結果として、Momento Cache と Topics は信頼性が高く、使いやすかったため、Tokyo Debunker や 2025 年に予定している新作など、今後のタイトルにも採用することにしました。