Community

Feature Focus: Physics Systems

Rocket Engineer · published

In most video games, physics is core. It’s what dictates the movement of the player and its surroundings as well as how objects interact with each other. For most types of games, the game engine’s built-in physics system is good enough for them. However, if you need create a large-scale game where the player is able to make time move many orders of magnitude faster than usual, you’ll need a much more robust physics system that is more powerful than the usual framework most game engines offer.

With no doubt, Rocket Engineer is the type of game that requires a more advanced solution to physics. The physics systems can be divided into four main components: Kepler orbits, floating origin, floating velocity, and Unity’s physics.

First of all, Kepler orbits are what allow us to calculate the full orbit of a rocket at runtime without requiring us to simulate all previous forces like you would need to in any simple trajectory prediction calculation. If the rocket’s orbit can be represented perfectly with math, we can use time alone to figure out where the rocket will be. This is what also allows us to simulate rockets with a very high accuracy that are very far or also to allow the player to go 100,000x faster than the real time.

Floating origin is the second big physics component. It is already fairly common across a lot of games to preserve accuracy even if you are far from the origin. In Rocket Engineer, if you move beyond a certain threshold, every object is brought back to the origin. This is to prevent choppiness and lack of precision at great distances from the origin. This way, you always keep a high precision for the physics calculations.

Floating velocity enhances the performance of the floating origin by allowing it to run less if you are moving fast. When your rocket reaches a certain threshold velocity, the rocket will no longer be moved, but the universe around you will move. This means that any thrust you put will be calculated as a velocity and added to all the other planets or rockets.

Finally, Unity’s physics is what we use for whenever you are controlling a rocket. It allows us to quickly simulate the different forces from the collisions, the engine, the drag from the atmosphere, and the gravity.

With all these components, Rocket Engineer is able to handle a large map with rockets traveling at high velocities, and can support scaling things up later if it’s deemed necessary.

More from Rocket Engineer

Other announcements

All events