加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何同步Play Services实时多人游戏

发布时间:2020-12-14 19:27:56 所属栏目:Java 来源:网络整理
导读:我正在使用Libgdx开发一个在线版本的热门游戏Pong.我已经开始使用Google的实时多人游戏服务来在玩家之间发送游戏数据,但是我无法弄清楚如何解决我所面临的同步问题. 目前发送的信息是玩家的桨,所以当我移动时,我将我的新职位发送给对手.在对手接收时,时间已
我正在使用Libgdx开发一个在线版本的热门游戏Pong.我已经开始使用Google的实时多人游戏服务来在玩家之间发送游戏数据,但是我无法弄清楚如何解决我所面临的同步问题.

目前发送的信息是玩家的桨,所以当我移动时,我将我的新职位发送给对手.在对手接收时,时间已经过去,同步丢失.

我知道运动之间应该有一些等待时间,使用最慢的连接,但是如何让它看起来顺利呢?

解决方法

这个问题没有明确的答案,但有各种各样的策略,人们可以适应这种情况.

使用UDP协议(如果您正在使用基于套接字的通信,我将推荐您,因为每个ms在实时游戏中都是重要的,我认为google api具有UDP是不可靠的消息传递,再次,我没有google-realtime-api的经验)消息交换插值,推算,客户端预测等只是很少.

这是一个非常广泛的话题.当我做了我的多人坦克游戏我做了一些事情,使事情看起来更平滑一些.

>使用UDP协议将动作发送到服务器.
>我将在客户端为玩家保留两个条目.一个是当前值,一个是要设置的值.然后,我将使用0.3f的平滑因子乘以当前值,直到不等于要设置的值. (这有助于减少抖动)
>我会通过TCP发送重要消息.

我提到的几点描述了我在我的游戏中所做的,但可以用于任何一个.虽然我建议你阅读这个网站上的文章,称为Gaffer on Games

再次,这个领域是巨大的,没有答案可以帮助你.我做了这个话题的论文,仍然不能给你一个明确的答案.您将不得不阅读很多文章,并根据您的需要模拟您学习的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读