我一直在开发一款名为“Tarneeb”的小型纸牌游戏。游戏本身看起来像桥牌游戏,但有不同的规则。无论如何,我使用Java 6将整个游戏作为一个独立的桌面应用程序完成。这是游戏的picture。无论如何,我现在需要将其转换为具有多人游戏功能的网络应用程序,因此用户可以举例说明新房间并加入现有游戏的房间。 不幸的是,我不知道Java中的网络,但我搜索了很多,我发现了一些可能对我有帮助的其他Java产品(JavaFX,JSP,GlassFish),但我仍然无法弄清楚我需要完成任务的确切需要。我现在所需要的只是前往的方向,我将进行研究,并希望学习所需的新技能。
答案 0 :(得分:4)
其他答案已经向您指出了一些资源。
但是你可能遇到的最大问题是,如果你没有相应地规划架构,那么通常不可能(或完全重写时非常耗费时间)来“添加”多人游戏功能。
答案 1 :(得分:1)
因为你可能有很多互动和很多更新我应该 - 如果我错了就纠正我 - 尽可能快地在客户端,我建议看看Cometd这使得http连接对每个客户端保持开放,并将更新从服务器推送到客户端。如果您使用jetty作为网络服务器(因此它的“延续”),它甚至是highly scalable。
答案 2 :(得分:1)
问题是,没有一种标准的方法可以让你阅读。
您希望如何实施此Web应用程序?作为小程序?使用标准网页?作为人们必须下载的网络启动应用程序?
最后一个选项允许您重复使用大部分现有代码。如果您选择该选项,则可能值得您查看RMI,因为这可能适合您现有的架构。
但是,正如S.Lott指出的那样,你需要在做其他任何事情之前去学习如何制作Web应用程序。这些教程将是一个良好的开端,您也应该学习(X)HTML,JavaScript和Java Web技术,如JSP,JSF或Struts。你需要的确切取决于你的要求,没有更多的细节,很难推荐一个。
答案 3 :(得分:0)
首先,了解“网站”和“网络应用程序”是什么。
执行教程:http://java.sun.com/developer/onlineTraining/index.jsp
观看Glassfish教程:http://java.sun.com/javaee/overview/screencasts.jsp
完成所有教程后,您将构建一个Web应用程序。
在构建教程Web应用程序之后,您可以构建Web应用程序。
答案 4 :(得分:0)
网页应用非常适合您在纸牌游戏中进行的实时互动。是的,它可以完成,但它会涉及肮脏的黑客攻击,你总是会遇到高延迟和断开连接的问题。当然,你必须完全重写你的大部分应用程序。
如果有可能将游戏作为Java applet运行?这将使您的工作更容易(更多地重复使用),最终结果更有用。
答案 5 :(得分:0)
无法快速将基于客户端的应用程序移植到Web应用程序中。根据您的想法,听起来您需要寻求JSP / Javascript解决方案或JavaFX解决方案。 JavaFX实际上允许更平滑(比JSP / Javascript更流畅,但仍然需要花费一个多的时间= D)移植基于客户端的应用程序,但它的学习曲线比JSP / Javascript技术更为陡峭。这里有一个有趣的注意事项是JavaFX不仅仅是一种Web应用程序语言。如果您已经在JavaFX中编写了基于客户端的初始应用程序,那么您将完成大约50%的工作。
答案 6 :(得分:0)
使用Java NIO,它非常简单,如果您将掌握基础知识,那么在所有这些无数的库中都没有真正需要......或者无论如何您都会知道它们的内部结构。然而,这里提到的一个重要的事情是,游戏结构必须从一开始就适应网络。在最坏的情况下,它可能是完全重写。基本上,您必须创建客户端数据库,套接字连接,并且从服务器端,每个连接(由SelectorKey对象表示)应该封装到一个对象中,表示“加入的客户端”。然后将对密钥的套接字执行读/写操作。但还有更多。服务器必须是应用程序链接的中心,因此您必须为您的游戏开发一个完整的网络消息协议(通过TCP,在这种游戏中不需要UDP)。另外 - 阅读有关协议(TCP / UDP /套接字,以太网)的更多信息,阅读的越多越好。
另外!注意HTML5 websockets的东西。这是一件好事!!!