

Unaltered asteroids are removed from the memory, but when a player returns they are re-inserted with the exact same shape. Only if something alters the shape or material on the asteroid then these changes are made permanent. Even after it’s generated and inserted to the game world for physics simulation, the voxels are not kept in memory. This type of asteroid doesn’t occupy memory (except some small data for noise seed, position, etc.). new version – asteroids that are procedurally generated at the moment they are required (player enters an area near the asteroid, random floating object gets in a collision with the asteroid, etc.).old version - that can be used for handcrafted asteroids in future scenarios/missions.There were only a few basic asteroid shapes.įrom now on, there are two types of asteroids: Until now, Space Engineers supported only asteroids that were fully loaded during the loading phase and then kept as voxels and triangles in memory. On top of that, all these asteroids are fully destructible and don’t consume RAM/memory. The “procedural asteroids” feature adds a practically infinite number of asteroids to the game world.

As a result Havok doesn’t need to use double-precision math (physics calculations are faster in single-precision mode).

In other words, the world in Space Engineers is split into independent clusters, wherein each object has its own coordinates relative to the cluster center.Clustering is totally transparent to users, it runs in the background and you won’t see it. A clustering algorithm guarantees that no dynamic object can be closer than 2km to the cluster border. Depending on dynamic objects density, cluster size can increase its size without limits. We solved it by clustering the game world into independent clusters of objects (minimal cluster size is 20km). The harder one was to change the integration between Space Engineers and Havok (so Havok can keep using 32-bit floating point numbers).We have modified all game objects to support double-precision 64-bit floating point numbers - this was the easy part.This data format has a certain precision, leading to visible imperfections on objects located further than 10km from the origin Until now, Space Engineers and its physics engine (Havok) were using single-precision 32-bit floating point numbers.How did we increase the precision of numerical computations? If you decide to use your ship to travel from one side of the game world to the opposite, and you will fly on maximum speed (115 m/s), it will take you 552 years (checking calculation: 2 x 6.6 AU / 115 m/s).įor all practical purposes, “super-large worlds” could be considered “infinite worlds”, but the limit is still there and we don’t want to lie to you.
