kbengine文档,
之前很久就想分析一个开源服务器,但是想了很多还是选择了kbengine。
KB的服务器端底层框架用C编写,游戏逻辑层用Python(支持热更新)。目前大部分服务器都是C做的,用python做脚本,另一个是lua。
KB底层架构设计为多进程分布式动态负载平衡方案。理论上,单机的承载极限取决于游戏逻辑本身的复杂程度,只有不断扩充硬件。这里不太懂多进程分布。我一会儿再回答。
kbengine的主要组件
baseapp,baseappmgr,cellapp,cellappmgr,dbmgr,loginapp,machine .
工作组件:
机器人,GUI控制台,接口,记录器.
带有mgr后缀的组件是相应的管理器。
数据库是mysql,可以考虑加redis。
基本组件描述登录应用程序:
认证、注册、接入端口。可以在多台机器上部署多个loginapp进程进行加载。
dbmgr:
高性能多线程数据访问。使用Mysql作为默认数据库。
baseapp:
客户端和服务器的交互只能通过loginapp分配的baseapp来完成。定期将实体数据写入数据库,备份baseapp数据,灾难恢复。可以在多台机器上部署多个baseapp进程来平衡负载。脚本层通常选择实现社交系统、广播聊天、排名、游戏厅等逻辑系统。在baseapp上。
baseappmgr:
协调所有baseapp的工作,包括baseapp的负载均衡等。
Cell App:处理与游戏的空间和位置相关的逻辑,例如:AOI、导航、AI、战斗等。可以在多台机器上部署多个cellapp进程来动态平衡负载。
cellappmgr:
协调所有cellapp工作,包括负载平衡。
机器:
抽象一个服务器硬件节点(一个硬件服务器中只能存在一个这样的进程)。主要用途是接收远程指令处理本机组件的启动和关闭,提供本机运行组件的访问端口,收集当前机器的一些信息,如CPU、内存等。这些信息将被提供给一些感兴趣的组件。
客户:
客户端会提供基本框架,不包括渲染部分和I/O部分的具体实现。我们将提供一个lib文件和一组API接口。开发者可以选择使用自己的图形渲染引擎和I/O控制部分。Unity3D,HTML5,Cocos2d等技术,我们提供相关插件,可以快速连接服务器。
组件描述接口:
支持快速访问第三方计费、第三方账户和第三方数据,快速与操作系统耦合。
记录器:
收集和备份每个组件的运行日志。
其他组件描述BOTS:机器人,通常用于压力测试。
GUI控制台:
可视化控制台,这个图形工具只能在Windows中运行。
服务器架构的组成:- logins RV x N bases RV x N bases rvmgr x 1 --------- cells RV x N cells rvgr x 1 ----------- db mgr x 1 interfaces x 1 ---------MySQL x 1 -
目录:- kbengine(KBE_ROOT根目录)- assets(游戏项目的默认资源库,可以添加新的资源库并通过环境变量绑定)- res(所有资源文件)- spaces(通常存储与游戏场景相关的资源,例如Navmesh)- server(通常放置与服务器相关的配置文件)- scripts(所有游戏逻辑,Python文件)-base(base的Python逻辑)-cell(cell的Python逻辑)-client(客户端的Python逻辑)- bots(机器人的Python逻辑, test)- common -data -db -entity _ defs -interfaces -server _ common -user _ type -KBE -tools -server -GUI console -install -py cluster 一个跨平台的集群控制Python脚本工具-xlsx2py(游戏数据表导出工具)- src(KBEngine源代码)- build(makefile公共脚本)- client(客户端插件和示例目录)- kbengine_dll(Windows应用程序插件源代码)-common(公共目录- db_mysql(Mysql访问实现)- dbmgr_lib(数据访问公共接口)- dependencies - entitydef(实体定义解析模块) -helper(一些通用辅助模块)- math(与数学相关)- navigation(2D/3D导航模块)- network(网络模块)- pyscript(脚本插件)- python(python源代码)- resmgr(资源管理器)- server(服务器端公共模块) -thread -XML Plus - libs(编译*)。 lib,*。a文件)- server(服务器app源代码)- baseapp(baseapp源代码)- baseappmgr(baseappmgr源代码)- cellappmgr(cellappmgr源代码)- dbmgr(dbmgr源代码) -loginapp(loginapp源代码)- machine(机器源代码)- resourcemgr(resourcemgr源代码)- tools(服务器助手工具)- interfaces(支持第三方计费、第三方账户等的接口。)- bots(压力测试、虚拟客户端、源代码)- guiconsole(可视化控制台工具源代码)- message_log(服务器日志收集工具源代码)- res(引擎资源目录)- key(RSA key) - scripts(Python脚本库)- server(服务器引擎配置) -log4cxx_properties(log4cxx配置)- doc(指南文档源代码)-听话发卡(编译可执行文件存储目录)- client(编译客户端exe可执行文件存储目录)- server(编译服务器可执行文件
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。