多人游戏网络架构

时间:2015-10-25 14:31:44

标签: c# unity3d network-programming multiplayer photon

我一直在学习如何在Unity客户端和光子服务器之间建立联网。这就是我目前正在做的事情。

Unity客户端每隔16毫秒或每秒总共60帧运行一帧,一旦连接帧#从0开始并在最后增加1(LateUpdate),Photon ServerPeer也将有一个连接帧#保存他们加入的服务器上的帧的变量。 Photon服务器运行的PoolFiber间隔为16ms,Server将每个poolfiber间隔增加1以获取帧# 在客户端上,在LateUpdate方法中,在帧的最后,它将发送一个Request以从服务器获取下一帧数据。 服务器将接收请求并将其排入下一帧,抓取下几帧(可用的)并将其发送给客户端。客户端获取该数据并将在其正确的帧上执行。重复帧结束时的请求和开始处理的过程。 首先,这是一个很好的方法吗?我刚刚开始学习网络,我真的很想更好地理解这一点,经过一些研究,这似乎是一种同步客户端/服务器的好方法。

我对这种方法的问题是,客户端帧速率总是超过服务器帧速率,以至于客户端不断越来越远离服务器。

例如,客户端将从0开始,而服务器是1,200,最终客户端将是2,200,服务器将只有1,900。我注意到服务器上的1帧中正在处理1-3个客户端帧之间的任何地方。

所以:客户端帧1,2,3都在服务器帧1200上处理。

解决这个问题的好方法是什么?我一直在撞墙试图解决这个问题几个星期。

0 个答案:

没有答案