我使用 Unity 和 Lidgren 网络库(服务器 - 客户端架构)来开发具有透视图的游戏,看起来类似于 Diep.io。
我试图让两边的射击都顺利,但是,由于延迟,如果客户端在射击时移动,客户端可以看到子弹是在离玩家更远的地方创建的(服务器从客户端收到的最后一个位置)。
当前射击,客户端向服务器发送数据包,服务器在客户端位置创建子弹。
像 Diep.io 这样的游戏如何在没有明显延迟的情况下处理射击?
你会如何处理类似于 Diep.io 的游戏中的射击?
任何帮助表示赞赏。
我使用 Unity 和 Lidgren 网络库(服务器 - 客户端架构)来开发具有透视图的游戏,看起来类似于 Diep.io。
我试图让两边的射击都顺利,但是,由于延迟,如果客户端在射击时移动,客户端可以看到子弹是在离玩家更远的地方创建的(服务器从客户端收到的最后一个位置)。
当前射击,客户端向服务器发送数据包,服务器在客户端位置创建子弹。
像 Diep.io 这样的游戏如何在没有明显延迟的情况下处理射击?
你会如何处理类似于 Diep.io 的游戏中的射击?
任何帮助表示赞赏。
在多人游戏开发方面没有超过初学者水平的经验,但这是我的 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。