kbengine文档,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: