- Joined
- Feb 6, 2008
- Messages
- 37,616
- Reaction score
- 2,336
- Points
- 203
- Location
- Wolfsburg
- Preferred Pronouns
- Sire
Wasn't the problem in OMP, that 100 ms round-trip (which is practically near perfect) meant 700 meters displacement between the vessels?
There is a linux public server, reachable by everyone with a public domain. That is for the orchestration. In this implementation there is the concept of persisters. The linux server persists vessels across a number of persisters.
Because I distributed the server module as well, you can fly around in orbiter.world without my laptop being up at all.
I attached a playback. Please note, some of the funkiness is due to Orbiter's playback system. I really did crash the ShuttleA. Note, none of the vessels besides the GL-01 was in the scenario originally, they were all spawned into this scenario.
I start flying the DG at around 1 minute 30 seconds. You be the judge if the effect is worth the cost of 1 second global update cycle.
There is also a slow update cycle, which is done every 60 seconds for orbital flights. It's also pretty stable in position from update to the next. A 60 second update cycle ensures that the instrumentation works, the position is actually pretty darn accurate, and you can actually dock this way. We can make this inversely proportional to the distance, for one thing. Also, currently everything is being done in global coordinates. I think I can probably improve the orbital flight experience by using space stations as hubs that are master vessels so that I can use relative coordinates.
Wasn't the problem in OMP, that 100 ms round-trip (which is practically near perfect) meant 700 meters displacement between the vessels?
Also as an FYI, in the above playback, even though my 2 orbiter instances (one persisting the vessels, the other recording everything and receiving telemetry) are on the same machine, that's not an advantage in terms of latency because the state vectors are stored on the publicly reachable server, so in the playback above I am making the same roundtrip that anyone else's client would.
Playbacks are not reflecting the actual multiplayer session experience, because Orbiter interpolates the sample points of recordings to make it look smoothly.
The playback actually gives you the precise experience the user sees. I am not trying to mislead anyone, this is literally the experience you get except for some additional jumpiness caused by the playback system. The playback system was in no way a help in this demonstration. The interpolation you talk about is done manually. This implementation doesn't suffer the issue with positioning being off due to Earth's rotation because some things like the acceleration and the mjd is transmitted and the client uses the Orbiter core to propagate the state vectors forward using euler integration.
I fully believe you that the 1 minute period between each state vector sampling is smooth, because that's just the local Orbiter engine doing its work. Of course that is smooth. The interesting point is where a state vector comes in... this potentially jumping event is smoothed out by Orbiter's playback system. Thus I'm not going to look at playbacks, but wait for the real thing to try out.
I released it last night to keep up with the tradition of releasing things on tuesday. I am sad it's not up yet. Sadly I am at work, otherwise I would have uploaded the 3 dlls here.
I tested this by using the scn editor to copy my state vectors to the ISS, burning away from it, then coming back and docking to it. Also, I watched the playback a couple times after recording it on an installation without the plugins installed to make sure things were working as intended, and what I see in the playback resembles pretty much exactly what I saw in game.
Give it some time, unfortunately it coincided with the server downtime. I guess Xyon was quite busy.
Once up, I'll definitely give it a try.
Yes this time, for now anyway, no registration required! It'll get a unique persister ID for you automatically and from there you'll be able to do your testing by just persisting your vessel in the world, and doing the same with another orbiter installation with the add-on installed.
OK. But that would be 2 clients, right? I'd still need network access to contact the server. I guess the server is not included in the distribution, is it?
No it is not. The server is in javascript/nodejs and is running under a $10/month digital ocean droplet.
I don't expect everyone to run nodejs on their windows installations. But the server code is easy to install and run, uses npm and the only dependency is express so it's easy to distribute/run locally.
Also, you just need http/internet connection on the client machine to run it. The code currently hardcodes the server domain: orbiter.world
I see there is an HTML server there. Can you upload the development snapshot there instead of having to wait for OHM approval? I guess that would also come handy in development for updates and such, similar to what we've done here for OMP: http://omp.ddns.net/software .
In fact, you can get the state vectors currently on the server by visiting: http://orbiter.world/tele
That's cool. Are those vectors the one the clients use, too? If so, it should be really easy to implement some pull mechanism to get them to be displayed in OMP clients, too. That way, a single OMP client could work as kind of orbiter.world bridge.
Notice they aren't changing, I think my orbiter instance running on my laptop at home crashed. And these are the very same vectors the clients use. They call this url once every second, and they simply decide to update the positions of vessels in orbit every minute.
---------- Post added at 04:24 PM ---------- Previous post was at 03:51 PM ----------
I have uploaded the zip package here: http://orbiter.world/orbiter.online.zip and restarted Orbiter on my laptop.
---------- Post added at 04:47 PM ---------- Previous post was at 04:24 PM ----------
I have ambitions of integrating with OMP and using that as a kind of front-end.
Yeah. Got it to work, I think... now at least the persisted vessel shows up on the server. Now I'll try a second client.
---------- Post added at 19:58 ---------- Previous post was at 19:53 ----------
Well, sorry man, but this is currently unusable, I'd say. I can't get it to run longer than a minute or two without getting a hard CTD. Reminds me of the good old OMP days back then, what a flashback :lol: .
I am surprised you can run it at all....
Face:
Could OMP be used to say, have one person doing the RMS work in the shuttle, and have another doing the SSRMS in the Cupola ?