Skynet / KBEngine / BigWorld 完整介绍与横向对比
三者一脉相承:BigWorld 是商用MMO分布式鼻祖;KBEngine 开源复刻BigWorld架构;Skynet是轻量级底层Actor框架,不绑定MMO场景。
一、BigWorld(商业闭源引擎,MMO分布式范式起源)
基础信息
- 开发商:澳大利亚 BigWorld Pty Ltd,后被Wargaming收购;闭源商业授权引擎
- 诞生:2002年,曾经全球MMORPG标杆服务器方案
- 代表游戏:《天下贰/天下3》《坦克世界》《鹿鼎记OL》
核心架构思想(后世KBEngine直接借鉴)
- Entity实体模型 + 双区分离
- Base(基地实体):常驻进程,负责玩家账号、持久化数据、客户端连接;不会跨进程迁移
- Cell(场景实体):负责场景、移动、AOI、战斗、AI;玩家进入场景后实体迁移到对应Cell进程
- 分布式动态场景分片
大世界地图自动切分区块,区块可跨服务器运行;玩家实体可在不同CellApp之间无缝迁移,实现超大世界单服。 - Actor消息驱动,禁止跨对象直接调用,依靠消息通信
- 配套完整工具链:场景编辑器、服务监控、资源管线、客户端3D渲染引擎(完整游戏平台,不单是服务端)
优缺点
✅ 优势
- 成熟的大世界MMO分布式架构,动态负载均衡、实体迁移经过大量端游验证
- 服务端+客户端一体化整套方案
❌ 劣势 - 闭源、昂贵授权费;如今原始引擎不再持续迭代
- 架构笨重,对小型游戏严重过剩;开发约束强
- 不适合手游、轻度游戏;移动端适配差
现状:老端游遗产,新项目几乎不再采购;《坦克世界》团队自研改造,国内《天下3》已逐步替换自研引擎。
二、KBEngine(开源,开源版BigWorld)
基础信息
- 开源协议:开源(Gitee/GitHub)
- 底层:C++;业务逻辑:Python,支持热更新
- 定位:开箱即用的MMOG完整服务端引擎,架构高度模仿BigWorld
架构(复刻BigWorld组件划分)
- BaseApp:账号登录、玩家基础数据、客户端连接、持久化存储
- CellApp:场景Space、AOI、移动、战斗、AI、实体实时逻辑
- DbMgr、BaseAppMgr、CellAppMgr:集群管理、负载均衡、数据库代理
- 核心特性:Entity跨CellApp动态迁移、分布式大世界、自动负载均衡
配套生态
- 自带Unity/Cocos/UE/H5客户端SDK,协议封装完毕
- 内置数据库封装、日志、监控、自动落盘、实体热更新
- 开箱就能搭建MMO,不用从零搭建网络、场景同步层
优缺点
✅ 优势
- 完整MMO基础设施:AOI、实体迁移、大世界分布式全部内置
- 有现成客户端SDK,前后端联调成本低
- Python脚本快速开发,底层C++保证基础性能
❌ 劣势 - Python脚本密集业务容易成为性能瓶颈;重度战斗需要下沉C++
- 框架重度,组件繁多,自定义改造门槛高
- 社区活跃度一般,文档质量中等
适合场景
MMORPG、开放世界、沙盒、需要无缝大世界;不适合棋牌、卡牌、轻竞技小游戏
三、Skynet(云风开发,轻量级底层分布式框架)
基础信息
- 开源MIT协议;底层C,业务逻辑Lua
- 定位:底层通用Actor并发框架 ≠ 完整游戏引擎
关键区分:Skynet只提供「消息调度、Actor服务、网络、定时器」基础设施,没有内置AOI、场景、实体、数据库、客户端协议,全部需要开发者自己上层搭建。
核心架构
- 单进程内多线程调度,内部大量独立Lua Service(Actor)
- Service之间依靠消息队列异步通信,天然规避多线程锁问题
- 支持跨进程、跨机器组网,搭建分布式集群
- 极简内核,代码量很小,高度可定制
优缺点
✅ 优势
- 极度灵活、自由度拉满,架构完全由开发者掌控
- Lua热更新成熟,国内大量手游、中大型游戏生产验证(三国志、风之大陆等)
- 性能优秀,调试友好;社区活跃,资料丰富
- 不限于MMO:卡牌、棋牌、竞技、后台服务都能用
❌ 劣势 - 几乎零游戏高层组件,想要做MMO必须自己实现AOI、实体管理、场景集群、玩家迁移等大量轮子
- 没有官方客户端SDK,前后端协议需要自行封装
- 需要团队具备分布式架构设计能力
适合场景
团队有服务端架构能力;各类游戏均可;重度MMO、轻手游、竞技、棋牌、游戏后台网关、聊天、充值服务。
四、三者核心横向对比表
| 项目 | BigWorld | KBEngine | Skynet |
|---|---|---|---|
| 性质 | 商业闭源完整MMO引擎 | 开源MMO服务端引擎(复刻BigWorld) | 开源底层分布式Actor框架 |
| 技术栈 | C++ + Python | C++底层 + Python逻辑 | C底层 + Lua逻辑 |
| 内置MMO能力 | 全套(场景分片、实体迁移、AOI) | 全套开箱即用 | 无,全部自研 |
| 客户端SDK | 官方完整配套 | 内置多平台SDK | 无,自行实现协议 |
| 架构模型 | Base/Cell实体迁移模型 | Base/Cell实体迁移模型 | 通用Actor微服务模型 |
| 灵活性 | 低(引擎约束强) | 中(框架固定,改造难) | 极高,任意自定义架构 |
| 上手成本 | 高(商业授权,学习曲线陡) | 中等,直接写业务逻辑 | 高,需要造大量上层轮子 |
| 适用项目 | 传统端游MMO(新项目极少选用) | 中小型MMO、开放世界沙盒 | 全品类游戏,棋牌/卡牌/MOBA/MMO通用 |
| 开源状态 | 闭源商用 | 开源 | 开源MIT宽松协议 |
五、选型简单建议
- 想快速开发MMO,团队人手不足,不想从零搭建分布式场景架构 → KBEngine
- 团队有资深服务端,想要架构完全自主掌控,游戏类型不确定(不止MMO) → Skynet
- BigWorld:新项目基本不考虑,只存在老游戏维护场景
如果你需要,我可以再补充一份:基于Skynet搭建一套类KBEngine/ BigWorld Base-Cell分布式MMO架构的思路。