User:DocAndy/Sandbox/p04

The unofficial name of Star Citizen's game engine is Star Engine. It is a heavily refactored version of the CryEngine from Crytek used since the first in-engine video released at the start of the Crowdfunding campaign. More specifically, the last update for the initially used CryEngine 3 integrated into Star Citizen's code was patch 3.8.

Now engine development is driven within the CIG studio structure with some of former Crytek employees supervising the project.

Large World
In order to create huge Solar System-like environments with (theoretically) hundreds of millions kilometer distances, the world space coordinates (basically the coordinates an object has relative to the origin) need to be saved in a 64bit format, also called double precision floating-point. The old 32bit coordinates would introduce errors at these large distances of a few meters, which causes e.g. jittering and shaking effects of the player's arms.

Zone System
More efficient and flexible way to be able to render, update and move thousends of objects within a Large World star system. The usual Octree approach is dropped for "zone containers", which hold all objects and data needed for a certain area, e.g. within a system a planet could be a zone and a station orbiting that planet another. When calculating which object on the station could be seen from the player position, the engine first calculates which "zone containers" actually can be seen and then renders objects only present in that containers instead of rendering all objects within a certain level of the octree, therefore improving performance and data management.

Local Physics Grids
Objects (e.g. ships and players) are moving relative to an origin in the game world. CryEngine calculates these movements for all objects seperately, which means it does not recognize a standing object (player) on a ship that itself is moving with a few hundred meters per second - the player would crash into the ship's walls when the ship turns, because the engine sees the player still going straight forward, while the ship is turning. Local Physics Grids go around this problem by attaching the player to a local grid on the ship. On this grid movements of objects are calulated relative to the local origin, which in turn is moving as a whole within the world space.

Camera Relative Rendering
Specific way of rendering a huge number of objects, while not putting too much strain on graphics card and network traffic. In combination with features explained above, necessary to render a huge number of objects within a huge environment.

Procedurally Generated Planets
see article

The Sun as a physical object
possibility of Binary Star Systems

GOST (Game Object State)
(reworked to newer system )

"Grabby Hands"
now integrated into the Cargo system and Loot System, 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

Tools & 3rd-Party Software

 * Kythera - AI middleware
 * Wwise - Sound Engine
 * FMOD - (deprecated) Sound Engine
 * DataForge - Data management, Ship & Weapons balancing
 * StoryForge - Dialogue and Conversations system, built upon DataForge
 * PlanetEd - Editor for creating planets
 * System Layout Tool - Star system layout and design
 * Room Management System - (deprecated) System for players to manage their hangars; now changed and integrated in Item Port System

List of Videos on the Star Engine
Gamers Nexus - Video Interview with Chris Roberts

Gamers Nexus - Video Interview with Sean Tracy

Gamers Nexus - CitizenCon 2016 PlanetEd tool

Squadron 42 Trailer