我正在研究一个学习node.js的项目,并正在寻找有关如何实时处理用户数据同步的建议。
假设您有一个2D矩形 map (大约600x400),许多玩家在该 map 上占据x,y位置。每个用户都可以使用箭头键浏览并以某种基本方式与其他用户交互。假定可以通过HTTP进行播放,那么在处理和同步用户数据以提供最流畅,最生动的体验方面,最佳的设计模式是什么?
我可以考虑几种选择,但希望您能提供更多的想法/说明:
有指针吗?
最佳答案
大多数游戏使用某种形式的航位推算http://en.wikipedia.org/wiki/Dead_reckoning,它允许从服务器分发延迟的更新,但保留了客户端上实时更新的一些幻觉。
最好的选择是3。并不是特别复杂-只是根据游戏的机制跟踪每个 Actor 的位置,并在收到服务器的更新后,随着时间的推移使这两个状态保持一致。
如果您发现服务器向您发送的状态与客户端所假定的状态相差太远(需要定义太多),则您可能只是跳到服务器状态并接受客户端的不连续性。