Star Engine is the unofficial name of Star Citizen's game engine.[1] Originally it is a heavily refactored version of CryEngine 3 from Crytek used since the first in-engine video released at the start of the Crowdfunding campaign. More specifically, the last update integrated into Star Citizen's code was patch 3.8.[2]
On 2016-12-23, CIG announced with the release of Star Citizen Alpha 2.6.0 its move to Amazon_Lumberyard game-engine (which is also based on CryEngine 3.8) in order to utilize the integrated Amazon Web Services (AWS) and Cloud-Computing features "to support next generation online gaming" [3] . It is not known which version of Lumberyard is currently integrated in Star Engine and how CIG will handle future iterations (as of November 2016, the current version of Lumberyard is Beta 1.6).
Engine development is still driven within the CIG studio structure with some of former Crytek employees supervising the project[citation needed].
Features
Here's a list of features added by CIG since CryEngine 3.8.
Notable Tech
- Large World (64bit world space coordinates)
- Object Container Streaming
- Mega Map
- Zone System
- Local Physics Grids
- Room System
- Camera Relative Rendering [4]
- Procedurally Generated Planets
- PBR (Physically Based Rendering)
- The Sun as a physical object (possibility of Binary Star Systems or exploding ships in orbit casting light to the planet surface) [1]
- Subsumption AI [5]
- Unified First- & Third-Person animations
- Unique Global Entity ID [6]
- Generic Instance Manager [7]
- Universe Simulator [7]
- Persistence (Player Info Server, Presence Server, HUB Server and Player Persistence) [7]
- Item Port System [8]
- StarNetwork
- GOST (Game Object State) (reworked to newer system[4])
- "Grabby Hands" - now integrated into the Cargo system and Loot system,[7][9] initial system for grabbing and moving objects (e.g. cargo) and initially set to be released in the (later delayed) Astro Arena or SATABall FPS game mode
- Multi-LayerBlend - character shader tech [10]
- iPredictor (movement prediction) system [7]
- Diffusion (cloud-oriented back-end service architecture)
Rendering
- Object space shader damage (allows 4 different types of damage to be permanently inflicted on ships, including cutting holes, and blended seamlessly into the base shading)
- Real time environment-probe capture and compression (avoids needing to bake probes in space and on planets)
- Image based lens flares (use entire source image to simulate 4 different physically based lens distortions per colour channel on up to 20 individual elements)
- Physically based bloom (wide exponential kernel based purely on light intensity)
- Human eye exposure simulation (capture histogram of light intensity from both screen and surroundings, isolate range of light we intend to focus on, simulate both pupil and photo-pigment reactions for quick and slow reactions)
- Major improvements to planar lights (far more physical basis now which results in major quality improvements)
- Intelligent mesh-merging system (repeatedly searches for best bang-for-buck mesh merge opportunity in a scene until we hit a memory limit)
- Upgraded volumetric fog (e.g. support for planar lights, light-boxes, env-probe priority sorting)
- Major upgrade to shadow pool system (all lights share one giant pool for better dynamic resolution scaling, shadows can be cached between frames for better performance)
- Render target pooling (shares memory between internal textures used in the renderer to vastly reduce VRAM usage)
- Render to texture pipeline (ability to render secondary viewports with full or limited feature set to then be used as textures in the primary scene, e.g. video comms or holograms)
- Tiled lighting upgrades (use rasterization light culling for greater efficiency, particle support)
- Density based LOD algorithm (LODs change based on polygon density to ensure consistent appearance, less artist intervention, and promote more optimal art assets with fewer sub-pixel polygons)
- GGX normal map filtering (gloss adjusted in mip-chain to best fit of our GGX lighting model to give the same results as super sampled normals)
- Camera relative rendering (allows 64bit world without incurring any rendering performance hit by maintaining 32bit precision for rendering)
- GPU Particle System (built from the ground up for efficiency, distinct from Lumberyards and CryEngine's GPU particle systems)
- Various improvements to transparency sorting (generalized system, allow depth of field and motion blur to not effect nearby in-focus objects, order independent transparency for specific shaders such as hair)
- Artist friendly profiler (captures statistics per art-team, and per area of the level allowing accurate breakdowns and quick diagnosing of performance issues)
- Physically based atmospheric scattering
- Hierarchical object management (efficient searches and culling, local coordinate frames for things like ships inside ships on planets which are rotating etc)[11]
Tech included in Star Citizen Alpha 3.0.0 [12]
- P4K System - improved data handling system
- Planetary Rotation
- Temporal Supersampling (TSAA) - previously rendered frames are used to improve the anti-aliasing results on the new frame
- Improved Screen Space Directional Occlusion (SSDO)
- New Filmic Tone Mapping Curve (ACES)
- PBR Glass - Glass (e.g. cockpits) can be rendered with phyiscs-based distortions, cracks, reflections and chromatic effects
Future Planned features (as of October 2017)[12]
Short term
- Terrain Occlusion & Shadowing
- Gameplay Driven Material Shaders
- "Space Fog" (Gas Clouds in e.g. asteroid fields)
- Improved Hair
- New Shield Effect
- Depth of Field Improvements
- Colour Processing Improvements
- New Motion Blur Implementation
- Support for Complex Shading Models
Mid/Long term goals
- Object Container Streaming support on the low level/system side
- Improved Planet Effects (shadows, clouds, etc.)
- Improved Space Effects (stars, sun, rings, etc.)
- Dynamic Global Illumination
- Batching of physics-thread
- Batching of render-thread
- Vulcan backend support
Tools & 3rd-Party Software
- Kythera - AI middleware [13]
- Vulkan API - 3D graphics and compute API [14]
- Wwise - Sound Engine [15]
- FMOD - (deprecated) Sound Engine [4]
- DataForge [citation needed] - Data management, Ship & Weapons balancing [4]
- StoryForge - Dialogue and Conversations system, built upon DataForge [6]
- VERS 3D (formerly known as PlanetEd) - Editor for creating planets [16]
- System Layout Tool - Star system layout and design [5]
- Room Management System - (deprecated) System for players to manage their hangars; now changed and integrated in Item Port System [4]
List of Videos on the Star Engine
Gamers Nexus - Video Interview with Chris Roberts on Instancing & Player Counts (2015)
Gamers Nexus - Video Interview with Chris Roberts on Procedural Generation (2014)
Gamers Nexus - Video Interview with Chris Roberts on Procedural Planets V2 (2016)
Gamers Nexus - CitizenCon 2016 PlanetEd tool
See also
References
- ↑ 1.0 1.1 Gamers Nexus - Interview with Chris Roberts, summary
- ↑ Gamers Nexus - Interview with Sean Tracy, summary
- ↑ Clarification by Chris Roberts on the switch to Lumberyard
- ↑ 4.0 4.1 4.2 4.3 4.4 Monthly Report Oct 2014
- ↑ 5.0 5.1 Monthly Report Sept 2014
- ↑ 6.0 6.1 Monthly Report Nov 2014
- ↑ 7.0 7.1 7.2 7.3 7.4 Monthly Report April 2015
- ↑ Monthly Report May 2015
- ↑ Subscriber's Town Hall with Austin Developers
- ↑ Monthly Report June 2015
- ↑ Ali Brown comments on Star Engine renderer on Spectrum. Spectrum
- ↑ 12.0 12.1 CitizenCon 2017 Graphics Engineering Panel "Beyond the Cutting Edge"
- ↑ Kythera by Moon Collider
- ↑ Ali Brown (Director of Graphics Engineering) comment about Vulkan
- ↑ Wwise
- ↑ PlanetEd reference