NGL 游戏/软件 服务器框架产品系统

我要开发同款
nlx2026年07月21日
6阅读

技术信息

语言技术
C++PHPC
系统类型
Linux
行业分类
游戏开发工具

作品详情

行业场景

对软件/游戏 提供完整的后端支持
网络游戏行业(移动端休闲肉鸽、横版仙侠 MMO、二次元联机手游),面向中小型游戏研发工作室、独立游戏开发者,网游服务器后端搭建场景。

功能介绍

NGL 是基于 C++ 自主研发的Actor 模型 + ECS 实体组件游戏服务器内核框架,内核与业务逻辑完全解耦,以动态 DLL 插件形式加载业务代码,做到热更新不重启服务,核心模块功能拆分:
网络通信模块
封装 TCP 长连接网关、断线重连、数据包编解码、消息分发;适配移动端弱网环境,做心跳保活、数据包防抖;
网关 + 逻辑服分离架构,支持多进程分布式部署。
Actor 并发调度内核
以 Actor 作为最小调度单元,玩家角色、怪物、NPC、副本全部封装为独立 Actor,无锁并发,规避多线程竞争死锁;大世界按地图分片拆分 Actor 集群,降低单进程压力。
ECS 实体组件系统
摒弃传统面向对象继承写法,角色属性、装备、技能、Buff 均拆分为独立组件,按需挂载,内存占用更低,便于肉鸽游戏随机词条、属性动态生成。
游戏核心业务基建
AOI 视野管理:大世界玩家互相可见、怪物感知玩家范围计算;
A * 网格寻路:横版场景无障碍寻路、障碍物规避;
行为树 AI 编辑器绑定:怪物巡逻、追击、释放技能整套 AI 逻辑可配置;
副本房间管理器:肉鸽随机房间组合、闯关进度存储、单人 / 多人房间隔离。
数据持久化 & 存储
适配 MySQL + 内存缓存,玩家账号、背包、养成数据定时落盘;宕机自动缓存回写,避免存档丢失;极简配置无需复杂中间件。
运维与性能监控
内置 CPU、内存、玩家在线人数、消息吞吐实时统计日志;报错堆栈打印、异常玩家会话捕捉,方便线上排障。

项目实现

框架以 Actor 模型作为并发内核,采用两层调度架构:

schedule_layer(调度层):若干独立调度单元,各自持有互斥锁与调度线程,负责把就绪的 actor 投递给工作线程。
actor_manage(路由层):单例,管理共享工作线程池,按 dataid/type 对 actor 进行路由分散,均衡负载。
消息分发使用双优先级队列(普通 FIFO + 高优先级分桶),支持动态 actor、单例 actor、广播机制与脚本扩展。actor 的创建通过模板工厂 actor_base::create 完成,消息处理器注册使用 C++17 折叠表达式 register_handle,写法现代且类型安全。
分层隔离显著降低锁竞争,工作线程池与调度逻辑解耦。
路由按数据/类型分散,具备水平扩展基础。
优先级队列让实时性业务(如战斗)可抢占普通业务。
1.2 分布式拓扑:单二进制多角色
这是该框架在架构上最具实用价值的设计之一。整个服务端只有一个可执行文件 node,启动方式为:

node
进程启动后,从 tab_servers.csv 反查该节点的类型,装载对应的 actor 集合(见 server_main.cpp 的 switch(nodetype()) 分发)。这意味着:

一套代码、一个镜像即可扮演 12 种节点角色,差异完全由启动参数与配置表驱动。
节点的网络布局、线程数、依赖关系全部由 tab_servers.csv 这一张表集中描述,运维视角清晰。
多区(area)与跨服(cross)在表结构层面就被一等公民地建模。
这种"配置即拓扑"的设计,使框架的部署形态非常适合容器化与水平伸缩。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论