时间:2014-03-06 10:43 文章来源:http://www.lunwenbuluo.com 作者:陈喜春 点击次数:
2.1Delta3D中的基本概念
在Delta3D的开发中,有几个重要概念,如游戏管理器(GameManager),游戏角色(GameActor),游戏组件(GameComponent),以及游戏消息(GameMessage)。
Delta3D提供仿真应用程序的基本要素,如场景管理,物理系统,立体音效,对象加载,动态角色库,环境特效,光照,地形支持,相机,以及角色动画。
在应用程序中,游戏管理器负责管理整个应用程序虚拟世界中存在的所有要素以及角色或组件之间的交互,游戏管理器拥有所有的游戏角色,普通角色,组件以及消息。游戏管理器的主要任务是:管理消息;维护系统内部的所有的角色,包括游戏角色以及普通角色;提供游戏管理组件功能。
普通角色或者称之为非游戏角色一般指那些游戏世界中静态的物体,比如:房子、不移动的灯光、树木、地形等,游戏角色指那些具有生命的角色。
在Delta3D中,一个很重要的概念是角色代理。游戏管理器只识别游戏角色代理,不直接识别游戏角色。因此游戏角色只能够通过角色代理与游戏管理器发生关系。游戏消息是角色和组件之间互相通信的内容。消息通常用来发送数据(比如属性变化)或者行为(请求或命令)。图2展示了消息在游戏角色,游戏管理器以及组件之间的流向。
2.2基本程序框架[3-4]
程序的逻辑顺序依次是:创建新的dtABC::Application对象,加载实体对象,向场景中添加实体对象,设置实体对象在三维场景中的位置,设置摄象机,最后进入仿真循环。
较复杂的仿真程序主要是在仿真推进中需要将对象的属性进行更新,所以需要管理的对象数量、复杂程度会大大增加。
3与相关仿真软件的配合使用
Delta3D是一套复杂的软件,它不仅仅实现了仿真程序框架,而且将其他一些开源项目进行了集成,从而可以实现更复杂的功能。
3.1网络模块
如今分布式仿真大行其道,仿真程序的网络功能是不可或缺的。HLA是如今仿真开发的标准架构,Delta3D也对HLA提供了支持。Delta3D提供了HLA组件作为一个消息翻译器(GameTranslator),游戏管理器(GameManager)对消息的处理首先要经过消息翻译器的处理,然后按照HLA架构的要求由rti软件进行收发。HLA组件对rti函数进行了封装,使用起来比直接调用rti函数要大大简化。rti软件同样有开源版本,与Delta3D配合使用时,推荐使用CERTI。
除HLA外,Delta3D还可以使用另外的网络通信机制,如使用开源的GNE库(GameNetworkingEngine,游戏网络引擎)。GNE库是一个可移植的多线程网络函数库,它为常用的网络程序开发提供了一套框架,开发人员可以直接在这个框架之上添加代码。
3.2物理引擎
物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟,以及发生碰撞后的物体骨骼运动的力学模拟。Delta3D中对物理引擎的封装也有几种不同的实现方式[5],第一是在dtCore中对ODE(开放动力学引擎)的封装,第二通过dtPhysics使用PAL(physicsabstractlayer)对三种物理引擎Bullet、ODE、Phys的封装。
在Delta3D中应用ODE的时候,可以使用Scene类调用ODEController,通过ODEController中配置ODESpaceWrap,进行碰撞检测设置。
3.3人工智能
相关内容
联系方式
随机阅读
热门排行