6

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

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

我正在寻找网络图书馆的建议。我找到了一些选项,例如 GarageGames 的 Torque Network Library (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/

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

4

8 回答 8

5

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

于 2008-09-05T21:12:57.463 回答
4

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

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

于 2011-12-04T00:04:54.907 回答
2

我还想指出“Windows 游戏”,XNA 在 Windows 上使用它的 Live!网络 API 现在是免费的……这意味着如果您编写使用网络功能的 XNA 游戏,您的用户不必拥有黄金会员资格:-)

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

于 2008-09-16T16:41:12.283 回答
1

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

于 2008-09-05T21:03:49.937 回答
1

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

于 2009-01-14T03:55:41.293 回答
1

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

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

如果您想自己处理套接字,那不是正确的事情。另请注意,我是 APlay 的开发人员,所以这是一个有偏见的答案。

于 2011-05-09T13:20:59.193 回答
1

An ancient question, but I'll put this out there for anyone else who stumbles across this. We're using OpenTNL for our game, Bitfighter, and I am consistently surprised at how well it works. And it's free if you can live with GPL.

于 2012-01-15T22:01:10.530 回答
0

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

于 2008-09-16T16:46:01.630 回答