天龙客户端大致的结构划分和功能描述

天龙客户端大致的结构划分和功能描述


说明                                                       
UI系统        CEGUI                                         UI基础系统  

                CEGUI渲染器        

                Expat XML解析器                           CEGUI依赖,估计编写者不喜欢用  
                FreeType2                                   跨平台、开源的字体渲染器    用于绘制中文  
脚本           luaPlus             

3D显示引擎        Ogre                        开源的高效渲染引擎    使用OGRE确实是很高的一步棋    
碰撞检测        Opcode                        开源,占用内存少    我们可考虑用bullet,ODE,或其他(按实际要求)    

TinyXML        XML的解析工具                    游戏中使用的XML解析器,Code们熟悉的    

Music&Sound Effect    FMOD    SDK即可 
struct定义结构全部大写?

WX编写系统     
    WXClient        Action操作管理    包括聊天,物品,生活技能等    暂时看到,所有实际上都是针对图标的操作   
        Cursor        鼠标指针管理(还挂接了很多命令)       
        DataBase        客户端用内存数据库,实现了了WXEngine中的DB定义    包括搜索,获得,打开文件功能TLBB_DBC呵呵果然留下了影子   
        DataPool        将游戏中数据都统一管理,包括UI,TeamOrGroup等    这里面有个CModelShowInUI的类,(奇怪,这个类不应该放在这里吧?)    
        Event        游戏事件处理器,分为Event队列,和慢处理Event队列    很值得参考的部分!!!使用了注册Event处理函数的方式,参数很灵活!           

     FakeObject        用于在ui上显示的物体(这里作为一个管理器类)        
        Helper        用luaPlus导出,另外建一个帮助系统窗口      
        Input        输入类         
        Interface        整个游戏的外部接口控制类,所有外部模块需要通过这个接口来控制游戏的数据和控制,作为脚本调用类型         
        NetWork        网络消息的处理         
        Object        逻辑基类Object与显示无关,当然派生出可以显示的类型!以及游戏中具体对象类型         
        Procedure        游戏流程,登陆,角色选择,角色创建,进入场景等待,MMO游戏主流程,登陆服务器 

        ResourceFiles   各种鼠标.cur文件        
        Script        脚本系统管理器,继承于Engine的ScriptEnvironment,调用脚本        
        Sound             
        Soure File    _tWinMain在这里        
        Variable       配置参数系统  

        World        场景区域Zone,Scene,World管理器,寻路等等功能    
    WXCore             
        Collision                碰撞检测,主要包裹了ogre的骨骼模型处理方法    
        EffectSystem            特效系统     
        Extra附加    ModelType        模型定义 

            SkeletonMesh            (怀疑被废弃)Dobject_NT包裹了Ogre::Entity,可挂接相关特效,SceneNode上 
            SkeletonMeshUrl            作为存储格式,存储Dobject_NT 
            LogicModel                                 渲染层和客户端的结合层,利用渲染层,实现客户端对场景中动态物体的需求,而不需调用渲染层代码 
        OgreExt                对于Ogre的扩展,渲染    
        PostFilters                3D画面效果,后期过滤器 

        ResourceSystem            Ogre的文件系统,用于读取和整体加载文件系统     
        Header Files&&Source Files        可渲染对象层BasicRenderable及其子类 

            Terrain            实现及其管理编辑,优化     
            WX::Object        继承了boost::enable_shared_from_this<Object>    boost::shared_ptr<> boost::weak_ptr<>应用 
            System            整个框架运行的关键,管理了很多Ogre的运行信息以及Exception,存储管理器,附加地形判断辅助函数等     

            XercescParser        在这里又发现了另外一个XML的解析库,无语了   
            WX::AcrotObj,WX::ActorObject,WX::LogicModelObject    都要仔细阅读弄清原理 
            Scene            基类,管理,序列化,编辑等方法    
    WXEngine    Cursor         
        DataBase         

        Debuger                调试用的?但是一直没有看出来具体在哪里使用,难道是给脚本?    怀疑其功能已取消 
        Exception                里面包括Xzip的压缩目录……,当然也包括抛出异常定义,及CrashReport             FakeObject,Gfx,Helper,Input         
        Math,Profile,Script,Sound      

        Time,UI,Util,Variable                             各种功能的虚类,当然也有具体实现了的类。等待继续整理分析    
        Kernel                TDKernel通过全部继承于TDNode(及针对相应TDNode的TDClass)管理类注册及插件信息    CEGUISystem以及WXRender都是通过Plugin的方式加入Kernel(待验证) 
            TDNode为了Kernel便于组织数据,而定下的核心节点类,类似树     
            TDClass节点定义类,根据类名取定义类的名字,类似MFC建立了自己的类链    重要的是几个类定义实现宏自动把tClass给赋值初始化了。还顺便实现了CreateObject函数 
        Game    Action     
            DataPool    

            Event    
            Interface  

            Object    
            World     

    WXNetPackets    Combat            阵营数据结构表,技能及效果数据表记录结构,数据表通用管理读入器    有模板数据管理器 
        DataBase    TLBB_DBC.h        定义服务器客户端通用的DBC数据库文件类     
        Common                整个游戏的公用Common定义,GameStruct     

        GameUtil            方便函数,CRC校验,Lock,二进制转化为字符串DB等东西    
                            随机函数,Type,脚本命令结构,技能数据管理,playerStatus    

                            重要的PacketDefine     
        Header Files&&Source Files        基本都是对Common\Net中Packet的具体情况使用实现Packet->Execute    PacketDefine的实现 
    WXRender    Camera            3种摄像机     
        Object                RFObject基于WXEngine中渲染层物体基类tEntityNode的实现    
            RFObj继承于RFObject用于WX::Object对象的包裹,自己指针放在WX::Object的Data中     
            RFObj_Actor,RFObj_Model,RFObj_Static,都继承于RFObj人物,动态模型,静态模型    
            RFObj_Actor原来设计应该会用到SkeletonMesh.h中的Dobject_NT,但实际上没有产生关联,WXLogicModel被说明是用来替换原来的Dobject    
        Header Files&&Source Files    DebugPanel    包括调试信息以及HitObjectPanel(打击信息?)
            RenderSystem            整合环境对象,后期渲染过滤管理,及核心System。载入资源技巧有不少在其中 
            ResourceProvider        资源提供系统,内部使用Ogre的资源组管理器,进行统一的管理判断。             ResourceLoadListener        用于找到分析脚本时的详细错误,里面是ScriptParsingListener : public Orge::ResourceLoadListener真够强大的…… ,
            RFFakeObjectManager        用于UI显示的模型在渲染层的管理器 
            TerrainGrid            地形格可渲染对象 
            WXObj_ProjTex            WXObj投射纹理,包括选择环,阴影斑点,脚印

