定义
RakNet 是一套面向游戏的网络中间件,以 C++ 编写,后续也提供 C# 支持,用于在客户端与服务器之间建立并管理联网通信[2][5]。它属于跨平台、开源的网络引擎,可在不同操作系统与游戏主机上运行,开发者把它集成进项目,即可获得较为完整的联网功能[2]。
作为中间件,它的定位是节省开发者自行实现底层网络逻辑的时间,把数据包收发、连接维护、对象同步等常规工作封装为可直接调用的接口[2]。
原理
RakNet 建立在 UDP 传输协议之上,而不是直接使用 TCP[2]。UDP 本身不保证送达顺序与到达率,因此 RakNet 在 UDP 之上自行实现可靠传输、排序与拥塞控制,使数据既保留低延迟特性,又能在需要时获得可靠投递[2][6]。其早期版本只提供每秒最多 30 个数据报的可靠 UDP 功能,之后能力不断扩展[2]。
引擎提供对象复制与远程过程调用两类核心机制:前者把服务器端的游戏对象状态同步到各客户端,后者允许一端调用另一端上的函数[7]。它还包含打补丁、安全连接、语音聊天与实时 SQL 日志等功能,并通过 NAT 穿透帮助位于不同内网的玩家建立连接[8]。
发展历程
RakNet 由 Kevin Jenkins 编写,最初源于其所在团队为单人游戏加入联网功能的需求[2]。1.0 版本面向 PC 以站点许可证方式出售,定价 2000 美元,特点是文档详尽、易于上手;为吸引独立开发者,作者还发布了受 GPL 约束的免费精简版本,Linux 与 Mac 支持由社区补充[2]。约 2008 年起,RakNet 由个人项目转为商业化经营[2]。
2010 年至 2011 年间,RakNet 陆续加入 PlayStation 3 与 Xbox 360 平台支持,并与 Trinigy 的 Vision Engine、Terminal Reality 的 Infernal Engine 等引擎展开集成合作[9][4]。同期,NetDevil 将其用于《LEGO Universe》,Bigpoint 与 Slant Six Games 等也选择 RakNet 4[4]。
2014 年 7 月 7 日,Oculus VR 宣布收购 RakNet,并于当天以修改版 BSD 许可证将其开源,源代码托管在 Oculus 的 GitHub 仓库中,交易金额未披露[4][1]。此后 RakNet 不再提供商业授权,改为面向社区免费开放[2]。
应用
RakNet 的主要用途是多人游戏的联网部分,既被独立开发者采用,也被大型工作室用于商业项目[1]。授权使用其技术的企业包括 Unity、Havok、Mojang 与索尼在线娱乐,相关作品涉及《Minecraft》《LEGO Universe》等[3][1]。
在游戏引擎侧,RakNet 被集成进 Unity 的二进制代码中,Unity 采用的是 3.731 版本[10]。Trinigy 曾把 RakNet 4 免费纳入其 Vision Engine[4]。除游戏外,该引擎也被用于虚拟现实等需要实时网络通信的领域[1]。
局限
RakNet 的商业授权模式在扩张上存在限制。作者在回顾中称,尽管加入了 PS3 与 Xbox 360 支持,向大型工作室的销售增幅仅约 25%,不少新游戏启动画面展示的是其他中间件而非 RakNet[2]。市场营销方面的投入也未能带来预期效果,作者自述外包营销团队在数月内没有产生实质成果[2]。
2013 年 GameSpy 停止授权后,作者曾试图以 MasterServer2 与 Lobby3 替代其匹配服务,但开发过程中更换底层存储方案,后来认为这一决定并不合适[2]。随着 2014 年被收购并开源,RakNet 停止以许可证形式销售,原有商业客户只能通过原有渠道获取支持,新用户则需自行使用开源版本[2]。
参见
参考资料
- computerworld.com 上的网页 [引用日期2026-10-14]
- RakNet - Multiplayer game network engine [引用日期2026-10-14]
- Oculus VR Acquires Raknet Before Facebook Deal Closes [引用日期2026-10-14]
- RakNet | See You Online [引用日期2026-10-14]
- Oculus Acquires RakNet Middleware & Open-Sources It [引用日期2026-10-14]
- a cross-platform C++ game networking engine | OGRE Wiki [引用日期2026-10-14]
- Oculus acquires game networking engine RakNet [引用日期2026-10-14]
- 'raknet' tag wiki [引用日期2026-10-14]
- RakNet Multiplayer Network Engine Adds PlayStation 3 Support [引用日期2026-10-14]
- C# and Unity Manual [引用日期2026-10-14]