2017-10-10 33 views
-1

我使用Unity与Lidgren网络库(服务器 - 客户端架构)来开发具有透视性的游戏并且看起来类似于Diep.io.但是,如果客户端在拍摄时移动,客户端可以看到子弹创建的位置距离播放器(服务器从客户端接收到的最后一个位置)稍远一点,但是由于延迟,我试图使拍摄顺利。处理类似于Diep.io的自上而下多人游戏拍摄的最佳方法?

当前要拍摄,客户端发送数据包到服务器,并且服务器在客户端位置创建子弹。

像Diep.io这样的游戏如何在没有任何明显延迟的情况下处理拍摄?
你会如何处理类似于Diep.io的游戏拍摄?

任何帮助表示赞赏。

回答

0

在多人游戏开发方面没有多过初学者水平,但这里是我的2美分。

您可以按照本教程中的建议在一定程度上处理子弹延迟。

https://unity3d.com/learn/tutorials/topics/multiplayer-networking/adding-multiplayer-shooting

如果你看剧本有点下跌的一页,他们有说的一部分。

// This [Command] code is called on the Client … 
// … but it is run on the Server! 
[Command] 
void CmdFire() 

使用可能有类似的方法,其中它可以在客户端上调用,但在服务器上运行的库。

除此之外,我有点好奇你为什么不使用内置的统一多人游戏功能?它具有低级别和高级别的API。

+0

该技术仍然需要处理延迟,命令必须从客户端发送到服务器。另外我使用Lidgren而不是Unity内置网络,因为Unet看起来对我来说更加复杂(可能不是),并不是所有的东西都按我的预期工作,也许以后我会尝试移动到Unet,但是现在Lidgren已经足够了。 – Alex

+0

它必须处理延迟是,不能完全避免。但正如你现在似乎也建议的那样,试验把责任放在客户端或服务器上,可能会帮助你发现最佳的延迟方式。我相信Unity内置的解决方案是围绕Unitys组件系统制作的,使其尽可能简单易用。但是可能需要教程来缓解学习曲线。 – Doh09

相关问题