KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 940|回复: 7

自己将重量级的kbe 提炼出了轻量级mini-kbe

[复制链接]

8

主题

16

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2018-5-15 09:19:16 | 显示全部楼层 |阅读模式
本帖最后由 xiaoyu 于 2018-5-15 09:28 编辑

作为一个商业强大的 服务器引擎, kbe 各方面功能都非常强大, 但是作为学习资料,却有点无从下手, 所以我提炼了 kbe精华, 弄了个轻量级的 mini-kbe 。github 地址: https://github.com/MirLegend/mini-kbe

The essence of KBEngine \ 轻量级的kbengine服务器实现
保留了kbengine中最核心的 network、server库,  保持了服务器最核心组件拓扑结构(login、logger、basemgr、cellmgr、dbmgr、base、cell) basemgr、dbmgr、cellmgr唯一,  login、base、cell可以多个负载。
简化了resmgr功能  
resmgr不使用环境变量方式读取资源路径,改用直接本地配置。

去掉了kbe中复杂的machine机制  各个组件的连接使用配置简化,例如 base 要连接basemgr,不使用machine udp广播发包,  直接读取本地配置,找到依赖组件的ip 和端口。

暂时去掉了python脚本功能支持kbe另外一大核心就是 模块def文件,def实体定义文件 分为 解析 和 绑定到脚本 两大部分,这是kbe里面的重点也是难点。mini-kbe去掉了这部分

暂时去掉了数据库功能  
后续会添加mysql 和 redis的 搭配。 mysql做永久存储、redis做缓存的多级数据库方案。

暂时去掉了性能统计模块。
     轻量原则,暂时去掉性能统计这块。kbe性能监视模块比较强大,后续会添加。

去掉了kbengine中rpc机制,
     网络通信数据传输方式 将2进制方式 改为传统的protobuf来传输。      服务器使用原生protobuf c++, 客户端使用云风的lua_pbc。

简化并优化了网络协议宏,
     保留简化了网络消息解析 handle 宏, 保持原有的简杰、封装的特性,详见各个服务器组件消息定义文件 ***_interface.h
kbe 引擎最核心类结构:
     最核心的eventdispatch 主要复杂三大类功能: 定时器、任务task、网络, 服务器游戏逻辑主要在 定时器里面实现。
kbe 引擎组件结构:






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-5-15 09:43:50 | 显示全部楼层
厉害了
QQ:3603661
3603661@qq.com
回复

使用道具 举报

0

主题

1

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2018-5-16 09:16:15 | 显示全部楼层
把我想法 先实现了 支持啊 是哪个版本提取的
回复

使用道具 举报

8

主题

16

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2018-5-22 10:06:44 | 显示全部楼层
添加了数据库操作模块, 简化了kbe数据库功能, kbe原来数据表 分为两类表 : entityTable、kbeTable。 entityTable实体表是根据def文件属性 来自动生成的,可以实现自动加载功能, 而kbeTable 有点像传统游戏自建的表。 minikbe 目前没有实体概念 所以去掉了entityTable,保留了kbeTable来实现手动建表功能。后面会实现类似添加配置文件 自动建表功能。

kbe 里面有个笔误问题:
login 在向basemgr 查询 base 地址信息时, login 发送了 登陆账号类型, 而在 basemgr却解析为 COMPONENT_TYPE 类型。
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-5-22 12:12:18 | 显示全部楼层
不是笔误, memstream只做了识别COMPONENT_TYPE 类型, 当时偷了个懒, baseapp做了强制转换。
已经修正了, 用int传输
QQ:3603661
3603661@qq.com
回复

使用道具 举报

21

主题

43

帖子

219

积分

中级会员

Rank: 3Rank: 3

积分
219
发表于 2018-5-31 22:39:48 | 显示全部楼层
厉害,逻辑放在哪里呢,可以跟unity通信吗
回复

使用道具 举报

20

主题

123

帖子

358

积分

中级会员

Rank: 3Rank: 3

积分
358
发表于 2018-6-27 11:26:21 | 显示全部楼层
mark  不明觉厉 越用越觉得kbe厉害 可是总感觉在模块化这块做的不自由
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-6-27 13:30:38 | 显示全部楼层
引擎的目标是尽一切能力简单化快速出项目, 不是为了高度diy底层而生。
将来甚至会朝可视化拖拽高速出项目的目标发展
QQ:3603661
3603661@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-10 18:58 , Processed in 0.035034 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表