KBEngine调研报告

本文档主要是调研分析新的手游服务端架构,由于自研框架很难直接扩展到未来不同项目上,为公司下几款款手游服务端研发提供可参考的方案。主要的参考点是数据持久化,并发效率,分布式,沙盒机制,热更新机制,研发维护成本。如果从头根据需求开发一款新的服务器架构,需要大量的时间,而且可能会得不偿失,一款新的架构稳定都需要时间的。我们应该尝试使用开源的,成熟的,活跃度高的开源框架。正文将先从服务器设计需要考虑的因素进行需求分析,以至明确我们需要的服务器架构原型,然后再分析现有的开源架构方案。

能够站在巨人的肩膀上,利用前人的研究成果,是最快最有效的方式。开源的游戏服务器有很多,根据我们自身的因素,选择合适的。这样的服务器引擎目前比较活跃的有:KBEngine(c++ + python),  scut(c#/python),pomelo(nodejs)。

从易用性和成本等综合考虑,我们先采用2个项目选用KBEngine来开发,一个是IO游戏,一个是MMORPG。

KBEngine综合调查参数 :

发布时间2012年6月,

开源地址:https://github.com/kbengine/kbengine

Fork次数1300

Issues  22

Pull requests 12

Star:2000

最新release版本:V0.9.17

代码提交次数:> 5000

社区关注人数:论坛4000(http://bbs.kbengine.org/) + QQ群5000, 交流比较活跃

持续维护:截止到现在仍然持久维护

从社区和网络收集到的成功案例:创世Online(大型MMORPG端游),酷跑大乱斗(2D横版),弹球大作战(VR 实时房间对战),逆转卡牌,坦克英雄,等等。

招聘考察:百度搜索关键字 “熟悉kbengine优先”,可以发现数十家公司将其作为考核加分项,说明该技术具备一定影响范围。

各种Demo: 

Unity3d : https://github.com/kbengine/kbengine_unity3d_demo/releases/latest
Unity3d : https://github.com/kbengine/kbengine_unity3d_warring/releases/latest
UE4 : https://github.com/kbengine/kbengine_ue4_demo/releases/latest
Ogre : https://github.com/kbengine/kbengine_ogre_demo/releases/latest
Cocos2d_js : https://github.com/kbengine/kbengine_cocos2d_js_demo/releases/latest

其他:

http://bbs.kbengine.org/forum.php?mod=viewthread&tid=1940&extra=page%3D1

http://bbs.kbengine.org/forum.php?mod=viewthread&tid=4187&extra=page%3D1

各种文档:
http://bbs.kbengine.org/forum.php?mod=viewthread&tid=1&extra=page%3D1
http://kbengine.org/cn/docs
https://github.com/kbengine/kbengine/tree/master/docs

服务端组成

		      |----------|
		      |  client  | x N
		      |----------|

------------------------|-----|-------------------------------

|----------|	     |----------|         |----------|
| loginsrv | x N     |  basesrv | x N     |basesrvmgr| x 1
|----------|         |----------|         |----------|

------------------------|-----|-------------------------------

	|----------|            |----------|
	|  cellsrv | x N	|cellsrvmgr| x 1
	|----------|            |----------|

------------------------|-----|-------------------------------

	|----------|            |----------|
	|  dbmgr   | x 1	|interfaces| x 1
	|----------|            |----------|

------------------------|-----|-------------------------------

    |----------------------|

     | mysql | redis | mongodb | x N
     |--------------------------------|

 

稳定性测试:

https://www.youtube.com/watch?v=sWtk3CfxyGY
http://v.youku.com/v_show/id_XMjgyMjM0MTYwNA==.html?spm=a2h3j.8428770.3416059.1

服务端组件描述

· loginapp:
登录验证、注册、接入口。
可在多台机器部署多个loginapp进程来负载。 

· dbmgr:
高性能多线程的数据存取。
默认使用Mysql作为数据库。

· baseappmgr:
协调所有baseapp的工作,包括baseapp负载均衡处理等。

· baseapp:
客户端与服务端的交互只能通过loginapp分配的baseapp来完成。
定时写entity的数据到数据库、baseapp数据相互备份、灾难恢复。
可在多台机器部署多个baseapp进程来均衡负载。
脚本层通常会选择在baseapp上实现如:社交系统、广播聊天、排行、游戏大厅、等等逻辑系统。

· cellappmgr:
负责协调所有cellapp的工作,包括负载均衡处理等。

· cellapp:
处理游戏与空间和位置有关的逻辑,如:AOI、Navigate、AI、战斗等等。
可在多台机器部署多个cellapp进程来动态均衡负载。 

· client:
客户端我们将提供基础框架,这个框架不包括渲染部分和输入输出部分的具体实现,
我们将提供一个lib文件和一套API接口,开发者可以选择使用自己比较适合的图形渲染引擎与输入输出控制部分。
Unity3D, HTML5, Cocos2d等技术我们提供了相关插件,能够快速的和服务端对接。

· machine:
抽象出一个服务端硬件节点(一台硬件服务器只能存在一个这样的进程)。主要用途是接收远程指令处理本机上的组件启动与关闭,
提供本机上运行组件的接入口以及收集当前机器上的一些信息,
如:CPU、内存等。 这些信息会提供给一些对此比较感兴趣的组件。 

· interfaces:
支持快速接入第三方计费、第三方账号、第三方数据, 快速与运营系统耦合。

· guiconsole:
这是一个可视化的图形界面控制台工具,可以实时的观察服务端运行状态,实时观测不同Space中Entity的动态,
并支持动态调试服务端Python逻辑层以及查看各个组件的日志,启动服务端与关闭等。 

· logger:
收集和备份各个组件的运行日志。

简介

一款开源的MMOG游戏服务端引擎,
仅Python脚本即可简单高效的完成任何游戏逻辑(支持热更新),
使用配套客户端插件能够快速与(Unity3D、UE4、OGRE、HTML5、等等)结合形成一个完整的客户端。

引擎使用C++编写,开发者无需重复的实现游戏服务端通用的底层技术,
将精力真正集中到游戏开发层面上来,稳定可靠并且快速的打造各种网络游戏。

(经常被问到承载上限,KBEngine底层架构被设计为多进程分布式动态负载均衡方案,
理论上只需要不断扩展硬件就能够不断增加承载上限,单台机器的承载上限取决于游戏逻辑本身的复杂度。)
时间: 2024-10-31 21:37:51

KBEngine调研报告的相关文章

电梯调度——调研报告

需求调研报告 立项背景: 石家庄铁道大学基础教学大楼是一座18层的建筑,其内部配备4部电梯,学生和老师使用电梯的高峰时段相对集中于每次上课/下课的时段,故电梯的使用具有突发性和荷载量大的特点,故设计合理的电梯调度算法,避免出现 “公共汽车”,即把电梯作为总线,它从底部到顶部,停在每一层楼,打开门,让人们进出,然后把门关上,继续前进.之后到达顶层,它会下去.可以极大的提高电梯的工作效率. 石家庄铁道大学基础教学楼的电梯配置如下: 电梯数量:4部 电梯的最大容量为15人 电梯经过每楼层的时间:3秒

团队开发——用户需求调研报告

用户需求调研报告  项目名称: 智能点餐 项目编号 调研主题: 智能点餐需求调研 访谈时间:2015.4.12 调研地点: 学校门口马路两侧小吃摊 访谈部门: 小吃摊摊主和排队等待买饭的同学们 参与人员: {注明姓名.职务.联系方式等相关信息}  1.访谈目的 了解小吃摊是否有网上订餐服务,是否有这方面的需求: 同学们是否有网上订餐的愿望,以及有什么建议: 2.主要议题 寻找推出该订餐软件的意义所在  3.调研记录   表1.小吃摊主 问题 反馈 建议 平时买饭的人多吗? 平时买饭的人多,不是高

手电筒用户需求调研报告

用户需求调研报告 项目名称: 牛牛的手电筒 项目编号:xxx 调研主题: 牛牛的手电筒 访谈时间:2015/4/13 调研地点: 石家庄铁道大学 访谈部门: 宿舍 参与人员: 调查人:薛瑞景 张锡康 梁宗泳  被调查人:信1205 冯渊 1. 访谈目的 在用户群体中寻找我们软件的改进点. 2. 主要议题 1).对我们这款软件有什么特殊要求. 2).有什么好的建议. 3).了解用户对我们的的产品的总体感觉. 3. 调研记录 业务主题:对周围人群进行调查. 软件类型:手电筒,app应用 软件介绍:这

