在多人游戏中更新游戏状态

阿赫拉夫·埃尔汉姆西

我正在做一个多人游戏。每个客户端都有一个在共享环境中移动的角色。
我使用socket.io创建房间,并使用peer.js在客户端之间创建对等连接。
我想做的是使每个客户端都能更新其地图中其他玩家的角色位置。
为此,每个客户端应具有其他玩家的键盘光标(箭头键)的状态,以便他可以通过行走动画来移动其相应角色。

P2P:我正在考虑在客户端之间创建双工流,以便每个客户端都具有其他玩家的键盘光标状态,以便他可以使用适当的动画来移动他们的角色...
袜子:我也可以通过通过使用套接字的服务器获取信息,但由于游戏速度为60 fps,因此我必须每秒发送60次游标状态更新,这会产生大量套接字消息。我不确定这是否是最有效的处理方式

使所有人都了解其他玩家状态的最有效方法是什么?任何建议将不胜感激。谢谢。

泰辰

实际上,您的游戏可能是MMORPG游戏或CS / CSGO之类的小演示。

对于这样的游戏,我们总是在主过程(工作过程)中有一个循环,其频率为每秒几帧(例如20帧)。在每个帧中,客户端都会处理从其他人接收到的数据包,而这些选项会形成合并请求。

如果这里是20帧,则意味着每个帧都不能超过50ms,因此如果它在WLAN中并且发生某些数据包丢失,将导致一些延迟。

如果您想使用P2P来同步玩家的动作,这是一个问题:当玩家人数激增时,连接的嘘声也很复杂。此外,您需要一个可靠的连接协议,这意味着您需要知道如何使用QUIC之类的内容或自己编写一个可靠的UDP。

因此,我认为,只有在您的游戏将在局域网中使用并且有很多玩家的情况下,最有效的方式才可能继续使用P2P的C / S模型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多人策略游戏中的多线程

来自分类Dev

解决多人游戏中的抖动动作?

来自分类Dev

在多人游戏中处理玩家闪烁

来自分类Dev

用Java更新游戏记录

来自分类Dev

使用新变量更新游戏

来自分类Dev

Windows 10上的较新游戏中没有音频

来自分类Dev

在对战多人游戏中与对手“配对”的最佳方法

来自分类Dev

Unity网络:在多人游戏中翻转精灵不会翻转主机

来自分类Dev

如何处理多人游戏中的物品数据?

来自分类Dev

在WPF中嵌入XNA:如何更新游戏时间?

来自分类Dev

RTS游戏中的状态机

来自分类Dev

我的画布游戏中的不同“状态”

来自分类Dev

在游戏中使用状态模式

来自分类Dev

如何在Google Play游戏服务实时多人游戏中获得随机地图

来自分类Dev

如何使用Google Play游戏在实时多人游戏中处理应用版本?

来自分类Dev

清除SKScene以开始新游戏

来自分类Dev

用户创建新游戏猫鼬时无法更新用户游戏属性

来自分类Dev

在finishMatch结束多人游戏

来自分类Dev

实时多人游戏

来自分类Dev

多人游戏/从哪里开始

来自分类Dev

Unity坦克多人游戏

来自分类Dev

如何在Google Play游戏实时多人游戏中检测客户是否故意离开房间?

来自分类Dev

如何使用Google Play游戏服务在实时多人游戏中使用机器人玩家?

来自分类Dev

自动化多人游戏中的坑洼,玩家可以使用自己的算法

来自分类Dev

比赛未在使用nextpeer的多人cocos2dx游戏中结束

来自分类Dev

有没有办法找到Unity多人游戏中的主机是哪个玩家?

来自分类Dev

如何在实时多人游戏中使用网络套接字?

来自分类Dev

p.update 是我的多人游戏中的一个功能错误

来自分类Dev

使用 UNET 在 Unity3D 中获得多人游戏中的比赛位置

Related 相关文章

热门标签

归档