(Putting temporarily the whole page, assuming it is better than an obsolete page) |
|||
| Line 1: | Line 1: | ||
== CS == | == CS == | ||
| - | * Portability | ||
| - | * Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows. | ||
| - | * Support of a wide range of compilers and IDE, including gcc, MinGW/MSYS, Cygwin, Visual C++ 8 & 9. | ||
| - | * Written in standard C++ using very few non-standard extensions. | ||
| - | * Self contained so that many modules requires no or few external dependencies. | ||
| - | * File system abstraction layer, VFS, that handles both physical files on disk and files within ZIP files, giving virtual layout independent from platform and physical layout. | ||
| - | * Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line. | ||
| - | + | * Portability | |
| - | + | ** Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows. | |
| - | + | ** Support of a wide range of compilers and IDE, including gcc, MinGW/MSYS, Cygwin, Visual C++ 8 & 9. | |
| - | + | ** Written in standard C++ using very few non-standard extensions. | |
| + | ** Self contained so that many modules requires no or few external dependencies. | ||
| + | ** File system abstraction layer, VFS, that handles both physical files on disk and files within ZIP files, giving virtual layout independent from platform and physical layout. | ||
| + | ** Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line. | ||
| - | + | * Modularity | |
| - | + | ** Modularized using a lightweight component framework, SCF, based upon the COM model. Components can be easily loaded or switched. | |
| - | + | ** Bindings for other programming languages through SWIG: Java, Python, Perl. | |
| - | + | ** All subsystems easily extendable for new file formats. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | * Rendering & Lighting | |
| - | + | ** OpenGL-based engine, supports hardware accelerated rendering on all supported platforms and cards from all well known vendors. | |
| - | + | ** Rendering loops for custom rendering of objects. | |
| - | + | ** Static, pseudo-dynamic and dynamic lights. Statically and dynamically lit objects can be combined. | |
| - | + | ** Shadow map shadows. | |
| - | + | ** Multiple render targets. | |
| - | + | ** Rendering to textures. | |
| - | + | ||
| - | + | ||
| - | + | * Shaders | |
| - | + | ** Can be written in Cg, ARB, and GLSL. Shader description and mappings are defined in a XML compliant language. | |
| - | + | ** Support for multiple passes, vertex and fragment programs. Light selection and multiple lights in one pass possible. | |
| - | + | ** Node-based system for combination of shaders and post-processing effects. | |
| - | + | ** HDR rendering, tone mapping and eye adaptation. | |
| - | + | ** Fallback system of shader techniques for hardware compatibility. | |
| - | + | ** Cache storage of compiled shaders for faster loading. | |
| + | ** Library of available shaders and post-processing effects: diffuse, specular, bump map, glow, parallax, fur, bloom, blur, water, glass, and many others. | ||
| + | ** Automatic environment mapping. | ||
| - | + | * Scene & Level Of Detail Management | |
| - | + | ** Decomposition of a world in sectors with portals connecting them. Portals can be used for effects such as LOD management, streamed loading or space warping. | |
| - | + | ** Two different cullers: frustum culling (Frustvis), and dPVS (Dynavis), which also does software occlusion culling. | |
| - | + | ** General system for static LOD on all types of meshes. | |
| - | + | ** Impostors for replacement of far meshes with a 2D object. | |
| - | + | ** Threaded loader for streamed loading of levels and objects. | |
| - | + | ** Instanciation of meshes and objects. | |
| - | + | ||
| - | + | * Meshes | |
| - | + | ** Many different type of meshes: general triangle mesh with skeletal animation, morphing and sockets, cal3d, sprite 2D, sprite 3D, ocean,... | |
| - | + | ** Terrain mesh with paging and splatting. | |
| - | + | ** Foliage system to dress up a scene with objects such as flora and rocks,... | |
| - | + | ** Decals to be added on top of other meshes. | |
| - | + | ** Configurable and extensible particle system mesh with billboards, emitters, physical effectors,... | |
| + | ** Halos and lens flares. | ||
| + | ** Automatic triangulation of shapes. | ||
| - | + | * Animation | |
| - | + | ** Specialized mesh for advanced skeletal animation with animation blending tree, weight skinning, morphing, and sockets. | |
| - | + | ** Many types of animation nodes can be combined to generate dynamically complex animations: multi-blending, Finite State Machine, random, priority, LookAt, speed (time warping). | |
| - | + | ** Ragdoll animation and animation of hairs & equipment. | |
| + | ** Skeletal animation and morphing for the general triangle mesh. | ||
| + | ** Generic animation system for triggering of time events, moving of objects, fade in/out. | ||
| - | + | * Audio | |
| - | + | ** 2D and 3D sounds with OpenAL. | |
| - | + | ** Audio codecs: speex, ogg, wav (8- and 16-bit PCM). | |
| - | + | ** Provides both one-time playing of effects and streaming playing in the background for music. | |
| - | + | ||
| - | + | * Physics & Collisions | |
| - | + | ** Physics of rigid bodies and joints, made through a wrapper for two physics libraries: Bullet and ODE. | |
| - | + | ** Support of kinematic bodies for interaction between classical animation and the physical simulation. | |
| - | + | ** Debug plugin to visualize the physical simulation. | |
| - | + | ** Simplified collision detection when you don't need the full dynamics simulation. | |
| - | + | * Data Representation | |
| - | + | ** XML language for the description of each object and plugin of the whole CS. XML files can be set binary for faster loading. | |
| - | + | ** Procedural, dynamic and animated textures. | |
| - | + | ** Support for many image formats: png, jpg, dds, bmp, gif, tga, mng, jng, (binary) alpha, transparency, non 2n sized images,... | |
| - | + | ** Importers for many 3D file format: Blender through blender2crystal, 3D Studio Max, Maya, COLLADA, and model importers for common file formats such as 3ds, cal3d and md2. | |
| - | + | ||
| - | + | ||
| - | + | * User Interface | |
| - | + | ** Event system & peripherals: mouse, joystick, keyboard. | |
| - | + | ** Graphical user interface system through CEGUI. | |
| - | + | ** User interface widgets for wxWidgets. | |
| + | ** Text localization. | ||
| + | ** Plugin fo easy video recording and screenshots. | ||
| + | ** Font servers, FreeType2 and glyphs fonts. | ||
| + | * Project Management | ||
| + | ** Debugging tools: generic plugin for visual debugging of scenes, support for Valgrind. | ||
| + | ** Scripts for generation of new projects. | ||
| + | ** Easy compilation and customization of the whole project thanks to Jam. | ||
== CEL == | == CEL == | ||
| - | + | * Entity System | |
| - | + | ** Each object in CEL is an entity. Entities are defined by adding them a list of property classes that defines their attributes and their behavior. | |
| - | + | ** Generic event system for communication between property classes. | |
| - | + | ** Persistence layer for saving and loading world states. | |
| - | + | * Runtime Package Environment | |
| - | + | ** CELStart: generic executable for all CELStart applications, only data files have to be installed. | |
| - | + | ** The whole logic may be written with bindings for Python, or in a XML scripting language. | |
| - | + | * World Management | |
| - | + | ** Avatar and Non Player Character management: synchronization of the user actions with the mesh, its position, its orientation and its collisions. | |
| - | + | ** Camera management with many different modes: first person, third person, tracking, isometric, horizontal. | |
| - | + | ** Region management: decomposition of a complete world in regions, with zoning between regions. | |
| - | + | ** Advanced management of portals, e.g. for closing portals that are occluded. | |
| - | + | ** Spawning of entities. | |
| - | + | ** Triggering of proximity events. | |
| - | + | * Inventory & Interaction | |
| - | + | ** Key and peripherals events bindings. | |
| - | + | ** Billboards and tooltips. | |
| - | + | ** Inventory system. | |
| - | + | ** Selecting and grabbing objects. | |
| - | + | * Advanced Physics | |
| - | + | ** Projectiles and damages to entities. | |
| - | + | ** Collision management with the ground. | |
| - | + | ** Advanced physical effects: fluids, thrusters, steering, explosions, attractors and repulsors. | |
| - | + | ** Vehicles and their physics: bikes, cars, tanks, hovercrafts, or any wheeled vehicle. | |
| - | + | ** Mesh deformation, e.g. for destroying gradually an object. | |
| - | + | * Artificial Intelligence | |
| - | + | ** Finite state machine for the management of the evolution of the environment. | |
| - | + | ** Behavior trees to build complex artificial behaviors. | |
| - | + | ** Path finding and steering behaviors. | |
| - | + | ** Neural networks and genetic algorithms. | |
[[Category:Media]] | [[Category:Media]] | ||
Revision as of 09:36, 6 April 2010
CS
- Portability
- Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows.
- Support of a wide range of compilers and IDE, including gcc, MinGW/MSYS, Cygwin, Visual C++ 8 & 9.
- Written in standard C++ using very few non-standard extensions.
- Self contained so that many modules requires no or few external dependencies.
- File system abstraction layer, VFS, that handles both physical files on disk and files within ZIP files, giving virtual layout independent from platform and physical layout.
- Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line.
- Modularity
- Modularized using a lightweight component framework, SCF, based upon the COM model. Components can be easily loaded or switched.
- Bindings for other programming languages through SWIG: Java, Python, Perl.
- All subsystems easily extendable for new file formats.
- Rendering & Lighting
- OpenGL-based engine, supports hardware accelerated rendering on all supported platforms and cards from all well known vendors.
- Rendering loops for custom rendering of objects.
- Static, pseudo-dynamic and dynamic lights. Statically and dynamically lit objects can be combined.
- Shadow map shadows.
- Multiple render targets.
- Rendering to textures.
- Shaders
- Can be written in Cg, ARB, and GLSL. Shader description and mappings are defined in a XML compliant language.
- Support for multiple passes, vertex and fragment programs. Light selection and multiple lights in one pass possible.
- Node-based system for combination of shaders and post-processing effects.
- HDR rendering, tone mapping and eye adaptation.
- Fallback system of shader techniques for hardware compatibility.
- Cache storage of compiled shaders for faster loading.
- Library of available shaders and post-processing effects: diffuse, specular, bump map, glow, parallax, fur, bloom, blur, water, glass, and many others.
- Automatic environment mapping.
- Scene & Level Of Detail Management
- Decomposition of a world in sectors with portals connecting them. Portals can be used for effects such as LOD management, streamed loading or space warping.
- Two different cullers: frustum culling (Frustvis), and dPVS (Dynavis), which also does software occlusion culling.
- General system for static LOD on all types of meshes.
- Impostors for replacement of far meshes with a 2D object.
- Threaded loader for streamed loading of levels and objects.
- Instanciation of meshes and objects.
- Meshes
- Many different type of meshes: general triangle mesh with skeletal animation, morphing and sockets, cal3d, sprite 2D, sprite 3D, ocean,...
- Terrain mesh with paging and splatting.
- Foliage system to dress up a scene with objects such as flora and rocks,...
- Decals to be added on top of other meshes.
- Configurable and extensible particle system mesh with billboards, emitters, physical effectors,...
- Halos and lens flares.
- Automatic triangulation of shapes.
- Animation
- Specialized mesh for advanced skeletal animation with animation blending tree, weight skinning, morphing, and sockets.
- Many types of animation nodes can be combined to generate dynamically complex animations: multi-blending, Finite State Machine, random, priority, LookAt, speed (time warping).
- Ragdoll animation and animation of hairs & equipment.
- Skeletal animation and morphing for the general triangle mesh.
- Generic animation system for triggering of time events, moving of objects, fade in/out.
- Audio
- 2D and 3D sounds with OpenAL.
- Audio codecs: speex, ogg, wav (8- and 16-bit PCM).
- Provides both one-time playing of effects and streaming playing in the background for music.
- Physics & Collisions
- Physics of rigid bodies and joints, made through a wrapper for two physics libraries: Bullet and ODE.
- Support of kinematic bodies for interaction between classical animation and the physical simulation.
- Debug plugin to visualize the physical simulation.
- Simplified collision detection when you don't need the full dynamics simulation.
- Data Representation
- XML language for the description of each object and plugin of the whole CS. XML files can be set binary for faster loading.
- Procedural, dynamic and animated textures.
- Support for many image formats: png, jpg, dds, bmp, gif, tga, mng, jng, (binary) alpha, transparency, non 2n sized images,...
- Importers for many 3D file format: Blender through blender2crystal, 3D Studio Max, Maya, COLLADA, and model importers for common file formats such as 3ds, cal3d and md2.
- User Interface
- Event system & peripherals: mouse, joystick, keyboard.
- Graphical user interface system through CEGUI.
- User interface widgets for wxWidgets.
- Text localization.
- Plugin fo easy video recording and screenshots.
- Font servers, FreeType2 and glyphs fonts.
- Project Management
- Debugging tools: generic plugin for visual debugging of scenes, support for Valgrind.
- Scripts for generation of new projects.
- Easy compilation and customization of the whole project thanks to Jam.
CEL
- Entity System
- Each object in CEL is an entity. Entities are defined by adding them a list of property classes that defines their attributes and their behavior.
- Generic event system for communication between property classes.
- Persistence layer for saving and loading world states.
- Runtime Package Environment
- CELStart: generic executable for all CELStart applications, only data files have to be installed.
- The whole logic may be written with bindings for Python, or in a XML scripting language.
- World Management
- Avatar and Non Player Character management: synchronization of the user actions with the mesh, its position, its orientation and its collisions.
- Camera management with many different modes: first person, third person, tracking, isometric, horizontal.
- Region management: decomposition of a complete world in regions, with zoning between regions.
- Advanced management of portals, e.g. for closing portals that are occluded.
- Spawning of entities.
- Triggering of proximity events.
- Inventory & Interaction
- Key and peripherals events bindings.
- Billboards and tooltips.
- Inventory system.
- Selecting and grabbing objects.
- Advanced Physics
- Projectiles and damages to entities.
- Collision management with the ground.
- Advanced physical effects: fluids, thrusters, steering, explosions, attractors and repulsors.
- Vehicles and their physics: bikes, cars, tanks, hovercrafts, or any wheeled vehicle.
- Mesh deformation, e.g. for destroying gradually an object.
- Artificial Intelligence
- Finite state machine for the management of the evolution of the environment.
- Behavior trees to build complex artificial behaviors.
- Path finding and steering behaviors.
- Neural networks and genetic algorithms.
