网络层库


12

我正在寻找免费的或独立游戏价格合理的任何可添加到我的游戏中的网络层。

网络层是指我可以与之交互的某种库,可以将消息发送到该库或从该库接收消息,并且该库将自行处理所有低层信息。

我特别在寻找:

  • 高质量的库可以理解和处理网络拥塞等复杂问题。
  • 可扩展的库,这将使我有很多玩家一起玩。
  • 最好是对等解决方案,而不是基于服务器的解决方案。
  • 优选地,具有对高级语言(诸如Java或C#)的绑定的库。

我要寻找的示例是Grapple,但是我知道还有其他可用的库。


尽管这是一个非常有用的话题,但该问题可能不适合stackexchange格式,因为它实际上是在要求对各种库进行功能比较,因此需要进行开放式讨论。
卡梅隆·弗雷德曼

Answers:


8

我觉得有必要将ENet添加到此列表中。当然,它没有与其他语言的绑定,但是鉴于它是用C编写的,因此为它创建绑定是微不足道的。

我发现ENet具有强大的功能,良好的编写能力和可扩展性,并且可以很好地处理点对点游戏。


5

我们使用RakNet已有一段时间,并很喜欢它,并获得了其他使用它的工作室的好评。 http://www.jenkinssoftware.com/

RakNet的优点在于,它大部分是跨平台的,因此,如果您希望进入控制台空间,则很有可能。


我喜欢印地游戏的免费方式
橡树

我也使用过RakNet,它非常不错。它不是完美的,但是示例很好,您可以完全访问源代码,并且Indie许可非常宽容。
Logan Kincaid 2010年

4

我选择Zoidcom(C ++)是因为它设计合理并且具有出色的文档和示例:

Zoidcom网络库是一个基于UDP的高级网络库,它提供了一些功能,这些功能可通过高度带宽高效的方式通过网络连接自动复制游戏对象并同步它们的状态。这是通过将对象信息从位流中多路复用和多路分解来实现的,从而可以轻松避免发送冗余数据。布尔仅占用一位,整数和浮点数被精简为所需的位数。

Zoidcom处理尝试开发有效的网络协议时出现的大量繁琐工作,例如,决定何时将哪些数据发送给哪个客户端,如何通过线路高效而可靠地获取数据,何时获得数据该怎么办。迷失了很多。

使用Zoidcom制作的一些开源游戏:

执照:

Zoidcom可免费用于非商业用途,并将保持不变。可根据要求提供商业和共享软件许可证,正式的许可证声明将在1.0版中提供。


2

如果C#没问题,您可以查看Lidgren。当前处于第三代,它具有(除其他功能外):

  • 麻省理工学院执照
  • 对等(NetClient / NetServer基于NetPeer)
  • 滞后模拟
  • 封包加密
  • 非常高效(缓冲区可重复用于零垃圾)
  • 积极响应的开发人员!

1

自从您提到Java之后,我建议您研究一下JGN(http://forum.captiveimagination.com/index.php/board,4.0.html),我从来没有真正亲自使用过它,但是我听说过在JME论坛上。文档似乎很稀少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.