1.2 特征(Features)
EDS的最终设计目标是拥有支持以下主要特性的支持组件:
l 可扩展的高效图形引擎
l 高效的声音引擎
l 高效的物理引擎
l 插件技术
l 人工智能
l 高可扩展性的通用服务体系
l 分布式接入体系
l 资源内容提供工具
l 强大的研究(研发)调试平台
1.2.1 可扩展的高效图形引擎(EDSim Graphics Engine)
General Info:
Graphics API DirectX
Operating Systems Windows/Xbox
Programming Language C/C++/Python or LUA?
General Features Object-Oriented Design / Save/Load System
Graphics Features
Lighting Per-vertex | Per-pixel | Volumetric | Lightmapping | Radiosity | Gloss maps | Anisotropic | BRDF
Shadows Shadow Mapping | Projected planar | Shadow Volume
Texturing Basic | Multi-texturing | Bumpmapping | Mipmapping | Volumetric | Projected | Procedural
Shaders Vertex | Pixel | High Level
Rendering Fixed-function | Stereo Rendering | Raytracing | Raycasting | Deferred Shading | Render-to-Texture | Voxel | Fonts | GUI
Scene Management General | BSP | Portals | Octrees | Occlusion Culling | PVS | LOD
Animation Inverse Kinematics | Forward Kinematics | Keyframe Animation | Skeletal Animation | Morphing | Facial Animation | Animation Blending
Meshes Mesh Loading | Skinning | Progressive | Tessellation | Deformation
Surfaces & Curves Splines | Patches
Special Effects Environment Mapping | Lens Flares | Billboarding | Particle System | Depth of Field | Motion Blur | Sky | Water | Fire | Explosion | Decals | Fog | Weather | Mirror
Terrain Rendering | CLOD | Splatting
1.2.2 高效的声音引擎(EDSim Sound Engine)
2D Sound | 3D Sound | Streaming Sound
1.2.3 高效的物理引擎(EDSim Physics Engine)
Basic Physics | Collision Detection | Rigid Body | Vehicle Physics
目前融合物理引擎ODE
1.2.4 插件技术(EDSim Plugins)
独立开发的插件DLL将拥有和研发模块(Research Modules)相同的功能环境。不同的是,插件DLL是动态链接的。
Plug-in Architecture
1.2.5 人工智能(AI)
Pathfinding | Decision Making | Finite State Machines | Scripted | Neural Networks
1.2.6 高可扩展性的通用服务体系
强脚本化的虚拟机系统,高度抽象的数据描述和开放的数据库服务。采用分布式计算的核心服务网络可以实时模拟一个巨大的虚拟世界。
强大的标记数据(如HTML,XML)服务体系,多类型服务(HTTP)。
网络底层支持:Client-Server | Peer-to-Peer | Master Server
1.2.7 分布式接入体系
多类型接入接口(Internet,移动),通用交互协议。非图形化和图形化的接入端系统(即图形化的客户端)。
网络底层支持:Client-Server | Peer-to-Peer | Master Server
1.2.8 资源内容提供工具(EDSim Content Tools)
丰富强大的资源内容创建工具,支持远程资源提供者接入体系。
Tools & Editors:Scripting | Built-in Editors
1.2.9 强大的研究(研发)调试平台(EDSim Research Platform)
EDS最初是作为研究/研发平台开发的,不特定于具体项目,但是其思想、架构以及扩展性可以用于实际项目,并且也可以作为试验引擎。
出于研发的目的,一个研发运行平台需要有相当丰富的调试支持周边系统,开发者不应该为每一个新的技术模块都构造一些常用的底层基础或者周边的程序代码,重复地发明轮子是不理智的。EDS的研究体系是一种通用可扩展的开发平台,该系统包含了积木化的模块调用架构,可在运行环境中动态配置加载如3D图像引擎、调试体系、性能测试、文件体系、命令行控制台、日志系统等基本的支持子系统以构造研发环境。
1、该平台将极大加速独立技术模块的研发,让模块研发从程序界面、运行调试、3D调用逻辑的重复实现中解脱出来,使研发人员可以完全投入到模块即其算法的研究中去。
2、在EDSim研究平台上研发的任何模块具备良好的代码重用特性,去掉极少的调试宏,模块代码甚至可以不加修改地移植到实际项目中去。
3、极高的模块重用性。新的模块一旦研发成功(比如新的基本类型、XML Wrapper、Net Wrapper、DB Wrapper、物理引擎、声音引擎、虚拟机、特效),又可以作为EDSim的支持模块(Support Modules-SM)或子系统被加载。这样,EDSim本身是无限壮大的!更重要的是,EDSim的每一个研发结果都会被参与或者使用EDSim研究的人所熟悉,这样不但提高了研发成果的利用率(重用率),也避免了未来的重复开发。
比如A研发出了Lua C++ Wrapper,B研发出了MySQL Wrapper,如果只针对某特殊项目或试验而作,那么在项目结束后,该模块(技术)就很可能束之高阁或者只有开发者A、B本人在使用其功能,很难为其他人所用!
又比如一个网络游戏,如果我们能进一步将其虚拟机、界面、网络服务体系都独立出来,则即使一个网络游戏本身,也可以将其大部分构件作为EDSim的研究组件(Research Modules-RM)进行高效率的开发,因为这些部件在EDSim框架下是既独立又能够相互协作且无缝结合的!
4、EDSim本身是一个可扩展的3D引擎(DirectX引擎),核心采用基本的C++和STL类写成,可以在任何Win32平台上以窗口或者控制台方式运行,对于非图像应用(比如服务器、网络中间件),可以相当方便地移植到Linux平台上。
5、作为一套开发基础库,EDSim以尽可能使用现有通用类型为原则,降低了学习难度并减少熟悉时间的开销。EDSim中大量使用C++基础类型和STL模板类,图形部分使用Microsoft DirectX基本类型,一般不生造新类型(很多小组为了跨平台性,不得不创建很多封装类型,甚至包括封装C++简单类型,使人产生强烈的陌生感)。
6、支持测试驱动的开发,融合了CPPUNIT的测试机制,通过自动化测试保证软件质量。