從易用性和成本等綜合考慮,咱們先採用2個項目選用KBEngine來開發,一個是IO遊戲,一個是MMORPG。node
KBEngine綜合調查參數 :python
發佈時間2012年6月,mysql
開源地址:https://github.com/kbengine/kbenginec++
Fork次數1300git
Issues 22github
Pull requests 12redis
Star:2000sql
做者:柯標
做者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、UE四、OGRE、HTML五、等等)結合造成一個完整的客戶端。
引擎使用C++編寫,開發者無需重複的實現遊戲服務端通用的底層技術,
將精力真正集中到遊戲開發層面上來,穩定可靠而且快速的打造各類網絡遊戲。
(常常被問到承載上限,KBEngine底層架構被設計爲多進程分佈式動態負載均衡方案,
理論上只須要不斷擴展硬件就可以不斷增長承載上限,單臺機器的承載上限取決於遊戲邏輯自己的