【发布时间】:2011-03-06 19:32:37
【问题描述】:
我正在考虑在Node.js 中创建一个网络多人游戏。这意味着我将在后端和前端使用相同的语言。这将是实时的,每个“房间”最多可容纳 20 人,所以我有一些想法:
如何补偿所有用户之间的延迟,以便每个人同时看到相同的内容?我正在考虑跟踪每个玩家的平均 ping 时间,找到最慢的一个,并通知其他客户端他们必须延迟每个人的时间(以毫秒为单位),以便每个人尽可能同步。
我正在考虑在后端和前端运行游戏代码(因为两端都是 JavaScript),并且只有一个纠错机制来与“真实游戏”中的“真实游戏”同步后端。这样,游戏应该在前端流畅运行,并且在同步发生时只有很少的故障。这也将最大限度地减少前端 JavaScript 黑客攻击,因为作弊者将被同步到后端游戏。
我是否应该通过套接字(按键)接收玩家动作,通知所有其他客户端其他玩家的动作,同时在后端“玩”游戏并将同步信息发送给整个游戏状态每隔一段时间同步一下?
你怎么看?还有更多我应该考虑或注意的事情吗?
请发布任何想法或链接到有关多人游戏的文档或文章。
编辑:这些很有用:
- Gaffer on Games - Glenn Fiedler 撰写的关于多人游戏网络和物理的非常好的文章
- The Quake3 Networking Model
【问题讨论】:
-
更多关于地震网络模型可以在这里找到:bluesnews.com/abrash/chap70.shtml
标签: javascript node.js multiplayer