Ohloh调研报告

1.背景 因为最近在搞ospaf也是就是一个开源项目成熟度分析工具,因为项目跟Ohloh有一些共同点,所以对ohloh进行了调研. 简单来说,最初的ohloh是一个代码搜索工具.我们输入一行代码,然后他可以查找到这行代码出现在那些开源软件的哪些类中,还是比较强大的,特别是在进行一些源码追踪的任务的时候.如下图所示,当我输入"python"的时候,它会显示python出现在哪些开源文件里面. 后来ohloh被黑鸭子公司收购,整合完成了openhub这个网站,网址是https://www.

SANS:2016年网络威胁情报现状调研报告

2016年8月份,SANS发布了最新一期有关网络威胁情报的发展现状调研报告. 注意,本文不是译文.原文请前往http://www.sans.org/reading-room/,题为<The SANS State of Cyber Threat Intelligence Survey: CTI Important and Maturing>,需翻墙. 报告指出,随着网络空间安全威胁日趋严重,网络威胁情报(CTI)的作用更加凸显.41%的受访者表示他们运用CTI的能力趋于成熟,更有26%的人表示能

团队博客----用户需求调研报告

用户需求调研报告 项目名称: 渴了么 项目编号:20140415 调研主题: 用户对软件的需求 访谈时间: 调研地点: 教室 访谈部门: “渴了么”科研团队 参与人员: 赵永恒 1. 访谈目的 通过与宿舍楼同学的讨论,得知“渴了么”在同学之中是否能够产生很大的用途. 2. 主要议题 1.企业总体业务流程 2.各个表单指标需求 3.业务与其他系统的接口 3. 调研记录 在学生方面(因为相对之前的电话订水,app订水能够节省通讯费用,而且操作简单),而对于送水单位来讲,他们最想要获得的应该是在管理上

