- 115
- 0
- 约5.8万字
- 约 53页
- 2017-07-09 发布于河南
- 举报
kbengine源代码读 v0.0.4
前言:v0.0.12015-04-10誉小痕(shawhen2012@)v0.0.22015-04-12誉小痕(shawhen2012@)v0.0.32015-04-23誉小痕(shawhen2012@)v0.0.42015-05-02誉小痕(shawhen2012@)changelog请查看:/forum.php?mod=viewthreadtid=247extra=page%3D1新增内容以**New in version x.x.x**标示友情提醒:打开Word的导航标题查看,因为我不会在文档内对标题进行缩进基于kbengine 0.4.20(兼容0.5.0)(现在和这份文档一起的有一个kbengine主干活动图,建议先看看那个图,参照图中的流程然后对照本文档理解流程的实现细节。活动图可在changelog帖子中找到下载地址)MMOG服务端是一种高品质的工程项目,品读开源的kbe是一种乐趣。本文档我带童鞋们一起领略一下。囿于我知识面和经验方面所限,文中所述之处难免有错误存在,还请读童鞋们睁大慧眼,如果你发现错误,可以电邮至shawhen2012@。(因为我个人懒散或者时间仓促的关系,这个文档的排版有点小乱。。。)其他牛逼哄哄的前言就不说了。从理论上来讲,我们阅读一份源代码,首先应该基于现有的文档从整体上把握项目的架构之后再庖丁解牛一般地细分阅读,不过在我写这个文档的现在,我暂时没发现这样的文档,所以我就按照我自己的阅读顺序从而编排这个文档的内容。**NEW in version 0.0.3**客户端概要:在过去0.0.2中我们对kbengine的服务端进行了大致流程的了解,接下来为了更加全面地了解到kbengine的整个框架流程(从理论上来讲不解读客户端我们也能完完整整地解读完服务端,不过我们还是看一看,以免管窥蠡测之嫌)。本文档采用Ogre的Demo,主干活动图现已更新到v0.0.2,包含ogre demo的活动图。你可能担心自己不会Ogre,会看不懂这个文档,其实不用太担心,我也不会,我之所以选Ogre,是因为Unity,cocos2d-x,Ogre这些我一个都不会;-(,但Ogre的demo对于我们解读kbengine来说最clean,所以我选了这个来分析。main函数:初始化kbengine引擎:找到客户端的main函数(app/OgreApplication.cpp),可以看到主要就是装载了一下kbengine.dll,然后执行了kbe_init,我们跟进kbe_init(kbengine_dll/main.cpp):bool kbe_init(){g_componentID = genUUID64();g_componentType = CLIENT_TYPE;//pserverconfig = new ServerConfig;pconfig = new Config;if(!loadConfig()){ERROR_MSG(loadConfig() is error!\n);returnfalse;}DebugHelper::initialize(g_componentType);INFO_MSG( \n\n\n);#ifdef USE_OPENSSLif(KBEngine::KBEKey::getSingletonPtr() == NULL)KBEngine::KBEKey kbekey(KBEngine::Resmgr::getSingleton().matchPath(key/) + kbengine_public.key, );#endifif(g_pScript == NULL)g_pScript = new KBEngine::script::Script();if(g_pDispatcher == NULL)g_pDispatcher = new Network::EventDispatcher();if(g_pNetworkInterface == NULL){g_pNetworkInterface = new Network::NetworkInterface(g_pDispatcher, 0, 0, , 0, 0,0, , 0, 0);}if(!installPyScript(*g_pScript, g_componentType)){ERROR_MSG(installPyScript() is error!\n);returnfalse;}g_pApp = new ClientApp(*g_pDispatcher, *g_pNetworkInterface, g_componentType, g_componentID);g_pApp-setScript(g_pScript);STAR
您可能关注的文档
- 2016年执业药师继续教育 高血压病例分析与其处方点评答案.doc
- 2016年最容易赚钱10个创业项目曝光.ppt
- 2016翻译硕士复试经典问题与范文.doc
- 2016岳麓版七年级历史上册第16课《开拓边疆与对外交流》 (共28张PPT).ppt
- 21世纪大学实用英语综合教程第二册听力答案与原文(unit4).doc
- 20世纪外国文学专题综合试题与答案.doc
- 2016高考备考:高中历史材料解析题解题思路与方法详解.doc
- 2016年上半年教师资格考试《小学综合素质》真题与答案解析.doc
- 2017年考研数学二试题与答案解析.doc
- 26.2 二次函数图象与性质 2.二次函数y=ax2+bx+c图象与性质 第5课时 二次函数最值应用.ppt
- GB 14287.2-2026电气火灾监控系统 第2部分:剩余电流式电气火灾监控探测器.pdf
- 《GB 14287.2-2026电气火灾监控系统 第2部分:剩余电流式电气火灾监控探测器》.pdf
- GB 7956.20-2026消防车 第20部分:特种底盘消防车.pdf
- 《GB 7956.20-2026消防车 第20部分:特种底盘消防车》.pdf
- 中国国家标准 GB 7956.20-2026消防车 第20部分:特种底盘消防车.pdf
- 《GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求》.pdf
- 中国国家标准 GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求.pdf
- GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求.pdf
- GB/T 28029.14-2026轨道交通电子设备 列车通信网络(TCN) 第2-8部分:以太网一致性测试.pdf
- 《GB/T 28029.14-2026轨道交通电子设备 列车通信网络(TCN) 第2-8部分:以太网一致性测试》.pdf
原创力文档

文档评论(0)