引擎开发学习

来源:互联网 发布:概念店是什么意思知乎 编辑:程序博客网 时间:2024/05/20 17:26

    游戏引擎

          游戏引擎是心脏,决定游戏的性能和稳定性,引擎是用于控制游戏功能的主程序,

它是一个发动机控制着游戏的运行。一个游戏包括引擎和资源2大部分。资源包括声音、动画、脚本、图像。

      优秀3D引擎,会让使用者很轻松的使用SDK,通过SDK,能满足各种复杂的3D游戏功能需求。

      一个强大的引擎会提供强大的编辑器,引擎的场景编辑、模型编辑、动画编辑、粒子编辑。

    游戏引擎的模块划分

     

       公共模块包含了客户端和服务端共有的系统,主要有:网络通信、实体对象系统、物理仿真、空间仿真、空间分割和查询、资源管理和脚本,文件io 等。

        客户端模块包括客户端世界管理,图形图像渲染,网络预测,声音管理、动画等。

        服务端模块包括服务端世界管理、事件和时间同步,游戏AI(可客户端共享)、碰撞检测(可客户端共享)、3D动画模型部分,持久保存和恢复等。

        相关工具包括:数据库、脚本编辑器、模型和动画导出、世界构建和布局、声音动画编排、客户端发布更新工具。

   具体介绍:

     1、输入系统 OIS 封装了DXINPUT  
     2、图形用户接口 如CEGUI,GUI库,基于LGPL协议,使用c++实现,完全面向对象设计。
     3、物理引擎ODE,是一个免费的具有工业品质的刚体动力学的库。
     引擎的。
     4、场景编辑器 可以快速制作出游戏场景,输出场景信息数据。FreeWorld3D是一个交互性的
实时3D地形编辑和生成工具。可以做地形、摆模型,设置天空盒和水面等。
     5、解析器XML
     6、网络库  Raknet是一个udp网络传输协议的c++网络库。
     7、碰撞检测技术:
         目前商业3D游戏普遍使用的碰撞检测是BSP树及AABB包围盒子方式。
        AABB是一个用长方体包裹3D物体对象的整体,之后根据包装盒距离、位置等信息
计算是否发生碰撞(长方体和球体较其他形状方便)。
        包围盒OBB 根据物体本身的几何形状来决定盒子的大小和方向。较AABB技术更精确且健壮。
但是其生产比较慢,执行慢,实现困难。
    8、空间分割技术是考虑整个物体空间根据物体占据的位置来对空间中的每一个点
进行分类的方法。
     对场景地图的分割会建立在物体粒度上而不是多边形本身。
   1、四叉树Quadtree空间分割   2D分割策略
       四叉树是一种数据结构,它描述了一个占据二维空间内物体的分布情况,并将物体安排在
在一个层次结构中。四叉树是把物体细分到四个相同大小的象限中。这些象限由根节点组成并
且每一个都有四个子节点递归定义。

   2、八叉树Octree空间分割

       八叉树是一种数据结构,描述在一个占据三维空间场景内物体的分布情况,并将物体安排

在一个层次结构中。八叉树的定义是:若不为空树,树种人一个节点都恰好有8个字节点或0个。 

八叉树是四叉树在三维上面的推广。

      八叉树比较适合小型室外场景等分割方式,允许摄像机随意位置的室内场景中

工作的一样良好。

   3、二叉空间分割树(Binary-Space Partitioning)

   使用一个分离面对每一层分为2,从而实现空间的划分。二叉树是一种非常有效的场景组织方式,

 BSP做空间快速碰撞检测比几何体划分更多

  八叉树和四叉树擅长把多边形打包成几何体进行分割工作。二叉树不擅长此法。


游戏引擎开发阶段表

http://blog.csdn.net/luyuncsd123/article/details/10020035


原创粉丝点击