结对开发:7-magic用户调研报告

用户调研报告 班级   信1201-2班  学号   20122929     姓名  崔乐乐 项目名称:7-magic 调研时间: 2015/4/14 调研主题:7-magic游戏的用户需求度调研 调研地点:第九实验楼 调查对象:信息学院教育班 参与人员:{注明姓名.职务.联系方式等相关信息} 马威  生活委员18330108369 卢雪松 学生18330108894 李杰  学生18330109372 薛亚普  体育委员18330108895 张建强 学生 18330108609 唐先明 劳

SANS:2014年安全分析与安全智能调研报告

2014年10月份,紧接着2014年度日志管理调研报告(Log management survey),SANS又发布了2014年度的安全分析与智能调研报告(Analytics and Intelligence Survey 2014). 正如我之前博客所述,SANS认为安全分析与日志管理逐渐分开了,当下主流的SIEM/安管平台厂商将目光更多地聚焦到了安全分析和安全智能上,以实现所谓的下一代SIEM/安管平台.而安全分析和安全智能则跟BDA(大数据分析)更加密切相关. SANS对安全智能的定义采纳

SANS:2015年安全分析与安全智能调研报告

2015年11月,SANS发布了第三次安全分析与安全智能调研报告2015年版(Analytics and Intelligence Survey 2015).报告对来自全球的企业和组织共计476位专业人士进行的调研访谈.今年的调研问题比去年更加深入. 调研表明,与去年相比,大家对安全分析与安全智能的认知更高了,应用也更多了,但距离理想目标依然还有不小的差距,尤其是合格的从业人员(分析师)的短缺问题更加突出了.对于大数据技术应用于安全分析这个问题,得到了更多人士的认同.相较于安全数据的大数据化这个