【问题标题】:C# Game Network LibraryC# 游戏网络库
【发布时间】:2013-01-21 01:45:38
【问题描述】:

我正在使用 .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/

可能就是我要找的……

【问题讨论】:

    标签: c# network-programming


    【解决方案1】:

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

    【讨论】:

    • 根据wiki“Microsoft XNA Framework 2.0 EULA 明确禁止在没有特定协议的情况下分发连接到 Xbox Live 和/或 Games for Windows Live 的商业网络游戏开发者和微软签署的协议。”
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 根据wiki“Microsoft XNA Framework 2.0 EULA 明确禁止在没有特定协议的情况下分发连接到 Xbox Live 和/或 Games for Windows Live 的商业网络游戏开发人员和 Microsoft 签署的协议。” - 这不再是真的吗?
      • 不幸的是,据我所知,这仍然是真实的 :-( 我真的希望他们能澄清这个故事
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

            【解决方案7】:

            这是一个古老的问题,但我会为任何偶然发现此问题的人提出这个问题。我们在我们的游戏 Bitfighter 中使用 OpenTNL,我一直对它的运行效果感到惊讶。如果您可以使用 GPL,它是免费的。

            【讨论】:

              【解决方案8】:

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

              【讨论】:

                猜你喜欢
                • 2010-12-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-04-11
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多