我应该使用RMI进行Java多人游戏吗?

sea*_*owg 4 java networking rmi

我正在建立一个Java的大富翁游戏,我希望它能够通过网络支持游戏(关键在于我和我在A的美国的朋友们可以玩).

网络是我尚未进入的整个编程领域,因此我发现很难确定如何完成它.总的来说,我认为正确的工作方式是拥有一个服务器应用程序,其中包含所有Monopoly游戏代码,然后是app客户端,只需一个带远程方法调用的GUI.

RMI对于这个项目来说是否过于复杂,还是最好的方式?你有什么建议或提示吗?

更新:这个游戏将是100%Java.所以不用担心客户需要安装Java.此外,获得有关使用RMI的一些提示会很棒.

Jac*_*ack 15

RMI并不复杂,相反.

它允许您开发游戏协议,而无需关心Message服务器和客户端之间的对象是否具有长链,以检查它是什么类型的消息并执行所需的任何操作.

你能真正做到与RMI是有一个集中的对象(在服务器上)在其上直接调用来自客户端,如方法iWantToMoveThere(position)iWantToBuyLand(where)等等.这会简化协议,同时在任何情况下都会产生一些开销,因为我不鼓励你实现二进制协议.XML或序列化的Java将是一个很好的折衷,因为你并不真的需要像这样的游戏的实时.

RMI的另一个优点是,您可以轻松管理许多游戏服务器可以附加的主服务器,以便让玩家有机会参与其中,还可以管理分离的大厅等许多其他小事.

就像直接体验一样:我使用RMI管理服务器,允许开发人员发布自己的游戏插件,允许玩家自动连接到服务器并下载内容以便能够播放.一切都是由RMI处理的,除了我需要一个向后的TCP连接以便能够在需要时处理异步事件.在7-8个类中,整个源代码只有大约1k行