用于Java和Objective-C游戏的实时游戏网络库

Dou*_*kem 8 udp network-programming real-time

我正在寻找使用专用Java服务器和iphone客户端以及Java桌面客户端构建的实时游戏.Java和iphone(特别是可靠的UDP)存在哪些可用于实时多人游戏开发的高性能网络传输库?

大多数基于实时动作的游戏(Counter-Strike,Left4Dead,Quake III)的一般建议是使用UDP/IP传输协议发送消息作为"不可靠"的数据包,支持TCP的"保证"传送(因为问题)有重发和延迟问题,你不能轻易控制).

  • 半寿命源引擎网络概述
  • Quake III网络 另一个建议是建立一个可靠的UDP协议,让你"可选"保证UDP数据包的传送(虽然仍然无法保证传输顺序,如TCP流,只要你的游戏可以处理乱序包).

Project Darkstar是一个带有C++绑定的Java MMO服务器(对于通用多人游戏的轻量级实时网络库来说有点重).

我见过用C语言编写的可靠UDP库: - Enet - 可靠的UDP库 - Cocoa AsyncSocket

mik*_*era 8

看看Kryo及其相关的通信库KryoNet.

它专为这种应用(高性能网络传输)而设计.我不确定是否存在Objective-C绑定,但即使不存在,仅仅看看框架设计的好坏也是值得一看的.


Abe*_*Abe 5

既然你提到了UDP。这是一个提供 UDP 和 TCP 支持的Java 游戏服务器库(啊哈...由我编写!)。可靠的 UDP 原来是 TCP。您可以在 UDP 之上编写自己的自定义 ack 逻辑,但通常最好使用 TCP 来处理需要到达服务器的内容,而使用 UDP 来处理其他所有内容。

在 jetserver 中,同一会话使用 UDP 和 TCP 进行通信。网络消息可以通过交付保证发送,可靠 = TCP 和快速 = UDP。