Deferred shading, lighting is fully dynamic, ability to use light-shaders.
Weather and day/night model, light scattering model for sun
Havok physics, cooperative job system, HSM + dynamic navigation meshes(Recast), Client-Server networking (plus client-side physics), Lua scripts, virtual renderer (directx + openGL +...), clipmaps for landscapes, image based foliage maps.
Posted by yak32 on
Highly optimized rendering system
- Deferred shading - allows hundreds of lights in frame
- All lighting is dynamic (including sun and skies)
- Weather and day/night model, light scattering model for sun
- Real-time reflective lights
- Pre-calculated ambient occlusion calculated on the global scale
- Per-pixel lighting, bumpy reflections and refractions, animated and detail textures, shiny surfaces
- Virtual renderer - allows several graphics API, currently DirectX 9, OpenGL.
Landscapes and foliage
- Image based landscapes
- Trees rendering optimization - distant trees became billboard
- Image based grass maps
Script bases particle systems
- By GPU Shaders
- Physical particles on powerful hardware
- Prepared fire, smoke, explosions and a number of other effects
Physics System powered by Intel Havok technology
- Integrated into game itself, including physical materials on all surfaces, physically driven sound.
- Rigid body constructions. Thousands of different physical entities simulated per frame.
- On powerful hardware engine implements physically correct behavior of particles such as smoke, debris, etc.
Highly optimized job system
- It uses thread pool.
- During startup, engine allocates number of threads, depends of available CPU cores.
- Several modules in engine (physics, AI, navigation, decoding of sound etc) send jobs to execute.
- Jobs from same module can not be executed in parallel (if it uses same data)
- Profiler - counts function execution time.
- Debug render - mesh, navigation, lighting, fps, AI
- 3D sound positioning, spatialisation and attenuation
- OGG-vorbis compressed with adjustable quality, multi-threaded decompression
- Sounds can be downloaded from WWW
AI and Gameplay
- Efficient pathfinding for dynamic environment powered by Recast technology
- Navigation meshes are dynamic and can be updated by moving objects.
- Multi-layered animation system
- Hierarchical state machines
- Server side Lua scripts, with binding to everything - game objects, UI, AI etc
- UDP based, world state replicated by snapshots
- Bit-compressed data
- Client and server side physics.
- Client-side physics allows complex simulations over network.
- Delta-compression to send changed data only.
- Custom reflection mechanism to describe class members to be sent
Script based UI
- UI are drawn by script on server side
- Sending to render (or client) by render queue.
Data streaming from everywere
- HDD folder
- WWW streaming by curl library
- Streaming from zipped folders
- Loading big textures are delayed
- Memory pool optimization - 3x time optimization for small object
- ActiveX + IE now (other browsers later)
- Streaming data from Web