モンキー言語(クロスプラットフォームトランスレーター)でターン制のゲームを作ろうとしています。ゲームはHTML5プラットフォームを使用します。このゲームはオンラインでプレイされ、プレイヤーはお互いに対戦できます(2対2の対戦の場合もあります)。私は最近たくさんの解決策を検討しました、そして私はそれらのうちの2つに立ち寄りました。古き良きXmlHttpRequestと新しいWebSocketは、かなり良いW3Cからの推奨状態にあるようです。私が興味を持ったもう1つのテクノロジーは、プッシュサービスであるPubNubです。このサービスは実際に接続されているすべてのクライアントにメッセージをプッシュし、非常に高速です。しかし、これは後でコストがかかり、送信するメッセージの数に制限があります。つまり、1000の接続と100万のメッセージで月額15ドルかかり、さらに100万のメッセージで+ 1ドルかかり、続行します。実際には3人の俳優がいます サルで書かれたクライアント(HTML5)C#で書かれたサーバー。メッセージをブロードキャストするための言語とPubNubをよく知っているからです。クライアントはサーバーにのみリクエストを送信し、サーバーはメッセージをPubNubに中継し、PubNubはクライアントに送り返します。私はそれらの事実を考慮して頭の中で2つの計画を持っていました:
- ゲームはHTML5で書かれていますが、他の言語(例としてAndroid)に移植することもできます。WebSocketを使用している場合、これを処理するために追加のライブラリを取得する必要があり、それにもっと時間を費やしたくないので、それを行うことはできません。だから私は今のところHTML5に焦点を合わせますが、それを移植することは常にオプションです。
- ターン制のゲームなので、XmlHttpRequestはこのタスクに適しているようですが、どの時点でですか?1000を超える接続があり、リクエストを送信している場合、それをサポートできますか?各ターンは一意のリクエストですが、チャットメッセージもリクエストとプライベートメッセージであり、プレーヤーデータも取得します(ゲームに参加する前に)。WebSocketよりも優れている点は、Http Getの作成が簡単で、多くのプラットフォームで簡単にサポートされることです。だから、これを選択すれば、明らかにAndroidルートに行くことができます。
- ここに記載されているテクノロジー以外のテクノロジーに多くの時間を投資したくありません。
- PubNubは最終的にはお金がかかりますが、メッセージをプッシュするのに非常に効率的であるため、PubNubを使用しないとリスクが高くなり、コードをリレーするメッセージを自分で実行する必要があります。
だからここに私の4つの計画。
- WebSocketを使用して、AlchemyをC#用のWebSocketServerとして使用します。これは、テストしてすばらしい動作をし、メッセージを中継するためのバックエンドにPubNubアクターがあります。
- XmlHttpRequestsを使用して、リクエストゲートウェイに単純なWebAPIを使用します。
- 両方で行きます。選択するテクノロジーに応じてクライアントを独立させます。フォールバックとしてXmlHttpRequestを使用し、サーバーが両方の接続をサポートするようにします。PubNubは、ここでも中継アクターであり、すべてを通信させる必要があります。
- WebSocketを使用しますが、PubNubは使用しません。
それで、あなたは私に行くように勧めるルートとその理由を教えてください。
ありがとう!