转自:http://www.cnblogs.com/minggoddess/archive/2011/02/24/1964003.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
天龙八部客户端是一个大型的多人在线角色扮演游戏,其中包含了许多功能,需要与动态链接库(DLL)进行交互。 首先,天龙八部客户端使用DLL文件来提供一些额外的功能和特性。这些DLL文件包含了游戏的不同模块,例如图形渲染、声音效果、网络通信等。客户端通过调用DLL中的函数来实现这些功能。 DLL交互在天龙八部客户端中的应用是多种多样的。比如,图形渲染模块的DLL可以提供高效的图形渲染算法,使游戏画面更加流畅和精美。声音效果模块的DLL可以提供逼真的音效,增强游戏的沉浸感。网络通信模块的DLL可以处理与服务器的数据传输,实现玩家之间的互动和游戏世界的同步。 在DLL交互的过程中,客户端首先需要加载所需的DLL文件。然后,客户端通过调用DLL中的函数来实现所需的功能。这些函数可以是提供单一功能的简单函数,也可以是复杂的函数,用于处理游戏逻辑或者与其他模块的交互。 通过DLL交互,天龙八部客户端能够利用外部的资源和功能,提供更加丰富和高效的游戏体验。同时,DLL交互也为游戏的开发者提供了灵活的扩展和更新功能的方式,使得游戏可以不断升级和改进。 总之,天龙八部客户端与DLL的交互是游戏实现功能和特性的重要方式之一,通过调用DLL中的函数,客户端可以利用外部的资源和功能,提供更加丰富和高效的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值