2012-10-09 106 views
2

哪个是管理时间和实时事件的最佳方式?在Node.js中管理时间的最佳方式是什么?

我正在用Node.js实现一个小型多人RPG游戏。 我有很多NPC,每3秒或4秒移动一次,所以我需要更新它们。

解答A: 每个NPC使用一个setTimeout。如果我有数百个NPC,我会创建定时器。 它更简单,但效率不低?

解决方案B: 对所有NPC使用一个setTimeout。每次我们通过计算NPC移动前剩余的最小时间来调用下一次超时。 所以我们必须使用更复杂的代码,但我们只有一个setTimeout

有更好的方法吗?

+0

我不是RPG术语。你能解释一下PNJ的含义吗? –

+0

我使用法语单词作为NPC(非玩家角色)。对不起,这是编辑。 – BAK

+1

也许这[问题/答案] [1]会对这个问题有所了解。 [1]:http://stackoverflow.com/questions/12168708/is-there-any-limit-to-settimeout –

回答

0

如相关问题所述,setTimeout便宜。但是,这不是免费的。

您可以像memcached一样使用单一的setTimeout。它有一个大阵。每秒钟,它检查这个数组的第一个项目(或最后一个),看看是否有需要完成的事情。如果有,它就这样做。然后,它删除该项目。冲洗并重复。

这是实现背后的基本思想。通过考虑空桶或类似的东西,你可能会获得更好的性能,但是一个简单的实现应该是相当高性能的。

相关问题