我正在研究一个学习 node.js 的项目,并且正在寻找一些关于如何实时处理同步用户数据的建议。
假设您有一个 2D 矩形地图(大约 600x400),许多玩家占据该地图上的 x,y 位置。每个用户都可以使用箭头键导航并以某种基本方式与其他用户交互。鉴于这将通过 HTTP 播放,那么在处理和同步用户数据以提供最流畅、最快速的体验方面,最好的设计模式是什么?
我可以想到几个选项,但希望有更多的想法/澄清:
客户端将位置数据发送到服务器,服务器将所有位置分配给所有客户端,屏幕呈现结果。重复。不利的一面是客户端会滞后于数据往返所需的时间,但好处是它们与所有用户同步。
客户端在它认为的位置不断渲染,将位置数据发送到服务器,服务器将所有位置分配给所有客户端,然后使用服务器数据更正来自客户端数据的屏幕渲染。上行是更快速的响应,下行是稍微失去同步。
两者的混合,但我们不使用 (x,y) 坐标,而是使用 [先前的 x/y 和时间,当前的 x/y 和时间,建议的时间间隔的 x/y] 的向量,然后可以用于绘制不断变化的射弹路径。这似乎很难实现。
任何指针?