天骄3游戏引擎介绍

天骄3游戏引擎介绍

系统特性

  1. 《天骄III》的服务器和客户端程序设计运行在 Win32 平台上。为了保证程序的运行效率和开发效率,决定使用 C++ 语言进行开发。所有代码采用 Microsoft Visual C++ 7.1 编写,并使用 Visual Studio .NET 2003 IDE 集成的调试器和源代码管理工具。在 C++ 标准模板库(STL)方面,《天骄III》不使用 VC 自带的 PJ 版本,而使用 STLport(从 SGI STL 移植而来)作为替代方案,以期在效率方面有所提升。
  2. 《天骄III》大量采用客户端主动预测技术,使游戏对网络延迟的敏感性降至最低。因此可以使用 TCP/IP 协议以便在协议层就实现可靠的网络传输,使程序员将更多精力放在游戏程序中。
  3. 目标软件自主开发的“大服务器架构”将客户端连接管理、用户登入登出等与游戏内容无关的操作全部交给单独的连接服务器进程处理,将客户端程序与游戏世界服务器隔离。一方面提高了系统安全性;另一方面大大降低了游戏服务器的系统负担,使游戏服务器可以有更多的系统资源处理更复杂的游戏逻辑。这种服务器架构还允许将一个逻辑上统一的游戏世界分布式地运行在多台计算机上,使整个游戏世界可以承载更高的同时在线人数。该架构先后经过了《天骄II》、《傲世 Online》、《凤舞天骄》等多款产品的考验,并且目前仍在稳定运行中,已经被证明是成熟可靠的技术。《天骄III》将继续沿用和完善这种大服务器架构。
  4. 《天骄III》采用 Win32 平台上较为成熟的“最小化转储+崩溃后调试”的方案来解决可能遇到的各种程序错误问题:使用 dbghelp 库将程序在崩溃点的状态“冻结”到文件中,然后提交到研发部门恢复崩溃现场并进行错误分析。这种方法可以在不向最终用户发布任何调试信息(以免被人轻易地执行反向工程)的情况下最精确地重现错误、减少解决问题所需的时间。目标软件目前已经在多款产品中使用了这种技术。

图像渲染模块特性简介

  1. 场景
    超大规模场景系统,支持地形的动态加载,实现整个世界的无缝拼接、室内外场景的无缝连接。
    场景组织采用空间八叉树分割,PORTAL,CVS,BSP等先进技术,实现高效精确的裁剪,以及准确的碰撞检测。
    全场景动态光照系统,可以根据时间在白天黑夜间平滑过渡,配合planar shadowmapping、perspective shadowmapping、omni shadowmapping、trapezoidial shadowmapping等先进的实时阴影技术,可以轻松模拟现实中复杂的光照环境。
  2. 地形
    基于视差控制的LOD地形系统,能够采用有限的元素表现出极具真实感的复杂地形地貌,支持gloss mapping,normal mapping,parallax occlusion mapping等先进渲染技术,并且可以根据光照环境的改变实时动态生成真实的地形阴影。
  3. 模型
    灵活高效的骨骼动画系统,支持动作帧间、动作和动作间的无缝平滑过渡,能够实现同一角色的多动作融合,支持软硬件加速顶点变换,以及静态模型的geometry instancing。
    模型支持gloss mapping,normal mapping,parallax occlusion mapping,soft self-shadow等先进的渲染技术,配合高扩展性的材质系统,可以让美工轻松实现所见即所得的编辑。
  4. 粒子,草
    采用geometry instancing、shader instancing等先进技术的高效可扩展的粒子、草体系统,支持同屏海量的粒子、草体绘制,支持粒子和风力等环境因素交互,支持脚本控制。
  5. 特效
    逼真的水体渲染系统,支持全场景范围的折射、反射,支持无缝的水上水下场景过渡。
    丰富的全屏特效系统,支持hdr glow、亮度自适应、景深、局部动态模糊、热空气扰动、体积光等多种特效。
  6. UI
    功能强大的轻量级UI库,通过lua脚本可方便快捷的实现第三方界面插件扩展。

