websocket遇到个纠结问题,socket实时类网游 发包速率一般是多少?

huang2214775 2015-08-12 02:06:21
需求:
网络多人对战:类似Agar.io(与少人在线不一样吗?)
ps:一个多人在线的游戏,主要就是发送每个客户机的2d坐标,然后大家在里面实时走来走去而已。(具体攻击那些就不管了)

问题:
webscoket,若我(客户端)每0.02-0.1秒(1-5帧)发送一次ws.send(我的坐标)给服务器,这样的延迟我可以接受。
我想问的是~一般网游,都是每个客户机 0.02-0.1秒发一次操作吗?如果很多人的网游,服务器会不会吃不消?亦或者是有方法优化的?一般网游在socket方面大概是什么方式?(例如龙之谷,怎么做到精确检查的?有没相关知识书籍可以推荐?亦或者说,就是每帧发一次,然后通过《强大的服务器》!)
...全文
669 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huang2214775 2015-08-12
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
有任何必要每帧发一个包? 客户端有动作了就发一个包,没有动作就根本不需要发包啊 如果是怪打人,而不是人打怪,那么就服务器推送数据个客户端 总之发包不应该定时发,而是应该根据发生的事件来发
首先~非常感谢大大回复~ 客户端假设一直在改变自己的2d坐标,是不是就要一直发送了?如果我是判断客户端有没和别的客户端在2D位置上相碰撞,我发送的速度就很成判断的问题了是吧?(移动不是线性的,是不规则的)
於黾 2015-08-12
  • 打赏
  • 举报
回复
而且,客户端只应该将操作发给服务器,然后服务器处理完了人物运动之后,将人物坐标发回给客户端,客户端再显示 如果考虑画面流畅性,至少也是先显示运动,再对服务器回发的坐标进行校验,如果由于通信卡顿等原因没有收到服务器回发的坐标,或者坐标与客户端显示的坐标不符,那么就必须退回原来的坐标去
於黾 2015-08-12
  • 打赏
  • 举报
回复
同样的,如果其他人进入了我的视野,那么就应该将其他人的坐标发给我 离开视野的时候也一样 至于其他人一直在我的视野之外,对于我来说,那些都是垃圾数据,根本不应该发给我
於黾 2015-08-12
  • 打赏
  • 举报
回复
有任何必要每帧发一个包? 客户端有动作了就发一个包,没有动作就根本不需要发包啊 如果是怪打人,而不是人打怪,那么就服务器推送数据个客户端 总之发包不应该定时发,而是应该根据发生的事件来发

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