来源:博客
大概在这半年时间里,我接触了3款网络引擎,它们分别是:
openTNL (http://www.opentnl.org )
SDL_net (http://www.libsdl.org/projects/SDL_net/ )
Radnet (http://www.rakkarsoft.com )
三款网络引擎都是为游戏设计的,下面我来谈一谈我对三款引擎的看法。
OpenTNL 来自于Torque 3D游戏引擎,关于Torque 的信息,请访问 http://www.garagegames.com/ 。应该说openTNL是Torque 的一部分。可以跨平台运行,也有许多丰富的文档和教程,但它却有一个致命的弱点――使用过于复杂。因为Torque属于那种早期的游戏引擎,所以在OpenTNL中,很多的编码方式都与你所学的不同,你需要花费很多的时间去学习它。我想这也是为什么OpenTNL没有做过许多项目的原因。
SDL_net 来源于SDL,也是一个跨平台的网络引擎。SDL_net使用C语言写成,学习起来也简单明了,但SDL_net太年轻了,只发展了短短几年时间。因此,SDL_net还存在太多的BUG(错误),另外缺少足够的支持文件也是它发展缓慢的原因,毕竟,它太年轻了。
Radnet 可以说是基于上述两款引擎的优点为一体。它既有OpenTNL的文档丰富,又有SDL_net的使用简单。
在接下来的日子里,我们将讲解如何使用Radnet,让你充分享受网络给你的快感。
Radnet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。
Radnet有以下好处:
高性能 在同一台计算机上,Radnet可以实现在两个程序之间每秒传输25,000条信息;
容易使用 Radnet有在线用户手册,视频教程。每一个函数和类都有详细的讲解,每一个功能都有自己的例程;
跨平台,当前Radnet支持Windows, Linux, Macs,可以建立在Visual Studio, GCC, Code: Blocks, DevCPP 和其它平台上;
在线技术支持 RakNet有一个活跃的论坛,邮件列表,你只要给他们发信,他们可以在几小时之内回复你。
安全的传输 RakNet在你的代码中自动使用SHA1, AES128, SYN,用RSA避免传输受到攻击
音频传输 用Speex编码解码,8位的音频只需要每秒500字节传输。
远程终端 用RakNet,你能远程管理你的程序,包括程序的设置,密码的管理和日志的管理。
目录服务器 目录服务器允许服务器列举他们自己需要的客户端,并与他们连接。
Autopatcher Autopatcher系统将限制客户端传输到服务端的文件,这样是为了避免一些不合法的用户将一些不合法的文件传输到服务端。
对象重载系统
网络数据压缩 BitStream类允许压缩矢量,矩阵,四元数和在-1到1之间的实数。
远程功能调用
强健的通信层 可以保障信息按照不同的信道传输
RakNet支持两种版权,如果你是做免费游戏,RakNet将是免费的。相反,你必须支付一定的费用。
从这里你可以下载到最新的RakNet:
http://www.rakkarsoft.com/raknet/downloads/RakNet.zip