Torque Game Engine简介

来源:互联网 发布:台湾旅游业 知乎 编辑:程序博客网 时间:2024/06/09 13:37

1.基本控制

TGE初始化库和游戏中的函数,然后在游戏的主循环中循环一直到游戏的结束,Torque负责一下几种事件的处理:

  • 显示鼠标在GUI上的移动
  • 处理其他与输入有关的事件
  • 依据设定的时间模拟比例计算游戏中经过的时间
  • 管理服务器对象的处理时间
  • 检测服务器网络数据包的传输
  • 增长模拟事件的时间
  • 处理客户端对象的时间
  • 检测客户机网络数据包的传输
  • 渲染当前帧
  • 检测网络连接是否超时

    从这里看,貌似所有的关于网络连接的底层工作都有引擎来完成了,但是这款引擎并不适合开发大型的多人在线游戏,难道是性能的问题?

    2.控制台

    在游戏中按下~就会出现,自带编译器和解释器,控制台语言被成为TorqueScript,可以在控制台使用exec命令载入脚本文件,并可以在载入后动态调用定义的函数。

    3.输入模型

    输入时间经由平台层解释后递交到游戏,默认情况下,游戏会按照一张全局的动作映射表检查输入时间,这张表取代所有的动作处理程序动作映射表把输入时间翻译成控制台命令,任何平台输入事件都能被绑定到一种通用的处理方法上,所以理论上,我们可以把鼠标,键盘甚至游戏杆绑定任意事件。

    4.图形

    引擎本身并不具备处理图形的能力,他使用opengl的图形api,torque有一个实用工具库,该库用来扩展OpenGL。

  • Torque有一个纹理管理器,负责游戏纹理的动态加载与卸载。在一个给定的时间内只加载某个纹理的一个实例,加载完成后交由OpenGL处理,当游戏切换视觉模式或更换图形处理设备时,纹理管理其重新敬爱在或是卸载游戏的纹理。
  • Torque支持多种位图文件类型,PNG,JPEG,GIF,BMP等。
  • GUI库管理引擎的用户界面。Canvas对象是当前Gui层级的根对象,负责发送鼠标和键盘事件,管理更新区域和鼠标,并在绘制下一帧耳钉时候调用恰当的渲染方法。
  • Profile类负责维护一组控件之间的实例数据。字体,颜色,位图声音数据等信息都保存在该类的实例中,换言之,一类控件可以使用一个Profile实例来进行数据的存储,不需要每个控件均有一个对应的实例。
  • Control类是所有GUI控件的根类

    5.3D渲染

    Torque有一个模块化的,可扩展的3D渲染系统,游戏子类首先定义成像的方位和视觉范围,然后调用OpenGl的画图命令画出3D场景。

    在客户端,场景图形库负责监控整个游戏场景,并根据当前的成像角度决定应该渲染哪些对象;同时,在服务器端,根据玩家的视觉角度决定应该把哪些物体发送到客户端,整个场景被分为多少个区域,每个区域由多少个实心部分和入口组成。渲染的时候,整个场景从包含摄像机的区域开始,按照它之前的区域设置视觉入口剪辑每个区域中的对象,引擎还负责确定网络对象的处理范围,决定一个给定对象是否需要客户端处理;

    场景中的每个能渲染的对象都是从一个基类派生的。

    6.地形

    地形库负责处理渲染外部场景模拟对象。包含Sky对象,这个对象渲染外围的天空和有层次感的云层,并在渲染整个场景的时候通过设置明显的和模糊的距离是环境变得错落有;sky对象还将产生模糊的垂直层次并将其发送给SceneGraph对象。

    TerrainBlock类提供了无限多个大小为256*256的区域,该区域在一个水平面上展开,没个区域都由资源管理器负责保存和加载,这样单个地形数据文件就可以在服务器和客户机之间共享了。

    对地形的纹理处理是通过代码把基本的材质纹理和心得材质纹理混合到一起,然后按照矩形区域的远近投影到连续的矩形上 。Blender类负责混合不同的纹理并转化成适合平台的机器的版本;

    游戏中的水按照距离的远近自动渲染,接近水的地方水的波纹比较多,颜色更深。

    7.网络连接

    Torque处理了三个基本的实时网络编程问题受限带宽,数据包丢失和延迟;

  • 原创粉丝点击