2012-03-29 84 views
3

短篇小说:我和朋友正在制作一款多人动作游戏,我们认为playn对此非常棒。 Android,Java和HTML5支持是最重要的,但如果不是必要的话,我们不想删除其他人。一款Playn多人动作游戏的互联网连接

现在的问题是我们想要实现它的网络部分。我们已经实现了我们自己的服务器,并且认为我们会使用长轮询http请求进行通信。我们估计现在我们需要某种方式让一个线程运行以进行使用消息和两个多线程安全队列的通信。 update()部件可以使用的传入消息的一个队列,以及传出消息到服务器的一个队列。

有没有什么方法可以实现这一点而不会失去平台支持?或者我们如何实现这一点的任何其他想法?

回答

4

PlayN目前没有对持久套接字连接到服务器的跨平台支持。您将需要实现自己的跨平台抽象。您可以将WebSockets用于HTML5后端,您可以查找适用于Android的WebSockets库以及您打算支持的任何其他平台。

您也可以使用Nexus library,该设计用于PlayN并提供客户端/服务器通信。然而,它大大提高了抽象层次,而不仅仅是在客户端和服务器之间传递简单的消息,所以实现你自己的简单的基于WebSockets的通信可能比学习Nexus如何工作更容易。

+0

线程问题呢?你如何实现不同平台的线程? 关于websockets,是的,我想这将是最好的解决方案。你认为这是一个好主意,我们可以很好地实现它,以便稍后将它修补到playn中? – Hirschen 2012-04-02 08:37:53

+0

对于需要线程的平台,您可以使用本机平台API来创建线程。在Web浏览器中,您不需要线程来使用WebSockets,浏览器会为您处理事情。 – samskivert 2012-04-03 22:05:14

+0

另外,您不需要构建事物,以便可以将它们修补到PlayN中。您可以简单地创建自己的跨平台网络API,该API使用相同的方法跨平台处理,并使用与PlayN相同的平台以及想要使用库的游戏。这就是Nexus所做的。它不必*是* PlayN的一部分。 – samskivert 2012-04-03 22:06:11