2

時間とリアルタイムのイベントを管理するための最良の方法はどれですか?

Node.jsを使用して小さなマルチプレイヤーRPGゲームを実装しています。私はたくさんのNPCを持っていて、それぞれが3秒または4秒ごとに移動するので、それらを更新する必要があります。

解決策A:setTimeoutNPCごとに1つ使用します。NPCが数百人いる場合は、タイマーとして作成します。それはもっと簡単ですが、効率が悪いわけではありませんか?

解決策B:setTimeoutすべてのNPCに1つ使用します。毎回、NPCが移動する前の最小の残り時間を計算することにより、次のタイムアウトを呼び出します。したがって、より複雑なコードを使用する必要がありますが、1つしかありませんsetTimeout

それはより良い/他の方法ですか?

4

1 に答える 1

0

関連する質問が言うように、setTimeout安いです。ただし、無料ではありません。

setTimeoutmemcachedが機能するのと同じようにシングルを使用できます。それは単一の大きな配列を持っています。毎秒、この配列の最初の項目(または最後の項目)をチェックし、実行する必要のあるものがあるかどうかを確認します。ある場合は、それを行います。次に、アイテムを削除します。すすぎ、繰り返します。

これが実装の背後にある基本的な考え方です。空のバケットなどを検討することでパフォーマンスが向上する可能性がありますが、単純な実装はすでにかなりのパフォーマンスを発揮しているはずです。

于 2012-10-16T16:06:59.327 に答える