ゲームにリアルタイムチャットを実装する方法についての探索
序章
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を採用し、既存のシステム構成に組み込む方向で進展しています。
よろしければサポートをお願い致します。いただいたサポートは新作ゲーム開発のための費用として使わせて頂きます。