Just wondering how asteroid rings are going to work if planets and moons and asteroids all follow orbits.
It’s been bugging me for a good long while, just decided to post a thread about it so I don’t need to bother worrying about it any more.
Are the individual rocks going to be fixed objects or fixed to a single disc that rotates around the planet at a constant speed (the second one there is the Elite: Dangerous method, looks weird). Would be a little disappointing to find out if either of these were the case but understandable. Performance and technical issues around a more realistic system seem like that could be severe.
Any word for what system would get used in the finished game? Just how much of a performance hit would giving every single rock in the entire ring its own orbit be? Would some hybrid system of a number of speed-bands to allow rocks on the inside of the ring to move faster than those on the outside be in any way viable? Anyone else have their own thoughts about the way this will or won’t get implemented and what it could do for gameplay?
Currently the word is that they don’t even know how much orbital mechanics they can put in celestial objects for the netcode of player ships to still function correctly.
If and how much they manage to “fix” (live with) that issue will really determine what comes next.
Ignoring the netcode problem I don’t see a big reason not to have every celestial object orbit. But don’t calculate orbits traditionally, do it procedurally.
That depends on how the code for the rings is done of course. It already creates a ring at a position around a planet. Add a fourth dimension to the procedural generator that “fakes” position of the fragments over time by putting the orbital calculations in there. That way a new seed can also generate a new “time” where the orbital positions of all the objects are somewhere else than when another seed is used.
A problem could be that for the algorithm to fake the rotation correctly it needs to know the mass of the planet, which shouldn’t be a problem for battle scape as size of the planet will probably be a parameter an “System Artists” sets.
Another Problem could be that the live code that applies gravity to player ships could be slightly different to the code that simulates the rings. That could make you drift from a piece of rock even though you should have the same orbit. Maybe because the ship is affected by the nearby moon while the rocks aren’t.
It’s my understanding that what you see in the prototype is what you’ll see in the final game - the only moving objects will be the ships. The bits in the planetary rings will tumble slowly, and that’s it.
There’s not much point in asking about implementation because that’s entirely down to the game engine and the engineers working on it. They could design something that makes spinning planets a nightmare to implement - or as easy as falling off a log.
As for gameplay, celestial mechanics on rails (CMOR) could make the task of getting from point A to point B more involved. I consider that a good thing, but if the gameplay is targeting folks who just want to hop into the game and shoot stuff then it’s probably just a pointless barrier to entry. INS would first implement orbits and spins - and then they’d have to put in navigation aids to help players deal with it.
I don’t see CMOR planetary rings doing anything significant for gameplay.
I support, if live movement of planetary, ring or in-ring/near-ring objects aren’t possible due to the networking problem, to at least randomize those positions between matches.
I don’t see how that makes flying between planets more difficult. They aren’t always where you expect them, but that’s the added fun, that you can’t always apply the same grand strategy as another objective might be closer.
But if I get on topic again. Rings are the least priority to orbit. Randomizing their rotational position doesn’t even bring something like it would for other celestial objects. That’s due to their apparent uniformity. The ring 1000 kilometres around the orbit will look exactly the same. If fighting at high speeds will be possible, people will just match speed with the ring and it will be back to as if the ring wouldn’t rotate in the first place.
Related to the rings: how are currently managed the collision with asteroids and the small associated debris?
From the videos I’ve seen, debris are like in ED and don’t impact the ship in any way. I would love the fact even small debris can hurt your ship.
As for the orbiting and game physics for asteroids, I wouldn’t expect much since the minimal funding was reached and there’s a lot of things to take care of.
It should first be noted that i am not a programmer of any sort.
That being said, I don’t understand why planetary orbits (and any other massive bodies) couldn’t just be put on rails that the client follows, and have the server just synchronize a time stamp so the client knows where to put everything.
Take a look at the thread that talks about moving battlescapes. Moving planets produce moving battlescapes, so the same problems crop up. It’s not a problem of moving the planets, but of having the ships and such move with them correctly.
That’s not the problem. Things orbiting would work out, as they will always be at the same place, at the same timezone for everyone and won’t change their course. They aren’t interactive.
The problem is, the higher the speed of an online player in the absolute coordinate reference frame of the star system, the bigger the positional errors that transmitting those coordinates over a network get.
I-Novae could make objects orbit. They would render fine for everyone even though they are moving at a high speeds. Their movement could be bound to a timecode and not a coordinate update.
Problem comes in when player try to match their speed with such object. As I-Novae is using an absolute coordinate system, the higher their speed gets, the bigger an error a network “lag” or even normal tolerances would get.
Before they have a workaround to this problem inherent to the absolute coordinate system, doing anything near fast moving objects won’t be fun.
Arn Ninjad, yes you can read more about it in the thread that JB linked above.
The problem is not with the objects themselves. The problem is with the players. If you’re using a coordinate system centered e.g. on the sun, then you have players moving at enormous speeds in that coordinate system that are constantly affected by gravity and firing their thrusters, drastically changing their speed and position. It’s not easy to make the server adjust to that. You can see it in one of the streams where the players enter warp and appear to be bouncing due to bad synchronization. Someone with more time and knowledge could probably explain it better than I can.
From what I understand, it’s not an unsolvable problem. There are various things they could try, like bubbles of space or collections of nearby players with their own coordinate system or limiting the rate of change of the acceleration in warp to make the server predicting where the ships will be easier. And they haven’t yet optimized the netcode, so that should also help. But getting orbits done will add to the complexity of the server and take time that could be used on other things that are more important to gameplay. So from what I understand, the answer for now is “We might try to make it work, but make no promises.”
Edit: Double ninja. That’s what I get for trying to write from phone.
I was just wondering how collisions in asteroids belt / rings are going to be handled ? Are you going to provide an “auto flight assist” that will automatically avoid collisions when flying through it ? Or simply a bypass radar and no collision on small fragment ? Or even more simply no collision at all (the more you read me, the less it’s cool) ?
For the time being, even if you fly right at an asteroid if your going fast enough you will phase right through it. Im not certain but its probably due to collision detection only being processed once every set of frames, and when you go too fast your ship’s mesh never intersects the asteroid so nothing happens.