我正在寻找免费的或独立游戏价格合理的任何可添加到我的游戏中的网络层。
网络层是指我可以与之交互的某种库,可以将消息发送到该库或从该库接收消息,并且该库将自行处理所有低层信息。
我特别在寻找:
- 高质量的库可以理解和处理网络拥塞等复杂问题。
- 可扩展的库,这将使我有很多玩家一起玩。
- 最好是对等解决方案,而不是基于服务器的解决方案。
- 优选地,具有对高级语言(诸如Java或C#)的绑定的库。
我要寻找的示例是Grapple,但是我知道还有其他可用的库。
我正在寻找免费的或独立游戏价格合理的任何可添加到我的游戏中的网络层。
网络层是指我可以与之交互的某种库,可以将消息发送到该库或从该库接收消息,并且该库将自行处理所有低层信息。
我特别在寻找:
我要寻找的示例是Grapple,但是我知道还有其他可用的库。
Answers:
我觉得有必要将ENet添加到此列表中。当然,它没有与其他语言的绑定,但是鉴于它是用C编写的,因此为它创建绑定是微不足道的。
我发现ENet具有强大的功能,良好的编写能力和可扩展性,并且可以很好地处理点对点游戏。
我们使用RakNet已有一段时间,并很喜欢它,并获得了其他使用它的工作室的好评。 http://www.jenkinssoftware.com/
RakNet的优点在于,它大部分是跨平台的,因此,如果您希望进入控制台空间,则很有可能。
我选择Zoidcom(C ++)是因为它设计合理并且具有出色的文档和示例:
Zoidcom网络库是一个基于UDP的高级网络库,它提供了一些功能,这些功能可通过高度带宽高效的方式通过网络连接自动复制游戏对象并同步它们的状态。这是通过将对象信息从位流中多路复用和多路分解来实现的,从而可以轻松避免发送冗余数据。布尔仅占用一位,整数和浮点数被精简为所需的位数。
Zoidcom处理尝试开发有效的网络协议时出现的大量繁琐工作,例如,决定何时将哪些数据发送给哪个客户端,如何通过线路高效而可靠地获取数据,何时获得数据该怎么办。迷失了很多。
使用Zoidcom制作的一些开源游戏:
执照:
Zoidcom可免费用于非商业用途,并将保持不变。可根据要求提供商业和共享软件许可证,正式的许可证声明将在1.0版中提供。
如果C#没问题,您可以查看Lidgren。当前处于第三代,它具有(除其他功能外):