Multi-player

From OrbiterWiki
Revision as of 04:29, 19 March 2006 by BadWolf (talk | contribs) (Multiplayer background)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Background

Pretty much since the dawn of Orbiter, users have asked: how can I play online with my friends?

Used to multiplayer features in virtually all modern games from arcade-style shooters to photo-realisitic flight simulators, it seems it should be logical to simply extend these engines to Orbiter.

It has proven not so.

Hurdles

Hurdles split into roughly two camps: logical and technical. Logical hurdles need cunning to overcome but are wholly soluble in the addon (eg. lag compensation). Technical problems relate to limitations placed on the addon by Orbiter itself (eg. being unable to jump simtime, inability to control landed craft etc.).

The first logical problem with multiplayer in Orbiter is range of speeds. The craft need to be visible to other players whilst sat on the ground at Havana, and equally when orbiting 200miles above the Earth prograde, an equally retrograde. That's a difference in speeds of 15 kilometres per second.

So what?

Well, in your driving game, if you have a tenth-of-a-second lag at 180mph, your car will appear to jitter 8 metres. Irritating, but still on the road.

If your point of reference is the surface of the Earth, so you have no jitter on the ground, a tenth of a second will cause jitter of 750 metres -- half a mile. It's not going to be easy to dock when you're not sure which cublic kilometer your craft will be in next second!


An example of a technical hurdle is how to deal with timeacceleration, and different system times. Orbiter works out the rotation angle of the planet depending on the SimTime. Different start times, time accelerations, pauses etc. cause these to become desynchronised. Suddenly a vessel sat on the pad at Canaveral appears half way into the Atlantic to one user and somewhere around India.

Another technical hurdle would be supporting animations on ship (eg. opening the DG's docking doors), or telling the Shuttle to start in Orbiter configuration on everybody's system.

As one delves deeper into this it becomes aparent the technical hurdles are the key to the viability of a multiplayer plugin. It's been postulated core support is required before a general interface can become effective.

Attempts

  1. Toni Ylisirniö developed the first recorded interactive multiplayer plugin with his seminal IRCMFD. Added mostly as a toy for regulars on Orbiter's IRC, it needed manual updates and really only addressed only the speed-difference hurdle by switching to relative-to-closest-vessel position reporting when vessels passed within 15km of each other. Development has ceased.
  1. MultiOrb took the IRCMFD model and provided automation (to deal with the logical hurdle of advising other craft of orientation and accelerative changes), as well as expanding the supported craft range. Again it didn't seek to address time differences. Development has ceased.
  1. OMP is a still-ongoing project, unrelated to the others outside of discussive advice, providing a more in-depth framework and seeking to address the time difference problem by synchronising the PCs with the simplified Network Time Protocol. Believed still under developement.
  1. Project Hamac is a proof-of-concept technology demonstrator, offering virtually no solutions to Orbiter technical hurdles, but addressing most logical problems by implementing a physics server-graphical thin client model. Development has transferred to the Kosmos project.

No comprehensive product has yet been produced, and consequently this area of Orbiter development should still be considered experimental.

See also

Category:Multiplayer addons