Difference between revisions of "Multi-player"

From OrbiterWiki
Jump to navigation Jump to search
(Added MMORPG page.)
(Moved Kaito's idea to MMORPG page)
Line 53: Line 53:
  
 
No comprehensive product has yet been produced, and consequently this area of Orbiter development should still be considered experimental.
 
No comprehensive product has yet been produced, and consequently this area of Orbiter development should still be considered experimental.
 
==Kaito's Idea of an Orbiter Multiplayer Platform==
 
This was made by Kaito from Orbiter-Forum on November 15th, 2009.
 
 
Following a discussion on Orbiter-Forum, someone though of a Orbiter RPG. Everyone pointed him to these multiplayer links. However, if you think about it, there can be two different idea's for multiplayer: an "Orbiter" type multiplayer, where there are no set goals, the goals are made by your brain, or an "RPG" type multiplayer, where you have a goal, no matter how small or insignificant. A common "goal" in most MMORPG's is to become stronger. A goal for an RPG Style Orbiter would be to, say, make a base on the moon, or keep some explorers alive by sending supplies.
 
 
===Synchronizing time===
 
I have a feeling this would be "simple" (I am not a coder, so I don't know to much about this): Have a server, and when someone connects to this server, change the clients time to the servers time
 
 
===Lag===
 
Eve Online has exactly one server, and they can support more then 40,000 people on it. Why? Because they have over 1,500 "solar systems", each with their own stations, asteroid belts, etc. All these are "hubs", where nearly everyone gathers. Almost no one is in between these "hubs". If you are not inside one of these "hubs", the ships aren't rendered, so there isn't much lag caused by one client. This same sort of idea can be used in orbiter: Don't retrieve information on it unless it is within rendering range. Now, of course, this causes a problem when you are going to the ISS, and there are 15 people in line, waiting to dock. If this is the case, maybe intentionally slow-down the information sent to the Client. Example: The Rendering Distance is 100km. You are 101km away from ISS, just passing into Rendering Distance now. There are 15 people around the ISS currently, which would surely slow-down your client if the information was sent all at once. So, orbiter renders each ship "separately" based on a "Level of Importance". The ISS would be rendered first, then maybe at 95km, another ship, then at 90km, another ship. This way, You would still see all the ships in time to make adjustments, but your client wasn't flooded all at once with a bunch of information that wont be useful until later.
 
 
===Goals===
 
The idea of goals and consequences could be what drives Orbiter Multiplayer. Forgetting to de-orbit your fuel tank and having it be a problem for the next guy could lead to a bunch of different things (Space Terrorism and Grieving (Intentionally causing other players to have a bad time)). However, teamwork could also arise: Trying to build a space station by yourself would be difficult, so you would need more people to help construct it, launch, monitor, etc.
 
 
===Time Acceleration===
 
The nice thing about Orbiter is the ability to make time go fast. You can land on the moon and be back in time for lunch. However, this causes an obvious problem in multiplayer. However, I think this could be resolved in some sort of way:
 
1) Confine most things to Earth and Moon. If someone has the time and patience to go to Mars, no one is stopping them, but it would be a boring 7 months.
 
2) If someone would like to time accelerate, put in a "request", which would be sent to everyone on the server at the time. If there is one "decline", then the time acceleration would not go through, until everyone agreed. The "request" would state the degree(10x, 100000x) and time (5 seconds, 10 seconds) of the acceleration.
 
3) "Off-line" people would be affected by this acceleration, but they could not vote. They would be subject to the needs of everyone else
 
3.1) This poses a problem. Lets say someone is going to the moon, and they log off. The next day they log on to find out they already passed the moon because of an un-natural amount of time acceleration by other players. I think people would learn that this is a necessary evil of time acceleration
 
4) Abuse of the system: Yes, people could abuse it, but that's what fair moderators are for
 
  
 
==See also==
 
==See also==
  
 
[[:Category:Multiplayer addons]]
 
[[:Category:Multiplayer addons]]

Revision as of 10:19, 22 November 2009

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.

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

  • 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

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

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

  • 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, however as of April 2007, this development has been made private and the system is not available for public download.
  • 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.

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

See also

Category:Multiplayer addons