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

时间:2010-06-19 16:25:42

标签: java networking rmi

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

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

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

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

2 个答案:

答案 0 :(得分:15)

RMI并不复杂,反之亦然。

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

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

RMI的另一个优点是,您可以轻松管理许多游戏服务器可以附加的主服务器,以便玩家有机会玩游戏服务器,以及管理独立大厅等许多其他小事。

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

答案 1 :(得分:0)

听起来你会有厚厚的客户。为什么?您可以拥有一个100%的Java服务器,它具有您的所有业务逻辑,并使用jquery / Ajax和渲染html5通过浏览器访问它。

要回答你的问题,我会说是的RMI对于你正在做的事情来说太复杂了。