gpt4 book ai didi

java - 我应该将 RMI 用于 Java 多人游戏吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:09:23 24 4
gpt4 key购买 nike

我正在用 Java 构建一个大富翁游戏,我希望它能够支持网络游戏(重点是这样我和我在美国的 friend 们就可以玩了)。

网络是我尚未进入的整个编程领域,因此我发现很难决定如何准确地实现它。总的来说,我觉得它的正确工作方式是拥有一个包含所有大富翁游戏代码的服务器应用程序,然后只有一个带有远程方法调用的 GUI 的应用程序客户端。

RMI 对这个项目来说会不会太复杂,或者它是否是进行的最佳方式?您对我有什么建议或提示吗?

更新:这个游戏将是 100% Java。所以不用担心客户端需要安装 Java。此外,如果能获得一些有关使用 RMI 的提示,那就太好了。

最佳答案

RMI 不是一个复杂的东西,它恰恰相反。

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

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

RMI 的另一个优势是您可以轻松管理一个主服务器,许多游戏服务器可以连接到主服务器上,让玩家有机会在其中玩游戏,还有许多其他小事情,比如管理一个单独的大厅等。

作为直接经验:我使用 RMI 管理一个服务器,允许开发人员发布他们自己的游戏插件,允许玩家自动连接到服务器并下载内容才能玩。一切都由 RMI 处理,除了我需要一个反向 TCP 连接以便能够在我需要时处理异步事件这一事实。整个源代码只有大约 1k 行,包含 7-8 个类

关于java - 我应该将 RMI 用于 Java 多人游戏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3076254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com