从易用性和成本等综合考虑,我们先采用2个项目选用KBEngine来开发,一个是IO游戏,一个是MMORPG。
开源地址:https://github.com/kbengine/kbengine
Fork次数1300
Issues 22
Pull requests 12
Star:2000
作者:柯标
作者QQ:3603661
作者邮箱:kbesrv@gmail.com
最新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=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底层架构被设计为多进程分布式动态负载均衡方案,
理论上只需要不断扩展硬件就能够不断增加承载上限,单台机器的承载上限取决于游戏逻辑本身的