Jump to content

Orbits


Code24

Recommended Posts

Was listening to the DUExplorers podcast today, and it was mentioned that the mechanics of orbits are still yet to be determined and community input is welcome. So I thought I'd start up this topic to get some peoples thoughts.

 

The three main options suggested by the Devs in the AMA are as follows:

 

1) The planets turn around the Sun.
or 2) The planets turn around themselves (no need to orbit the Sun actually)
or 3) The Sun turns around the planets (which is cheaper!).

 

#1 Is the most realistic, but also the most challenging option, because planets wouldn't be in fixed locations and therefore could collide with things on their orbital path. It would also complicate navigational systems. Based on the AMA it seems that the main goal of the Devs is to provide a day/night cycle so this option wouldn't actually aid them in that goal. In my opinion, this wouldn't actually add anything to the game play. The only reason for it would be the sake of realism.

 

#2 Proposes that the planets be in a fixed position in the system but spin on their own axis, thus creating a day/night cycle. They have stated that this is their goal, although they haven't implemented it yet. I also prefer this option, although it's clear that it causes some technical challenges as well. For instance, ships flying though the atmosphere would have to be anchored to the planets spin. This means there would need to be a border between space and the atmosphere that determines whether a ship is anchored or not. 

 

#3 Is similar to Space Engineers, the main difference being that the star will be a "real" sphere floating through space and this is what we will likely see in Alpha. This makes me wonder what happens if you park your ship in the orbital path of the sun?

 

I would be pretty pleased if they were able to implement #2, but I was wondering if anyone disagrees with this direction or had thought of a different option?

Link to comment
Share on other sites

#1 can be quite important if, and only if, traveling between planets within a solar system takes a non-trivial amount of fuel and time.

 

I real life example that I know of off the top of my head is Earth and Mars. Your best fuel use and travel time window (using Hohmann transfer orbit) is every 22 months and travel time is about 9 months with our current rocket tech. The further apart from the transfer window the longer the travel time and the more fuel needed.

 

This is a game after all, but there could be some interesting strategy and player decision making if an Earth/Mars anologe had the optimal transfer window every few weeks, transfer time was 10 minutes vs two hours (at worse), and fuel cost was 1:10. Numbers pulled out of my tush but you get the idea. Obviously as player and world tech improves the factors will improve, but never be non-trivial. I can see a possible progression where the first transfers to the next planet had to be in those launch windows, it would take a few hours to get there and fuel costs would be quite expensive.

Link to comment
Share on other sites

I think it's a wonderful idea to implement orbits of Planets and have them revolving around themselves. This would add at least a little bit of randomness and thinking before you attack (sucks when your fleet has to fly 3AU in addition).

 

BUT (and this is a big, bad nono as stated in the aerodynamics thread)

 

You simply can't implement orbits for ships. Then Players would have to think about periaps/Apoaps, slingshots to even get somewhere far (this could be countered by "I have a scifi engine"), escape velocities and then again orbital velocities (it's kinda hard to get to the inner most planet, because your falling to the sun...)

This proposal also includes then orbits for every structure in space. Like the first two drawings of https://what-if.xkcd.com/58/ : space is not vertical, its horizontal. A station/ship/satellite/debris needs SPEED in order to keep it's orbit (because gravity is always there). Try docking/landing on that moving thing with your just build ship from ground. Even with a minimalistic model it's not that easy - and again: if made too easy, why add it in the first place? Those calculations only consume ressources and don't add anything practical.

 

I agree, that it would allow for interesting strategies and tactics but it would not work out well.

Link to comment
Share on other sites

Honestly don't know what's hard about making planets with a field effect of stickiness to them to prevent needing complex orbital mechanics, As you slowly fly away from a planet, reduce planet stickiness for objects flying away, Vice versa when travelling towards, Apparently this is a big issue in a multiplayer game.

 

By stickiness I mean the relative velocities ships would have to moving planetary bodies, Obviously if the bodies are stationary, there will not be any need to implement planet stick, But it's a trivial concept to implement planet stick and have orbiting planets around stars, Elite: Dangerous, Shores of hazeron do it, for example.

Link to comment
Share on other sites

I think it's a wonderful idea to implement orbits of Planets and have them revolving around themselves. This would add at least a little bit of randomness and thinking before you attack (sucks when your fleet has to fly 3AU in addition).

 

BUT (and this is a big, bad nono as stated in the aerodynamics thread)

 

You simply can't implement orbits for ships. Then Players would have to think about periaps/Apoaps, slingshots to even get somewhere far (this could be countered by "I have a scifi engine"), escape velocities and then again orbital velocities (it's kinda hard to get to the inner most planet, because your falling to the sun...)

This proposal also includes then orbits for every structure in space. Like the first two drawings of https://what-if.xkcd.com/58/ : space is not vertical, its horizontal. A station/ship/satellite/debris needs SPEED in order to keep it's orbit (because gravity is always there). Try docking/landing on that moving thing with your just build ship from ground. Even with a minimalistic model it's not that easy - and again: if made too easy, why add it in the first place? Those calculations only consume ressources and don't add anything practical.

 

I agree, that it would allow for interesting strategies and tactics but it would not work out well.

 

