Multi-player

From OrbiterWiki
Revision as of 03:41, 15 October 2022 by Arvil (talk | contribs) (Added category.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Background[edit]

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.

This is not good logic. An orbital simulation has to deal with several orders of magnitude greater speed differences between potential simulated craft. Therefore the topic has required much work.

Advantages[edit]

  • Allows live tutorials, like teaching new players how to dock with the ISS.
  • Have competitions, aerobatics air shows or races.
  • Do historical flights with other players supporting you, eg launch the Mercury Atlas with another player as mission control and have someone chase that Atlas in a DG or be a chase plane for the shuttle landing.
  • Use multiple computers for home cockpits.
  • have multiple players forming the crew for more complex spacecraft, for spreading the workload among them.

Hurdles[edit]

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 the range of speeds. The craft needs to be visible to other players while sitting on the ground at Havana, and equally when orbiting 200 miles above the Earth, either prograde or 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 in LEO will cause jitter of 750 metres -- half a mile. It's not going to be easy to dock when you're not sure which cubic kilometre your craft will be in next second!


An example of a technical hurdle is how to deal with time acceleration, 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 sitting on a pad at Cape Canaveral may appear half way across the Atlantic to one user and somewhere around India to another.

Another technical hurdle would be supporting animations on ships (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.

The situation in Orbiter 2006[edit]

In Orbiter 2006, the API got enhanced by functions for manipulating the simulation time.

With this new set of functions, it is now possible to solve some of the synchronization problems in earlier versions of Orbiter.

Attempts[edit]

  • 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 the speed-difference hurdle by switching to relative-to-closest-vessel position reporting when vessels passed within 15km of each other. Development has ceased.
  • 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 and addressing some of the relative position reporting issues. Again it didn't seek to address time differences. Development has ceased.
  • OMP is a still-ongoing project, unrelated to the others outside of discursive advice, providing a more in-depth framework and seeking to address the time difference problem by synchronizing the PCs with the simplified Network Time Protocol. Is still under development.
  • Orbiter MMORPG is an attempt on creating a full-fledged multiplayer "game" within the Orbiter environment.
  • Project Hamac is a proof-of-concept technology demonstrator, offering virtually no solutions to Orbiter technical hurdles (bar docking), but addressing most logical problems by implementing a physics server-graphical thin client model. Development has transferred to the Kosmos project.
  • Orbiter.World is an attempt at building a persistent online world. In contrast to OMP, clients send updates to a server, where they can be retrieved by other clients by means of polling. Is still under development.

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

See also[edit]