我目前正在开发一款实时多人游戏自上而下的射击游戏。 多人游戏正在“工作”,我正在努力推动玩家更新,如位置和射击。
我的第一次尝试是使用“appWarp”服务,该服务完美但不是免费的,并且仅在免费版本中提供了大约2百万条消息,我完全填写了大约2周,只有2个设备和2个玩家。 (可能会发送更多更新)
然后我实施了Google Play游戏服务,并尝试使用此功能发送更新:
我可以使用“sendUnreliableMessage”进行位置更新,这比appWarp更快。我使用插值来克服包丢失问题,这可以正常工作。
但问题在于射击。 UnreliableMessages的本质是包丢失,这种情况很多。拍摄4次只会使其中1或2个出现在另一台设备上。这意味着2个包丢失了。使用“sendRealiableMessage”我可以实现大约2-3个包通过,但当然有更高的延迟。这使得在另一台设备上拍摄约1秒后拍摄。
对于快节奏的实时多人游戏,这不是我想要实现的目标。
那么有什么更好的方法呢?我找到了像socket.io这样的基于网络的解决方案,但并不知道哪种解决方案最适合我的需求。
我发现这个网站包含了针对此问题的每个基于Web的解决方案的大清单,但实际上并不知道从哪里开始。
https://www.leggetter.co.uk/real-time-web-technologies-guide/#_hosted-realtime-services
如果有人可以帮我解决这个问题,我真的很感激!。
答案 0 :(得分:0)
由于您要求提供意见,我建议您尝试Multiplayer in Unity。它是今天的leading game engine,所以你可以期待一个巨大的用户群的巨大支持。
另一种选择是Photon。希望这些建议有所帮助。