見出し画像

ゲームにリアルタイムチャットを実装する方法についての探索

序章

Feelcercaのゲーム『Bunny and Reversi』などのプロジェクトは、Google Cloud Platform(GCP)の多岐にわたるサービスを活用しています。以下はその具体的な構成です。

GCPを活用した構成

  • Cloud Storage: Webサイトやゲームのアセット管理場所

  • SQL: MySQLを使用したデータベースでのゲームデータ管理

  • Compute Engine: CentOSのVMインスタンスをAPIサーバとして、Go言語とRevelフレームワークでREST APIを開発。SQLとの接続はCloud SQL Proxy経由

  • Cloud Load Balancing: ロードバランサ(HTTPS負荷分散)

  • Cloud CDN: バックエンドバケットに利用

  • Cloud DNS: ドメイン管理

この構成により、全体のサーバー費用を効率的に抑えることが可能になりました。

リアルタイムチャット機能の追加に向けた検討

今後の展開として、リアルタイムチャット機能の追加を計画しています。以下は、そのための方法についての検討結果です。

  • 現状のAPIサーバとポーリング: 採用せず

  • gRPC: Go言語とC#に対応している利点があるが、導入には懸念があり却下

  • Photon Chat: 使いやすさに魅力があるものの、コストの問題で却下

  • Firebase Realtime Database: 既存プロジェクトとの相性とコストで最有力

  • AWS AppSync: 比較検討した結果、今回は採用せず

結論

Firebase Realtime Databaseの採用が最適であると判断されました。その他のmBaaSサービスと比較しても、Firebaseが最良の選択であると結論づけられました。

現状の構成を変更するかのような大きな調整は、今回は不要と判断しました。このため、計画はFirebase Realtime Databaseを採用し、既存のシステム構成に組み込む方向で進展しています。

よろしければサポートをお願い致します。いただいたサポートは新作ゲーム開発のための費用として使わせて頂きます。