欢迎来到天天文库
浏览记录
ID:34417410
大小:115.11 KB
页数:48页
时间:2019-03-05
《kbengine源代码读v0.0.3》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、前言:v0.0.12015-04-10誉小痕(shawhen2012@hotmail.com)v0.0.22015-04-12誉小痕(shawhen2012@hotmail.com)v0.0.32015-04-23誉小痕(shawhen2012@hotmail.com)changelog请查看:http://bbs.kbengine.org/forum.php?mod=viewthread&tid=247&extra=page%3D1新增内容以**Newinversionx.x.x**标示友情提醒:打开Word的导航标题查看,因为我不会在文档
2、内对标题进行缩进基于kbengine0.4.20(兼容0.5.0)(现在和这份文档一起的有一个kbengine主干活动图,建议先看看那个图,参照图中的流程然后对照本文档理解流程的实现细节。活动图可在changelog帖子中找到下载地址)MMOG服务端是一种高品质的工程项目,品读开源的kbe是一种乐趣。本文档我带童鞋们一起领略一下。囿于我知识面和经验方面所限,文中所述之处难免有错误存在,还请读童鞋们睁大慧眼,如果你发现错误,可以电邮至shawhen2012@hotmail.com。(因为我个人懒散或者时间仓促的关系,这个文档的排版有点小乱。。。
3、)其他牛逼哄哄的前言就不说了。从理论上来讲,我们阅读一份源代码,首先应该基于现有的文档从整体上把握项目的架构之后再庖丁解牛一般地细分阅读,不过在我写这个文档的现在,我暂时没发现这样的文档,所以我就按照我自己的阅读顺序从而编排这个文档的内容。**NEWinversion0.0.3**l客户端概要:在过去0.0.2中我们对kbengine的服务端进行了大致流程的了解,接下来为了更加全面地了解到kbengine的整个框架流程(从理论上来讲不解读客户端我们也能完完整整地解读完服务端,不过我们还是看一看,以免管窥蠡测之嫌)。本文档采用Ogre的Demo
4、,主干活动图现已更新到v0.0.2,包含ogredemo的活动图。你可能担心自己不会Ogre,会看不懂这个文档,其实不用太担心,我也不会,我之所以选Ogre,是因为Unity,cocos2d-x,Ogre这些我一个都不会;-(,但Ogre的demo对于我们解读kbengine来说最clean,所以我选了这个来分析。1.main函数:a)初始化kbengine引擎:找到客户端的main函数(app/OgreApplication.cpp),可以看到主要就是装载了一下kbengine.dll,然后执行了kbe_init,我们跟进kbe_init(
5、kbengine_dll/main.cpp):boolkbe_init(){g_componentID=genUUID64();g_componentType=CLIENT_TYPE;//pserverconfig=newServerConfig;pconfig=newConfig;if(!loadConfig()){ERROR_MSG("loadConfig()iserror!");returnfalse;}DebugHelper::initialize(g_componentType);INFO_MSG("--------------
6、---------------------------------------------------------------------------");#ifdefUSE_OPENSSLif(KBEngine::KBEKey::getSingletonPtr()==NULL)KBEngine::KBEKeykbekey(KBEngine::Resmgr::getSingleton().matchPath("key/")+"kbengine_public.key","");#endifif(g_pScript==NULL)g_p
7、Script=newKBEngine::script::Script();if(g_pDispatcher==NULL)g_pDispatcher=newNetwork::EventDispatcher();if(g_pNetworkInterface==NULL){g_pNetworkInterface=newNetwork::NetworkInterface(g_pDispatcher,0,0,"",0,0,0,"",0,0);}if(!installPyScript(*g_pScript,g_componentType)){ERROR_
8、MSG("installPyScript()iserror!");returnfalse;}g_pApp=newClientApp(*g_pDispatcher
此文档下载收益归作者所有