C#游戏网络库

时间:2008-09-05 20:45:12

标签: c# network-programming

我正在使用.Net v2开发一款在线策略游戏。虽然游戏主要是战略性的,但它确实有一些需要合理网络性能的战术元素。我打算将TCP数据包用于战略数据,将UDP数据包用于战术数据。

{编辑}我忘了提到我偏离WCF和.NET 3+有几个原因。首先,因为我想保持我的下载量小,我的大多数客户已经拥有.NET 2.0。其次,因为我希望能够选择移植到Mac和Linux,并且不确定Mono中的WCF可用性。 {/编辑}

我正在寻找网络图书馆的建议。我找到了一些选项,比如GarageGames的扭矩网络库(C ++),RakNet(C ++)和lidgren网络库(C#):

http://www.opentnl.org/ http://www.jenkinssoftware.com/ http://code.google.com/p/lidgren-network/

有没有人对这些或其他图书馆有实际经验?


我偶然发现了RakNetDotNet:

http://code.google.com/p/raknetdotnet/

可能正是我正在寻找的......

8 个答案:

答案 0 :(得分:5)

Microsoft自己的基于.NET的XNA允许您在Windows和XBox 360上创建联网游戏。

答案 1 :(得分:4)

http://code.google.com/p/lidgren-network-gen3/

  

Lidgren.Network是.net框架的网络库,它使用   单个udp套接字,用于提供用于连接客户端的简单API   服务器,阅读和发送消息。

答案 2 :(得分:2)

我还要注意“Windows游戏”,XNA在Windows上使用Live!网络API现在是免费的...这意味着如果您编写使用网络功能的XNA游戏,您的用户必须拥有金牌会员资格: - )

http://www.engadget.com/2008/07/22/games-for-windows-live-now-free/

答案 3 :(得分:1)

为什么要限制自己使用.NET 2.0。 .NET 3.0(或3.5)包含WCF,是一个具有良好安全性的可靠,高性能的通信子系统。 .NET 3.0只是带有附加库(WCF,WF,WPF)的.NET 2.0。

答案 4 :(得分:1)

如果您正在寻找更高级别的东西,您可以查看Entanglar(http://entanglar.dunnchurchill.com)。 Entanglar提供完整的实体生命周期和同步。

答案 5 :(得分:1)

虽然这个问题相当陈旧,但是专为游戏开发的更高级别的系统是APlay - 在支持的平台中也是C#。有评估版本,免费供个人使用。

您以UML方式定义游戏对象,在线代码生成器创建包含游戏对象的程序集。然后发送状态更新就像调用setter方法一样简单。

如果你想自己应对插座,那就不对了。另请注意,我是APlay的开发人员,所以这是一个有偏见的答案。

答案 6 :(得分:1)

一个古老的问题,但是我会把它放在那里,让其他人偶然发现这个问题。我们正在使用OpenTNL作为我们的游戏,Bitfighter,我一直对其运作良好感到惊讶。如果你能和GPL一起使用它是免费的。

答案 7 :(得分:0)

如果您是游戏开发的新手,我建议使用XNA-它很容易编程。然而,Torque的优势在于它拥有资产创造工具,这也是非常宝贵的。对于更高端的游戏或FPS,Source引擎很棒。

相关问题