请问类似游戏同步玩家移动位置的实现方法

a549297336 · · 4409 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

是这样最近在做一个服务器同步玩家移动位置和转向的demo,服务器用go客户端用unity,使用TCP,数据发送用protobuf。因为之前没接触过golang所以磕磕绊绊遇到了很多坑。在即将完成的时候发现了一个问题就是几个玩家之间的移动数据接收很不流畅。 一开始以为是服务器的问题,因为每个玩家每隔100毫秒就要发送一次自己的位置和旋转信息,怕是服务器处理不过来。后来加了日志之后发现服务器回传同步都没有什么问题。那可能问题就出在客户端。后来发现可能是玩家每100毫秒接收到服务器同步过来所有其他玩家信息处理不过来,因为接收到之后还需要分包,反序列化数据,根据消息头调用具体方法。所以当有多个客户端之后服务器发回来的包肯定也更大。这里我现在再想办法解决。 但是因为对网络编程了解很少,所以想问一下有没有做过类似东西的大神们这种100毫秒发送一次数据是否过于频繁?同步玩家位置的用这种方法是否合适?另外protobuf里的数据只有六个float变量分别是玩家的位置和旋转信息以及一个longint变量是玩家的id号,一次发送这些数据是否过多? 迫切希望能够有大神帮忙解答下,感激不尽。。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4409 次点击  
加入收藏 微博
2 回复  |  直到 2016-11-02 09:52:09
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传