ok, i have an idea...
so, the ISS is a target, as is KSC... when you fly there on your own, you're entering YOUR INSTANCE of it, other players can be in other instances, since the ISS will be in a different position over different times...
instances are target-space-oriented, so say you´re approaching the ISS from a relative distance of 300km...
you may then choose to sync up with the ISS instance that's closest to your MJD - your ship will be warped so it appears in the same relative position and veocity to the station, as time magically "jumps" into another date, taking the station (and you) with it...
<snip>
but say you wanna arrive at the moon and meet up with your friends there... jump up and when you're approaching the base, sync up with the most suitable instance for the local area, and you'll be able to see your friends there -
you'll soon forget the instant "snap" that the sky would do as you warp into sync with the local target and it's time-frame (don't worry, its just the moon being repositioned a few million miles and taking you with it)...
Whenever I read "magical" and "instant snap", I feel uncomfortable with a proposal. This is my opinion on it:
- If the system is doing something "magical" or "instant", it breaks the immersion for Orbiter users. Granted, you can always do some FTL fuzzing-around, but it will always have that cheating feeling to me. Besides that, OMP already has a built-in FTL jump functionality for the quick ISS meetings.
- Your proposal basically creates overlapping objects (multiple ISS instances) that you need to link together somehow. How do you determine that player A's "myISS" object is to be linked to player B's "GreatStationInTheSky" object according to your "target" idea?
- How would you deal with interactive targets? Let's say ISS has RCS control and player A is switching focus to his own, personal ISS instance, just to alter the trajectory a bit in order to let it de-orbit. If he now switches back to his DG and chases the ISS, he suddenly is transferd into a stable Orbit with (what?) relative velocity to a perfectly fine ISS of (whoever?) else... sounds rather confusing to me.
- Do you propose to hold all global server objects as duplicates on every machine? If not, how does one create his targets in order to be able to reach them? If so, wouldn't that cause scalability issues?
- You have a very good point regarding bases here. I too think that bases (and planets) should be linkable targets, but not for the purpose of jumping someone around space-time, but for the purpose of precision regarding state-vectors. I have a negotiation phase in OMP where a common object database is built up. All clients agree on object identifiers in order to make state vectors adressable (aka relative state-vectors). This database contains planets, bases and vessels. Every non-static object (i.e. vessels or vessel-bases) is hosted by exactly one client, though.
- I think your proposal is creating an additional - even more confusing - automatism on top of the bubble concept. Both of your scenarios can be reproduced with the pure bubble concept and a FTL addon.
The bubble concept is more than I've described here in my quick repeats. E.g. you can of course go back in time, either by effectively stopping the simulation until the bubble catches up, or by simply using Orbiter's SetMJD feature to set your simulation to the appropriate time. The point is, that it is not adding concepts beyond what it necessary to Orbiter.
Your proposal is very interesting, but it is more pointing into the MMORPG direction, where you can have goals and parties and "targets". Nevertheless, your ISS scenario is a valid use-case. To me, it goes like this:
- A and B are starting in the same bubble. A is hosting a DG starting at the cape, B is hosting a DG in moon orbit and a ISS in LEO.
- A is going to ISS, B is doing a approach on Brighton with his DG.
- While A needs a time-acc for the coasting&rendevous phase, B is on final (and not interested in speeding up his ISS).
- Now A can either wait for B to complete his final, or time-acc on his own and rendevous "into-the-blue", as B's ISS will disappear if he leaves B's bubble.
This is certainly a headache, and your proposal would solve this, but with the magic jump in the end. Given that A will want to do the space equivalent of touch&go (i.e. go back to earth immediately after rendevous), your proposal would make detailed flight plans impossible in such cases, as you can't plan the jump's actual location, because it is depending on B's mood - more or less.
So - as a take-away - I think we could use your ideas here to fix that scenario without something instant or magic: snapshot objects. In the scenario above, where A don't want to rendevous "into-the-blue", he can leave the bubble, but create a local placeholder that is just a marker for the supposed trajectory of the ISS. This marker will go with the time-acc, in order to give A a visual feedback. As soon as A arrives at the appropriate meeting point, he deletes the marker. He is now where the ISS would be if B is catching up to A's bubble without altering the trajectory of the ISS. If B don't want to do that, A can only decide to go back to B's bubble again, in either stopping the simulation until B catches up, or using the scenario editor to SetMJD (which is a magic device on its own). In all cases, the relation of flown trajectory to position in space-time is not broken (with the exception of ScnEditor, which is "magical", but at least stock).
what do you think? doesn't that fix the time-warp problem?
Yes, it fixes the time-warp problem because it is using the bubble concept as base.
then there's the mater of proxy-meshes so addon ships are visible to those who don't have it... i'd advise a simple SDK so addon-makers like myself could integrate into their ships a bandwidth-friendly mesh for multiplayer streaming
OMP already takes this into account by means of mapping. The server maps vessel classes to proxy classes. E.g. DGIV to Deltaglider or unknown classes to a stub class. Thus, no SDK would be needed, addon-makers could just create a second - "dumbed-down" - version of their vessels.
If you think about online-distribution, this opens a can of worms due to legal issues. I'll not go that road...
this would be so awesome if it were to be done!
As I always say: do it yourself! If you can't do it, you are welcome to tell us about your ideas, but then they will only be that... ideas.
Not really, it's fairly straightforward. Keeping track of who is at what time is relatively simple: people who aren't at your time don't show up for you.
...
Why? It'll actually reduce load on the connection, since you won't need to transmit data for people who are in a different bubble...
Seconded.
regards,
Face
---------- Post added at 03:41 PM ---------- Previous post was at 03:34 PM ----------
my idea is that, unlike the original "bubbles" method, there's no live interaction between players in different dates and time-accelerations...
I think you got that wrong. The bubble concept has no live interaction between players in different dates and time-accelerations either.
it may seem like a tricky concept at first, but once you get your head around it, you'll see it's actually quite straightforward... and it's pretty much the only way of getting proper multiplayer going
It all depends on the definition of "proper". As I said, sudden jumps and dislocations are not in my definition of it. But I understand that you can live with it, and I also think your proposal would be a nice addition for the MMORPG thread. Would be interesting to apply it on the whole market, prices, resources discussion, too.
regards,
Face