多人浏览器游戏[Java]

问题描述 投票:3回答:7

我一直在开发一款名为“Tarneeb”的小型纸牌游戏。 游戏本身看起来像桥牌游戏,但有不同的规则。 无论如何,我使用Java 6将整个游戏作为一个独立的桌面应用程序完成。这是游戏的图片 。 无论如何,我现在需要将其转换为具有多人游戏功能的网络应用程序,因此用户可以举例说明新房间并加入现有游戏的房间。 不幸的是,我不知道Java中的网络,但我搜索了很多,我发现了一些可能对我有帮助的其他Java产品(JavaFX,JSP,GlassFish),但我仍然无法弄清楚我需要完成任务的确切需要。 我现在所需要的只是前往的方向,我将进行研究,并希望学习所需的新技能。

java
7个回答
4
投票

其他答案已经向您指出了一些资源。

但是,您可能遇到的最大问题是,如果您没有相应地规划架构,那么通常不可能(或者在完全重写时非常耗时)来“添加”多人游戏功能。


1
投票

因为你可能有很多交互和很多更新我应该 - 如果我错了就纠正我 - 尽可能快地在客户端,我建议看一下Cometd保持http连接打开每个客户端并将更新从服务器推送到客户端。 如果您使用jetty作为网络服务器(因此它的“延续”),它甚至可以高度扩展


1
投票

问题是,没有一种标准方法可以做到这一点,你需要阅读。

您想如何实现此Web应用程序? 作为小程序? 使用标准网页? 作为人们必须下载的Web启动应用程序?

最后一个选项允许您重用大部分现有代码。 如果您选择该选项,可能值得您研究RMI,因为它可能适合您现有的架构。

但是,正如S.Lott指出的那样,你需要在做其他任何事情之前去学习如何制作Web应用程序。 这些教程将是一个良好的开端,您也应该学习(X)HTML,JavaScript和Java Web技术,如JSP,JSF或Struts。 确切地说,您需要的将取决于您的要求,没有更多细节,很难推荐一个。


0
投票

首先,了解“网站”和“网络应用程序”是什么。

做教程: http//java.sun.com/developer/onlineTraining/index.jsp

观看Glassfish教程: http//java.sun.com/javaee/overview/screencasts.jsp

完成所有教程后,您将构建一个Web应用程序。

在构建教程Web应用程序之后,您可以构建Web应用程序。


0
投票

Web应用程序非常适合您在纸牌游戏中进行的实时交互。 是的,它可以完成,但它会涉及肮脏的黑客攻击,你总是会遇到高延迟和断开连接的问题。 当然,你必须完全重写你的大部分应用程序。

如果有可能将游戏作为Java小程序运行? 这将使您的工作更容易(允许更多的重用),最终结果更有用。


0
投票

无法快速将基于客户端的应用程序移植到Web应用程序中。 根据您的想法,听起来您需要寻求JSP / Javascript解决方案或JavaFX解决方案。 JavaFX实际上允许更平滑(比JSP / Javascript更流畅,但仍然需要花费一个多的时间= D)移植基于客户端的应用程序,但它的学习曲线比JSP / Javascript技术更为陡峭。 这里有一个有趣的注意事项是JavaFX不仅仅是一种Web应用程序语言。 如果您已经在JavaFX中编写了基于客户端的初始应用程序,那么您将完成大约50%的工作。

JavaFX的


0
投票

使用Java NIO,它非常简单,如果您将掌握基础知识,那么在所有这些无数的库中都没有真正需要......或者无论如何您都会知道它们的内部结构。 然而,这里提到的一个重要的事情是,游戏结构必须从一开始就适应网络。 在最坏的情况下,它可能是完全重写。 基本上,您必须创建客户端数据库,套接字连接,并且从服务器端,每个连接(由SelectorKey对象表示)应该封装到一个对象中,表示“加入的客户端”。 然后将对密钥的套接字执行读/写操作。 但还有更多。 服务器必须是应用程序链接的中心,因此您必须为您的游戏开发一个完整的网络消息协议(通过TCP,在这种游戏中不需要UDP)。 另外 - 阅读有关协议(TCP / UDP /套接字,以太网)的更多信息,您阅读的越多越好。

也! 注意HTML5 websockets的东西。 这是一件好事!!!

© www.soinside.com 2019 - 2024. All rights reserved.