- Joined
- Oct 17, 2013
- Messages
- 40
- Reaction score
- 77
I've been toying around with the more recent dev-builds, and tried to replicate something I saw in an old mushroom fleet video. In this video, players attempted to enter and maintain an orbit about a dodecahedral planet using the shifting gravitational directions. However, this was impossible without the players constantly adding thrust to maintain elevation.
There seem to be several major barriers to making gravity orbits work:
1) Space linear damping gradually removes the player's tangential velocity, acting effectively as a "drag" force that causes the player's craft to deorbit (damping can be disabled in the server config file)
2) Entering an elliptical orbit causes the player to pass very close to the planet on one face and slingshot out of the gravitational effect entirely on another planetary face. Not only does this make transfer orbits impossible, it also restricts orbits to very, very low elevations (no geosynchronous/geostationary or "high-planet" orbits)
3) The "corners" created by "Cartesian-orientation" (+/- x, y, z) on the dodecahedral planets create anomalies in the orbital path. See the figure below:
In this section highlighted by the red triangle, gravity is confused. In this gravitational "corner," the left face's gravity will pull the player's craft in a direction NOT orthogonal to the planet's surface, as you would expect when over a flat plane. Instead, something else happens..
Assume the player is orbiting this planet clockwise. In this zone, the left-side gravity will accelerate the player orthogonal to the planet's surface at a fraction of the normal gravitational acceleration, and the remaining acceleration increases the player's tangential velocity, which will cause the player to gain kinetic energy for free (unrealistic and head-thump-inducing when trying to achieve a circular orbit).
Similarly, if Starmade applies the right-side gravity to the player, the planet will also accelerate the player orthogonal to the surface at a fraction of the normal gravitational acceleration. However, in this case, the remaining acceleration will decrease the player's tangential velocity, as it acts retrograde to the player's motion. This causes the player to lose kinetic energy for no reason (also unrealistic and concussion-inducing).
To solve this confusion and to allow planetary orbits to become possible, see the figure below:
Create a range of distances from the planet center that correspond to a "planetary body" gravity, which applies a gravitational effect (constant directional acceleration) oriented towards the center of the planet. Below the inner boundary of the planetary body gravity range, only the relevant surface gravity is applied to the player (or other entities). However, above this inner boundary, the planetary body gravity takes precedence, and its effect is applied instead of the surface gravity's.
This works because the radius of the inner boundary for this effect would be EQUIVALENT to the absolute ceiling of the surface gravity (from the center of the planet core). Thus, the surface gravity would always be applied near the planet except at the "corners" where the gravity becomes confused.
Now, with a point-based gravitational field at extended distances from the planet, players (who disable linear-damping in the server config) can establish many different types of circular and elliptical orbits for satellites and ships.
New Avenues for Gameplay:
With the planetary body gravity, players could establish different orbits for different reasons.
A) Player wants to keep guns pointed at certain place near the planet "equator"
--->Player establishes a geostationary orbit with guns pointed at planet
B) Player wants to establish a "spy" satellite
--->Add in ability to interface with ship cockpits remotely and player can view location on planet/adjust orbit
C) Player's fleet just entered the planet's gravitational influence
--->Maneuver to establish orbit
D) Player wants to have a moon and/or moon-base
---> Tows an asteroid/space object into orbit
While I am not 100% on the performance impact, I have often seen AI get trapped on planets after flying too close. Even when they've been flopping around on the ground, I have never noticed a significant drop in performance. I am curious as to what others may have experienced.
What do you all think?
There seem to be several major barriers to making gravity orbits work:
1) Space linear damping gradually removes the player's tangential velocity, acting effectively as a "drag" force that causes the player's craft to deorbit (damping can be disabled in the server config file)
2) Entering an elliptical orbit causes the player to pass very close to the planet on one face and slingshot out of the gravitational effect entirely on another planetary face. Not only does this make transfer orbits impossible, it also restricts orbits to very, very low elevations (no geosynchronous/geostationary or "high-planet" orbits)
3) The "corners" created by "Cartesian-orientation" (+/- x, y, z) on the dodecahedral planets create anomalies in the orbital path. See the figure below:
In this section highlighted by the red triangle, gravity is confused. In this gravitational "corner," the left face's gravity will pull the player's craft in a direction NOT orthogonal to the planet's surface, as you would expect when over a flat plane. Instead, something else happens..
Assume the player is orbiting this planet clockwise. In this zone, the left-side gravity will accelerate the player orthogonal to the planet's surface at a fraction of the normal gravitational acceleration, and the remaining acceleration increases the player's tangential velocity, which will cause the player to gain kinetic energy for free (unrealistic and head-thump-inducing when trying to achieve a circular orbit).
Similarly, if Starmade applies the right-side gravity to the player, the planet will also accelerate the player orthogonal to the surface at a fraction of the normal gravitational acceleration. However, in this case, the remaining acceleration will decrease the player's tangential velocity, as it acts retrograde to the player's motion. This causes the player to lose kinetic energy for no reason (also unrealistic and concussion-inducing).
To solve this confusion and to allow planetary orbits to become possible, see the figure below:
Create a range of distances from the planet center that correspond to a "planetary body" gravity, which applies a gravitational effect (constant directional acceleration) oriented towards the center of the planet. Below the inner boundary of the planetary body gravity range, only the relevant surface gravity is applied to the player (or other entities). However, above this inner boundary, the planetary body gravity takes precedence, and its effect is applied instead of the surface gravity's.
This works because the radius of the inner boundary for this effect would be EQUIVALENT to the absolute ceiling of the surface gravity (from the center of the planet core). Thus, the surface gravity would always be applied near the planet except at the "corners" where the gravity becomes confused.
Now, with a point-based gravitational field at extended distances from the planet, players (who disable linear-damping in the server config) can establish many different types of circular and elliptical orbits for satellites and ships.
New Avenues for Gameplay:
With the planetary body gravity, players could establish different orbits for different reasons.
A) Player wants to keep guns pointed at certain place near the planet "equator"
--->Player establishes a geostationary orbit with guns pointed at planet
B) Player wants to establish a "spy" satellite
--->Add in ability to interface with ship cockpits remotely and player can view location on planet/adjust orbit
C) Player's fleet just entered the planet's gravitational influence
--->Maneuver to establish orbit
D) Player wants to have a moon and/or moon-base
---> Tows an asteroid/space object into orbit
While I am not 100% on the performance impact, I have often seen AI get trapped on planets after flying too close. Even when they've been flopping around on the ground, I have never noticed a significant drop in performance. I am curious as to what others may have experienced.
What do you all think?