ÜberLame Engine ÜberLame is a powerful game engine implementing modern technologies. The engine does not support software rendering and requires a OpenGL1.0 or higher compatible accelerator. (exact version of OpenGL required depends on configuration of engine, since it's designed to be able to run even on very old hardware (such as Voodoo, for example) but in contrast to be able to exploit OpenGL2.0 vertex and fragment shaders ...) * General Levels combining closed spaces as well as enormous open areas On demand loading makes it possible to create a single huge level Powerful skeleton-based animation allows usage of motion-capture hardware and produces smooth and realistic motion of characters * Graphics Support for all OpenGL compatible accelerators, can be optimized for any generation of graphics hardware (the only demand is some mechanism for rendering-to-texture (p-buffers, fbo-s) and stencil buffer; note the current lighting system will work properly only with geForce3 and up, but planning to enable use of other lighting models as well (right now you can either bypass lighting systems and use lightmaps or combine both things, but lightmaps are not native to the engine)) Visualization optimized for hardware TnL (in case the material set is going to use it) Continuous level of detail for all the geometry, impostoring system High-speed blended animation system capable of an infinite number of bone interpolation & modulation operations Adaptive hardware state caching technology * Visibility determination Portal-style, non-linear subdivision based visibility detection system Optimized for T&L hardware by batching primitives in optimally sized groups Dynamic occlusion culling * Lighting Fully dynamic lights and dynamic percentage-close soft shadows Can be fully controlled by the script (for example breakable light sources) Animated lights Projector textures Character shadowing Intelligent light source selection, clipping, and merging Particle systems with real physics and even collision detection Screen post-processing * Material system Full featured material system with unique selection of best path for every supported hardware Every rendering path can use unique shaders, textures and graphics API states Capable of HDR rendering (can be configured for every rendering path separately) The Shader library is central to every part of the rendering pipeline Completely abstracts the graphics API Can be fully controlled by the script (for example water shader can receive notices on colliding objects and thus create perfect water, interacting with all the objects) Have mechanisms for rendering textures or vertex streams by simple scripts (enabling programmers to create various effects such as particle systems, various procedural textures or physical simulations, computed on GPU) Textures can be generated on-the fly, using massive library of functions for frame processing as well as drawing functions (ussage example - level designer can draw textures directly onto level geometry and then use them in shaders, or another example - all textures with signs can be saved without signs, allowing easy translation of textures !) Multi-pass rendering Complex rendering scheduler, used to balance between material-switching costs and repeating of geometry Separates shader writing from engine development Pixel and Vertex shaders are automatically used (on shader capable hardware) Physics simulation textures, such as gravity fields, local collision sets or volumetric wind data Can create particle systems, emitting real 3D objects, instead of 2D particles * Physics Not complete yet, but the aim is to create fully dynamic enviroment, where shaders and entities perfectly interacts with physics engine * Audio Not complete yet, but the aim is to exploit EAX2 capabilities and to heavily engage scripts to create music mixing systems, etc ... * Network Not planned for the first release of engine (because of high scripting system complexity) * AI Not complete yet, but the aim is to heavily engage script to create fully scripted entity system, so adding a new type of weapon, enemy or artefact is as hard as typing few lines of the script Planning to pre-script some usefull tools such as 3rd person camera tracking system or some pathfinding algorithms Planning to dynamically add hints into the map so AI learns form it's mistakes Planning to measure level of player's skills so the game difficulity can be set different for every part of storyline and it will be (subjectively) same difficult for all skilled or newbie gamers so noone would complain "bah! that's too easy" or "gosh! i'm never going to finish it"