如何在实时多人游戏中使用 websockets?

How to use websockets in a real-time multiplayer game?

我从一个名为 agar.io 的游戏中得到启发,尝试使用 websockets 制作我自己的浏览器游戏。我想知道从这个开始的最好方法是什么。我有一些制作多人游戏的经验,但没有使用 websockets 的经验。

我知道 socket.io,但真的不想用 javascript 写这个。我试用了这个库:https://github.com/mrniko/netty-socketio,它是 socket.io 到 java 的一个端口,但是当我 运行 演示时出现延迟(在本地计算机上为 50ms)

我查看了 LibGDX 并找到了这个库 (https://github.com/pepedeab/libGDX-Net),我现在认为这是最好的方法。

有人得到一些提示、提示或建议吗?

Libgdx 是您应该开始的地方。我发现没有多少人在使用 Libgdx 浏览器部署(更不用说网络 libgdx GWT 应用程序了),但我会与您分享一些见解。

请注意,在浏览器部署中,您对应用程序的功能有更多限制。由于您将使用 (Libgdx) GWT 来部署您的应用程序,因此您的每个外部 jar 都必须与 GWT 兼容才能部署它们(有​​点挫折)。因此,如果您确定要进行浏览器部署,肯定会遇到一些令人头疼的问题,并且可能会有一些晦涩的解决方法。参见 http://www.gwtproject.org/doc/latest/RefJreEmulation.html

对于一些网络代码示例,请查看 which websocket library to use。我知道有一些 android 示例,但它们引用了一些您可能正在寻找的与 GWT 兼容的 websocket 内容。

如果您正在寻找一种更简洁的做事方式,Nathan Sweet 和 Esoteric Software 的人员已经用 Kryonet(一个网络库)完成了令人难以置信的工作,如果您想使用,强烈推荐不太头疼的路线并切换到 desktop/android/iOS