2016-12-29 6 views
1

node.jsでリアルタイムマルチプレイヤーを開発するための答えが見つからない現在、私は小さなチームを持っていて、iosとAndroidの間でクロスプラットフォームになるリアルタイムのマルチプレイヤーボードゲーム(ターンベース)を構築したかったのです。マルチプレイヤーサーバーとしてPhotonまたはSmartfoxを購読するには予算外ですので、独自のnode.jsサーバーを設定することをお勧めします。しかし、リアルタイムマルチプレイヤーゲームの開発にはそれほど新しいものではないので、node.jsがリアルタイムマルチプレーヤーボードゲーム用の正しいサーバーであるかどうかの判断にはまだ苦労しています。node.jsを使用したUnityリアルタイムマルチプレイヤー(IOSとAndroidを使用したクロスプラットフォーム)

私たちは、UDPの代わりにTCPを使用しているためnode.jsの速度が遅いと述べた開発者もいますが、マルチプレイヤーサーバーとしてnode.jsを使用したポスト/チュートリアルを読んでいます。

リアルタイムマルチプレイヤーゲームを開発する際に誰もがnode.jsをサーバーとして使用しているかどうかを知りたがりましたか?

+1

はい。私はnode.jsをお勧めします。それはターンベースのゲームなので、信頼性のためにTCPがより良い選択肢です。 – Bijan

答えて

0

ノードは、TCPやUDPを行うことができ、リアルタイム・サーバなどの素晴らしい選択することができます(ただし、いつものように)いくつかの長所と短所があります。

長所:

  1. ノードがしやすいですデフォルトでは、モジュールと例
  2. の強力なコミュニティや過多が原因のために開発し、サーバーが非同期になり、あなたが本当に何に
を行うことなく、同時接続の多くを扱うことができるようになりますの

短所:あなたがメッセージに応答して任意の計算を行う場合には、ご使用のサーバーから他のすべての応答をブロックしているので、

  1. デフォルトノードによっては、すべての接続のための1つの論理スレッドで実行されます。したがってノードは、計算量が少なくても高いI/Oサーバーに最適です
  2. リアルタイムサーバーが多数のオブジェクトを作成して破棄すると、サーバーを効果的に停止するガベージコレクターがトリガーされます。これは通常、すぐに完了し、それが終了すると、サーバーが低い計算され、そして時折マイナーの待ち時間を扱うことができる場合は、すべての受信要求がサービスされますが、それはあなたがそう
  3. レイテンシー

でocasionalスパイクを取得する意味はありませんスパイク、ノードjsは良い選択です。

複数のインスタンスを一度に実行できるようにサーバーを設計することをお勧めします。処理ボトルネックを回避する場合と同様に、複数のサーバーインスタンスを追加することで単純に水平方向に拡張できます。

継続的な低レイテンシが必要な場合は、golangを調べることもできますが、書き込みは難しいです。

関連する問題