Home - changnet/MServer GitHub Wiki

小型分布式游戏服务器引擎(Mini Distribute Game Server)

MServer是一个轻量级的游戏服务器引擎,设计的目标是灵活可扩展、高效、易用。引擎核心用C++实现,运行性能高,而游戏逻辑则用Lua脚本实现,运行稳定不会宕机并且开发效率高,能降低开发成本。引擎提供大量游戏开发常用的组件,如寻路、数据库等等,开发人员只需要专注实现游戏逻辑代码即可,而无需重重复复实现这些通用的组件。引擎本身拥有很好的扩展性,可以部署成多进程来适配MMO类型的游戏,也可以部署成单进程来适配小游戏。

功能

  • 热更新
  • 多线程日志
  • RPC(基于bson)
  • 网络(Tcp、Http、websocket),均支持SSL、ipv6
  • Lua 面向对象设计
  • 协议自动解析(支持Protobuf、FlatBuffers)
  • 异步、coroutine同步数据库操作(支持MySQL、MongoDB)
  • 关键字过滤(AC算法)
  • 加密相关(md5、base64、sha1、uuid ...)
  • JSON、XML序列化、反序列化

进程结构

+--------------------------------------------------+
|                                                  |
|              Lua Game Application                |
|                                                  |
+--------------------------------------------------+
|                                                  |
|              Lua C++ Driver                      |
|                                                  |
+--------------------------------------------------+
|              C++ Component                       |
| +--------------+---------------+---------------+ |  thread   +---------+      +----------------+
| |  SSL         |    Socket     |   Protobuf    | <----------->   Log   +------>   Disk Files   |
| +--------------+---------------+---------------+ |           +---------+      +----------------+
| |  Navigation  |   AOI         |  Timer        | |
| +--------------+---------------+---------------+ |  thread   +---------+      +----------------+
| |  Crypto      |  JSON/XML     |  RPC          | <-----------> MariaDB +------> MariaDB Server |
| +--------------+---------------+---------------+ |           +---------+      +----------------+
| |  Http        |               |               | |
| +--------------+---------------+---------------+ |  thread   +---------+      +----------------+
| |  WordFilter  | FlatBuffers   |               | <-----------> MongoDB +------> MongoDB Server |
| +--------------+---------------+---------------+ |           +---------+      +----------------+
+--------------------------------------------------+
⚠️ **GitHub.com Fallback** ⚠️