Effective multi-core CPU support from the ground up
- Low level primitives: Atomics, thread-locals, thread pools, locks and spin loops, lock-free data structures.
- Multiple higher-level processing paradigms supported:
- Defaults to SPMD style; single-threaded is a special case.
- Job/Task pool abstraction for heterogeneous computing.
- Automatic task graph decomposition from serial code, using messages and futures.
- Efficient implementation of the Actor Model.
- Full integration with ispc – the Intel SPMD Program Compiler.
- No loss of determinism or dangerous abstractions.
Designed with cross-platform pitfalls in mind
- Compile-time selection of engine modules minimizes abstraction penalties, while preserving platform-agnostic game code.
- Per-platform data formats preserve efficiency and native conventions.
- Many back-end implementations are planned –
Flexible and efficient data pipelines
- Flexible and extensible rule/plugin based data compilation with automatic dependency tracking.
- Load-in-place data formats used to reduce on-load/parse computations to almost nil.
- Native asynchronous streaming of all asset types.
- Real-time refresh of all asset types for extremely fast content iteration times.
- Data compiler tool instructs running game instances to re-load affected assets.
- Automatic source data change detection and recompilation.
- Compressed data archive support for shipping builds.
- Network file-system support for development builds.
State of the art rendering technology
- Fully dynamic scenes, lighting and time-of-day.
- Physically-based shading with global illumination.
- Reproduction of dielectrics, conductors, retroreflectors, anisotropic highlights, translucent scattering and participating media.
- True floating-point HDR rendering pipeline based on radiometric units.
- Filmic and photographic post-processing controls.
- Emulation of F-stop, ISO, shutter speed, focal length and sensor/film-stock adjustments.
- Oculus VR, Stereo 3D, multi-monitor and UltraHD ready.
Flexible multi-player and networking systems
- Both authoritative client-server and peer-to-peer topologies supported.
- Separate physics simulation replication strategies for low-latency and extremely high-latency networks.
- Post-match cheat detection and peer checking.
- Cloud infrastructure for:
- User accounts, authentication and authorization
- User-generated content sharing
- Matchmaking and server browsing
- Hosting of dedicated servers
Integrated scripting, serialization and reflection bindings
- A simple data-description API allows decoration of any C++ type with:
- Lua bindings (support for other languages also planned).
- Serialization / de-serialization functions.
- Generic type reflection.
- Deferred execution of method calls (as ‘messages’ with ‘future’ return values).
- Generated Lua bindings are extremely lightweight, with minimal inefficiency in crossing the C++ Lua boundary.
- Dynamic type validation of C++ objects can optionally be disabled for shipping builds, for maximum performance.
Debugging and performance analysis tools
- Integrated testing framework.
- Per-module assertion and logging filtering.
- Crash dump generation.
- Live Lua debugger/IDE connection and code reloading.
- Block-based code profiling of multi-core CPU and GPU workloads.
- WebSocket host, providing live data inspection and modification capabilities to external browser-based and desktop tools.
Detailed vehicle and physics simulation
- Advanced tyre simulation.
- Air resistance, aerodynamic downforce and lift.
- Torque curves, gear ratios, clutch simulation.
- Differentials, shock absorbers, stabilizers, Ackermann geometry.
- Caster, camber and toe angles.
- ABS, traction control, keyboard steering assistance.
Open source components
- The engine’s core layer will be released as a permissive open-source project.
- An experimental/undocumented version is already available for the brave: