2005 EDSim

 

主页
上一层
DSP Viewer
网络飞车(FlyCar)
端口卫士(PortGuard)
CH Investigation
红外传输及其代理应用
地理信息系统(GIS)类
企业网站类
智能交通系统(ITS)类
Sub Division
River Model Creator
Supra Engine
GPU GHDRC
CH Prototype
EDSim

 


用户界面   架构简介   EDS示例   屏幕截图
 

1.概述(Overview

经过几年来在各种应用系统、游戏、研究平台方面的研发工作,我最终决定开发一个高度开放的集成环境,它就是EDS。EDSimEDS)是Extensible Distributed Simulation Environment的缩写,即可扩展的分布式模拟环境。它可以作为一套适合于海量虚拟内容的创建和模拟以及大规模交互式接入的全方位解决方案。

1.1           技术积木(Tech Toy Bricks

像游戏这种特殊的虚拟交互模拟系统,已经涉及到计算机科学的方方面面,它要求将各种计算机软硬件技术充分融合在一起,在整体上一致发挥它们的功效。

EDSim(EDS)不是一套独立开发的引擎!他利用自身具有的强大集成特性[1],吸取各种独立技术的精华,对外表现为一个统一的、高效的平台体系。

所有你拥有或者敬仰的最好的技术模块,EDS都能将它们转化为架构支持的通用部件,甚至能够采纳它们作为自身的支持组件。在使用EDS开发产品的过程中,这些技术模块就像同一个品牌的积木一样被简单灵活的搭建。同时,在EDS架构的协调下,任何技术模块(积木)对其他积木而言都是能够高效访问并且相互协作的!

我们将不惜一切代价地寻找最优秀的技术模块,将它们集成到EDS之中,让这些技术的能力得到充分结合和一致体现!

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 & EditorsScripting | Built-in Editors

1.2.9 强大的研究(研发)调试平台(EDSim Research Platform

EDS最初是作为研究/研发平台开发的,不特定于具体项目,但是其思想、架构以及扩展性可以用于实际项目,并且也可以作为试验引擎。

出于研发的目的,一个研发运行平台需要有相当丰富的调试支持周边系统,开发者不应该为每一个新的技术模块都构造一些常用的底层基础或者周边的程序代码,重复地发明轮子是不理智的。EDS的研究体系是一种通用可扩展的开发平台,该系统包含了积木化的模块调用架构,可在运行环境中动态配置加载如3D图像引擎、调试体系、性能测试、文件体系、命令行控制台、日志系统等基本的支持子系统以构造研发环境。

1、该平台将极大加速独立技术模块的研发,让模块研发从程序界面、运行调试、3D调用逻辑的重复实现中解脱出来,使研发人员可以完全投入到模块即其算法的研究中去。

2、在EDSim研究平台上研发的任何模块具备良好的代码重用特性,去掉极少的调试宏,模块代码甚至可以不加修改地移植到实际项目中去。

3、极高的模块重用性。新的模块一旦研发成功(比如新的基本类型、XML WrapperNet WrapperDB Wrapper、物理引擎、声音引擎、虚拟机、特效),又可以作为EDSim的支持模块(Support ModulesSM)或子系统被加载。这样,EDSim本身是无限壮大的!更重要的是,EDSim的每一个研发结果都会被参与或者使用EDSim研究的人所熟悉,这样不但提高了研发成果的利用率(重用率),也避免了未来的重复开发。

比如A研发出了Lua C++ WrapperB研发出了MySQL Wrapper,如果只针对某特殊项目或试验而作,那么在项目结束后,该模块(技术)就很可能束之高阁或者只有开发者AB本人在使用其功能,很难为其他人所用!

又比如一个网络游戏,如果我们能进一步将其虚拟机、界面、网络服务体系都独立出来,则即使一个网络游戏本身,也可以将其大部分构件作为EDSim的研究组件(Research ModulesRM)进行高效率的开发,因为这些部件在EDSim框架下是既独立又能够相互协作且无缝结合的!

4EDSim本身是一个可扩展的3D引擎(DirectX引擎),核心采用基本的C++STL类写成,可以在任何Win32平台上以窗口或者控制台方式运行,对于非图像应用(比如服务器、网络中间件),可以相当方便地移植到Linux平台上。

5、作为一套开发基础库,EDSim以尽可能使用现有通用类型为原则,降低了学习难度并减少熟悉时间的开销。EDSim中大量使用C++基础类型和STL模板类,图形部分使用Microsoft DirectX基本类型,一般不生造新类型(很多小组为了跨平台性,不得不创建很多封装类型,甚至包括封装C++简单类型,使人产生强烈的陌生感)。

6、支持测试驱动的开发,融合了CPPUNIT的测试机制,通过自动化测试保证软件质量。

2005,该是游戏的时候了!


[1]05年冬天,一次和Jiang在公车中的谈话使我确立了这个定位,之前我一直没有明确提出过EDS集成这个概念

 

主页 | 上一层 | DSP Viewer | 网络飞车(FlyCar) | 端口卫士(PortGuard) | CH Investigation | 红外传输及其代理应用 | 地理信息系统(GIS)类 | 企业网站类 | 智能交通系统(ITS)类 | Sub Division | River Model Creator | Supra Engine | GPU GHDRC | CH Prototype | EDSim

Copyright (C) 2005 彭韬(PengTao). All Rights Reserved

上次更新时间 06 年 05 月 08 日