私は、サーバーサイドスクリプト用にNode.jsを使用してマルチプレイヤーターンベースのゲームを実装しています。 ゲームは独占と同じです。複数の部屋とシングルルームには複数のプレーヤーがあります。 私はすべての部屋のためにタイマーを実装する次のように、私は多くの記事を行っている、私は2つのオプションがあります。マルチプレイヤーベースのゲームでタイマーを実装する最も良い方法はどれですか?
1}私は一度に各プレイヤーに、現在の時刻と発光すると、彼らは、タイマーを処理し、放出されますターンやタイムアップでサーバーに接続する。
2} Iサーバのタイマを管理し毎秒で発光が、Node.jsのiが複数を管理する方法についてのsetInterval()次いで単一スレッドであるとしても、サーバへの負荷を作成混乱させるであろうことができます複数の部屋。それが待ち行列に追加され、待ち時間が作成されます。
ですので、私に最高のオプションをお手伝いください。
はい、私はそれをすることができますが、誤ってすべてのプレーヤーがオフになったり、ソケットを切断した場合、どうすればいいですか?私はそれのためのイベントを作成する必要がありますか? –
この場合、デフォルトでクライアント側のタイマーに依存し、発生する時間ドリフトを無視することができます。一般的に、この不正確さは、関係なく、ミリ秒のオーダーに過ぎません。 また、プロジェクトの機能に応じて、タイマーをフリーズし、切断を示す一時的なエラーメッセージを表示することができます。 – RamV13
はい、可能かもしれません。私はサーバー側で試してみましたが、部屋が増えるとゴーストのような時間がかかります。 –