世界编辑器介绍

支持无缝场景的编辑,对于场景中大范围的地形,提供了多种帮助美工进行大场景区域规划的功能。提供丰富的地形网格编辑手段:支持高度图导入和各种网格编辑刷子,如平滑、凹凸、抹平、挖洞和铺路等等。


高度编辑


挖洞编辑

提供丰富的地形纹理编辑手段,来实现无缝场景的多层纹理编辑。 支持纹理混合alpha图的导入和各种纹理层编辑刷子,并提供了多种规划手段,来辅助大范围场景纹理的编辑。另外,程序能够自动根据地形的坡度来识别不同的纹理映射轴并且自动计算纹理坐标。因此美工可以在photoshop中方便的进行初期规划,然后利用地编对规划数据进行处理,加工,方便的生成和编辑不同场景中不同地形的纹理。自动生成场景中的地图纹理。


纹理编辑

方便的大批量植被集的编辑,支持导入植被种植图和植被种植刷子,美工在photoshop中制作出代表植被集形状,大小,颜色的种植图,然后在场景中种植。


种植植被

方便的实体编辑功能,像素级的实体拣选,能够在场景中快速高效的种植和编辑各种实体,如模型,特效,摄像机等等。


实体编辑

方便的调整场景信息。场景里面如各种光照信息,雾化信息,天空盒,以及各种全屏后期特效能够方便的进行设置修改并且能够进行实时的刷新。


白天场景

夜晚场景

环境设置

特效编辑器简介

方便灵活的粒子系统编辑,提供多种粒子生成器,并且能够对其进行灵活控制。对于粒子的各种属性如大小,速度,旋转,颜色,纹理都能灵活进行控制,另外还支持支持粒子的多种渲染方式,如点精灵,条带,各种类型的公告板等等。


粒子生成器(1)

粒子生成器(2)

粒子特效编辑(1)

粒子特效编辑(2)

支持树形的特效节点,方便的特效组合,在组合时可以复用以往的特效,提高了编辑的效率。除了粒子特效外,还可以组合模型动画特效、纹理动画和动画纹理特效等等。在各种子特效组合时可以附加各种不同的规则,如平移,绕一轴公转,自转,延时播放等等。


粒子规则编辑

节点之间的作用时间

粒子特效

服务器技术特性简介

  • 服务器各个模块均按照“Consumer-Producer”模型设计,仅在公共接口定义上耦合,并约定了“Consumer-Driven”的驱动方式。按照这种模型设计出来的服务器程序具有清晰的代码结构,并且模块间耦合度较低,便于日后维护和扩展。
  • 《天骄III》服务器端脚本系统采用 Lua 脚本语言。除了 Lua 在性能方面的出色表现之外,还因为它具有很强的可扩展性,使我们很容易地就将它集成到项目中来,形成我们自己的脚本系统。使用 Lua 最大的好处在于将脚本虚拟机环境与二进制代码环境完全隔离开来,从而使脚本错误不会波及到整个服务器进程。另一方面,Lua 的“协同线程”特性可以使程序员更容易地控制脚本代码的执行过程,在不给脚本代码增加任何复杂度的前提下,将一些耗时操作(如数据库操作、远程查询操作等)异步化,以保证整个游戏世界不会因等待这些操作返回而挂起。
  • 《天骄III》服务器程序在设计时就考虑到了当前和将来服务器硬件的多核、多 CPU 特性。以场景逻辑为单位,将不同场景(包括同一个场景的不同实例,也就是副本)间的游戏逻辑分发到不同的工作线程去执行,以便最大限度地利用服务器硬件的 CPU 资源。这种场景间完全独立的划分方式再配合大服务器架构,又使得整个游戏世界实现动态负载平衡成为一件很容易的事。

你可能感兴趣的:(天骄3游戏引擎介绍)