在类似于 Diep.io 的自上而下多人游戏中处理射击的最佳方式?

Best way to handle shooting in top down multiplayer game similar to 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.