Here is the problem. As long as there is gravity an orbit is needed. One option is make the gravity fall off faster, say an inverse cube instead of inverse square. Combo that with a sphere of influence (the stickyness onepercent mentioned) with a radius calculated based on inverse square -- so there is a zone of no gravity but is still in the planet's frame of reference.

 

Orbits are not *that* computationally expensive using patched conics/keplerian parameters.

Link to comment
Share on other sites

It's not all about server load and computation, it's about how hard or easy they implement it for players.

 

Take KSP (yeah whole other idea and deep mechanics, I know): thousands of players needing to understand orbits first before they even manage to get to a station, manage their velocities, trajectories, insertion burns, brake burns and so on....that's kinda hard at first. I see no problem in implementing a much easier system which adds something to the game - all good with that. Making it too hard and speaking of orbits with all that includes, as I mentioned, would be not good whereas making orbits too easy and it adds simply nothing - that was all I said.

 

When someone writes about an idea, people should consider EVERY aspect of it and I just mentioned a problem when the idea would go to deep.

Link to comment
Share on other sites

While I think #1 would be the coolest, what you said about difficulties in navigation still hold true.

For now I think the best option would be to have a station planet which just rotated on an axis, like what was said in #2.

I feel that #3 isnt too dissimilar to #1, the only difference being that the star and planet have swapped locations.

Link to comment
Share on other sites

Please note that the graphics and the physics engine are technically distinct, and thus you can make the planter turn around the sun, but draw it as the sun would turn around the planets, thus merging #3 and #1, and #2 is just horrible, as it blocks all amazing features like asteroid redirection, planet collisions, orbit destabilization etc...

Thinking long term, it is better to stick with the law of physic as it is proven the most extensible feature-wise.

 

how great would it be to put a giant thruster on a planet and use it as a missile like in planetary annihilation, such thing would be immensely expensive but worth it if you want to destroy a target of strategic significance, like the homeworld of a major corp, but: you can shatter a planet by drilling to the core and detonating more energy that the planet is in theory to use itself: (mass of planet(kg) * g(9.81 for earth)), thus reducing the number of impacts on the planet and thus the damage, or taking control and redirecting it into the sun.

 

another interesting aspect is the interactions of massive objects in solar systems, it could be achieved by simply applying general relativity to the bodies, thus creating a destabilization. the problem is it would be quit difficult to make stable solar systems, but it can be countered by making gravitational ridges in the space time fabric of the game, thus avoiding important deviation. but wold it undermine the first proposition of the paragraph ? no, the point is to be able to destabilize a planet from its ridge and then let it collide etc...

 

planet collision, how would you do that? it is too computationally intense! actually, if you want absolute accuracy yes, but the physics are actually very simple, imagine two balls of slightly wet fine sand, and then apply the energy lost in the movement as heat to the planets, it usually ends in lava planet and a large debris field flying off, the debris has to be proportional to 50 percent of the lost energy transferred into 50% of the colliding matter, propulsing it in the mirror of the normal of the surface, like a standard bounce. In voxel terms, you have to delete everything and reconstruct it after the collision has happened, (voxel -> big particles -> voxels) , approximating the bounds of the particles and adding perlin noise to simulate the finer particles falling onto the planet. 

Link to comment
Share on other sites

I would really love proper orbital mechanics.

 

I think the technical problems that dev's mentioned is that in games you need to have an absolute system of measuring somethings positions if the ground is moving then everything is moving every tick and players and constructs are jumping across world partitions all the time creating huge server load.

 

What you need is to have zones where position is measured relative to the biggest thing (large ship, space station, planet), this is what games like KSP do with their spheres of influence. So in the planetary zone the planet is static and any thing not moving is static and unmoving and the rest of the universe is moving.

Link to comment
Share on other sites

It's not all about server load and computation, it's about how hard or easy they implement it for players.

 

Take KSP (yeah whole other idea and deep mechanics, I know): thousands of players needing to understand orbits first before they even manage to get to a station, manage their velocities, trajectories, insertion burns, brake burns and so on....that's kinda hard at first. I see no problem in implementing a much easier system which adds something to the game - all good with that. Making it too hard and speaking of orbits with all that includes, as I mentioned, would be not good whereas making orbits too easy and it adds simply nothing - that was all I said.

 

When someone writes about an idea, people should consider EVERY aspect of it and I just mentioned a problem when the idea would go to deep.

 

Right. My counter would be the ships have enough thrust that orbital mechanics don't have to be considered by most players. Then why bother implementing the mechanic.

 

The point I was making is that as long as a ship is under the influence of gravity it is under the influence of orbital mechanics. There is no way around this.

 

Space Engineers kinda does something like what I suggested, gravity falls off with distance and past a distance from the surface there is no gravitational influences. If planets were to revolve then some sphere of influence magic would be needed to pass reference frames around.

Link to comment
Share on other sites

That is a good idea, making relative subgrids that determine interaction, not too expensive computationally (you just move the entire grid) and allows proper orbital mechanics. These kinds of things can be parallelized quite a bit since it is made step by ste: move -> detect -> interact. This clear dissociation would allow a cuda program to do the update on thousands of grids simultaneously (cuda and not opengl as cuda is better at handling different sized gpu threads)

 

Anyways server side computation is inevitable if you want a hacker free environement, unless you opt for peer computing but that is way slower (sadly as it is extremely cheaper to use clients computers to verify calculations).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...