我正在做一个多人游戏。每个客户端都有一个在共享环境中移动的角色。
我使用socket.io创建房间,并使用peer.js在客户端之间创建对等连接。
我想做的是使每个客户端都能更新其地图中其他玩家的角色位置。
为此,每个客户端应具有其他玩家的键盘光标(箭头键)的状态,以便他可以通过行走动画来移动其相应角色。
P2P:我正在考虑在客户端之间创建双工流,以便每个客户端都具有其他玩家的键盘光标状态,以便他可以使用适当的动画来移动他们的角色...
袜子:我也可以通过通过使用套接字的服务器获取信息,但由于游戏速度为60 fps,因此我必须每秒发送60次游标状态更新,这会产生大量套接字消息。我不确定这是否是最有效的处理方式
使所有人都了解其他玩家状态的最有效方法是什么?任何建议将不胜感激。谢谢。
实际上,您的游戏可能是MMORPG游戏或CS / CSGO之类的小演示。
对于这样的游戏,我们总是在主过程(工作过程)中有一个循环,其频率为每秒几帧(例如20帧)。在每个帧中,客户端都会处理从其他人接收到的数据包,而这些选项会形成合并请求。
如果这里是20帧,则意味着每个帧都不能超过50ms,因此如果它在WLAN中并且发生某些数据包丢失,将导致一些延迟。
如果您想使用P2P来同步玩家的动作,这是一个问题:当玩家人数激增时,连接的嘘声也很复杂。此外,您需要一个可靠的连接协议,这意味着您需要知道如何使用QUIC之类的内容或自己编写一个可靠的UDP。
因此,我认为,只有在您的游戏将在局域网中使用并且有很多玩家的情况下,最有效的方式才可能继续使用P2P的C / S模型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句