常用开源游戏服务端框架比较
基本信息
框架
出现年份
维护者/社区
自身语言
支持使用的语言
是否支持脚本扩展
文档完善程度
社区支持度
适用游戏类型
Nakama
2015年
Heroic Labs
Go
Go, C#, Java, JavaScript, Lua, Python
支持
4
5
跨平台游戏、社交游戏、实时多人游戏
Photon
2009年
Exit Games
C++, C#, Java
C++, C#, Java, JavaScript, Objective-C, Swift, Python
不支持
3
4
实时多人游戏
Pitaya
2017年
Pitaya Network
Go
Go, C#, Java, Lua, Python
支持
3
3
实时多人游戏
KBEngine
2014年
kbengine
Python
Python
支持
3
4
大型多人在线游戏、实时战略游戏、休闲游戏
Skynet
2012年
cloudwu
C
Lua
支持
2
4
网络服务、游戏后台、物联网
DarkRift
2010年
DarkRift Networking
C#
C#
不支持
2
3
实时多人游戏
Colyseus
2017年
endel
TypeScript
TypeScript, JavaScript
不支持
4
4
策略游戏、卡牌游戏、MOBA
功能特性
框架
分布式
帧同步
实时多人
非实时多人
聊天系统
排行榜
社交系统
匹配系统
脚本扩展
数据库
Nakama
支持,使用Raft协议
支持,基于客户端预测和服务器校验
支持
支持
支持
支持
支持
支持,基于Elo算法
支持,使用Lua
支持PostgreSQL和CockroachDB
Photon
支持
支持,基于客户端预测和服务器校验
支持
支持
支持
支持
支持
支持,基于Elo算法
不支持
支持NoSQL和MySQL
Pitaya
支持,使用Raft协议
支持,基于客户端预测和服务器校验
支持
支持
支持
支持
支持
支持,基于Elo算法
支持,使用Lua
支持MongoDB和Redis
KBEngine
支持
支持,基于状态同步
支持
支持
支持
支持
支持
支持,基于Elo算法
支持,使用Python
支持MySQL、MSSQL、Oracle等多种数据库
Skynet
不支持
不支持
支持
支持
不支持
不支持
不支持
不支持
支持,使用Lua
支持MySQL和MongoDB
DarkRift
不支持
支持,基于状态同步
支持
支持
不支持
不支持
不支持
不支持
不支持
不支持
Colyseus
不支持
支持,基于客户端预测和服务器校验
支持
支持
不支持
不支持
不支持
不支持
不支持
支持MongoDB和SQLite
功能特性2
框架
用户认证
数据同步
通信协议扩展
房间管理
AI
AOI
寻路
后端物理
大世界支持度
Nakama
支持
支持,支持状态同步和事件同步
支持自定义协议
支持,具有灵活的房间管理和自定义属性
支持
支持
支持
不支持
支持
Photon
支持
支持,支持状态同步和事件同步
支持自定义协议
支持,具有多种房间类型和灵活的房间属性
支持
支持
支持
支持
支持
Pitaya
支持
支持,支持状态同步和事件同步
支持自定义协议
支持,具有多种房间类型和灵活的房间属性
支持
支持
支持
不支持
不支持
KBEngine
支持
支持,支持状态同步和事件同步
支持自定义协议
支持,具有多种房间类型和灵活的房间属性
支持
支持
支持
支持
不支持
Skynet
不支持
支持,支持状态同步和事件同步
支持自定义协议
不支持
不支持
不支持
不支持
不支持
不支持
DarkRift
不支持
支持
支持自定义协议
支持,具有多种房间类型和灵活的房间属性
不支持
不支持
不支持
不支持
不支持
Colyseus
支持
支持,支持状态同步和事件同步
支持自定义协议
支持,具有多种房间类型和灵活的房间属性
不支持
不支持
不支持
不支持
不支持
其他
Pitaya 作为 Go 语言的游戏服务端框架,使用了很多 Go 社区的组件,比如 etcd 和 NATS 。具体而言,使用 etcd 作为服务注册和发现的中心,用于管理服务器集群的状态和位置信息;而使用 NATS 作为消息中间件,用于实现服务器之间的通信和消息路由。