C#游戏网络库

C#游戏网络库

C# Game Network Library

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

{EDIT}我忘记提到出于某些原因,我倾向于使用WCF和.NET 3。首先,因为我想减小下载量,所以我的大多数客户已经安装了.NET 2.0。其次,因为我想选择移植到Mac和Linux,并且不确定Mono中WCF的可用性。 {/ EDIT}

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

这可能是我要寻找的...


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


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

Lidgren.Network is a networking library for .net framework which uses
a single udp socket to deliver a simple API for connecting a client to
a server, reading and sending messages.


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

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


一个古老的问题,但是我会把这个问题提供给其他偶然发现这个问题的人。我们在游戏《 Bitfighter》中使用的是OpenTNL,我一直对它的运行效果感到惊讶。如果您可以使用GPL,则它是免费的。


尽管这个问题还很老,但是专门为游戏开发的更高级别的系统是APlay-支持的平台也是C#。有评估版,可供个人免费使用。

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

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


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


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


如果您是游戏开发的新手,我建议您使用XNA,它很容易编程。但是,Torque的优点是它具有资产创建工具,这也是无价的。对于高端游戏或FPS,Source引擎很棒。


推荐阅读

    linux重置网络命令?

    linux重置网络命令?,网络,地址,工作,环境,系统,信息,标准,设备,命令,工具,lin

    linux高级网络命令?

    linux高级网络命令?,网络,地址,系统,工作,信息,管理,设备,电脑,命令,目录,Lin

    linux如何在线装命令?

    linux如何在线装命令?,软件,系统,环境,发行,在线,名称,简介,工具,设备,做好,

    linux数据库查找命令?

    linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,

    linux网络参数命令?

    linux网络参数命令?,网络,地址,系统,工作,信息,工具,情况,服务,状态,命令,Lin

    linux数据库同步命令?

    linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,D

    linux下创建网络命令?

    linux下创建网络命令?,网络,地址,工作,系统,管理,命令,名字,最新,项目,设备,l

    linux命令行链接网络?

    linux命令行链接网络?,网络,系统,地址,工作,工具,最新,网址,数据,信息,环境,l

    linux网络速度命令?

    linux网络速度命令?,网络,工作,地址,系统,电脑,命令,网卡,信息,通讯,设备,Lin

    linux网络开启命令行?

    linux网络开启命令行?,网络,地址,系统,环境,设备,工作,通用,服务,数据,网址,

    linux建立数据库命令?

    linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服

    linux命令进数据库?

    linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,

    linux的配置网络命令?

    linux的配置网络命令?,地址,系统,网络,代码,服务,管理,密码,信息,基础,命令,l

    linux下查网络命令?

    linux下查网络命令?,网络,系统,地址,工具,状态,管理,基础,服务,中心,信息,lin

    linux网络命令查询?

    linux网络命令查询?,信息,网络,系统,地址,工作,状态,技术,电脑,命令,设备,lin

    linux清空表数据命令?

    linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,L

    linux拷贝数据命令?

    linux拷贝数据命令?,系统,地址,文件,数据,命令,目录,服务,基本知识,项目,密

    linux网络延时命令?

    linux网络延时命令?,网络,时间,检测,地址,电脑,系统,设备,工具,基础,管理,lin

    linux网络联通命令?

    linux网络联通命令?,网络,地址,工作,系统,信息,联通,电脑,命令,检测,管理,Lin

    linux网络驱动器命令?

    linux网络驱动器命令?,网络,系统,电脑,最新,位置,检测,地址,材料,数据,命令,l