Howto:Multiplayer: Difference between revisions

Jump to navigation Jump to search
Moving sections around to a more logical order, i.e. moving Getting online to the top and the server list to the bottom
(Moving sections around to a more logical order, i.e. moving Getting online to the top and the server list to the bottom)
Line 2: Line 2:


Multiplay may cause extreme [[Howto: Improve Framerates|framerate drops]] during loading of aircraft models. Especially heavy models can cause severe lag. Therefore, it is suggested to fly in locations other than San Francisco's [[KSFO]], where there are fewer pilots flying around.
Multiplay may cause extreme [[Howto: Improve Framerates|framerate drops]] during loading of aircraft models. Especially heavy models can cause severe lag. Therefore, it is suggested to fly in locations other than San Francisco's [[KSFO]], where there are fewer pilots flying around.
== Getting online ==
As of FlightGear 2.4.0, multiplayer settings can be accessed via the in-sime Multiplayer menu. This is by far the easiest way to get online, but in some cases the methods mentioned below may be prefered.
=== Using the Windows launcher / FGRun ===
[[File:Multiplayer.jpg|thumb|300px|Multiplayer options in [[FlightGear Wizard|FG Launcher]]]]
# Select your [[aircraft]] and starting airport as normal in [[FlightGear Launch Control|FGRun]].
# On the next screen, tick the "Multiplayer" box. Also tick the "AI models" box or you will not be able to see the other pilots' aircraft.
#* '''Callsign:''' of your choice. Check [http://fgfs.i-net.hu/modules/fgtracker/ this page] to see whether it is already in use or not. Do not pick a callsign that is already used!
#* '''Hostname:''' enter <tt>mpserverXX.flightgear.org</tt> (with <tt>XX</tt> being the [[#Servers|server number]]).
#* '''In/Out:''' set both ports to 5000.
# Click run and you'll soon be flying with other pilots!
To confirm that it's working, you can go to the multiplayer map at; http://mpmap02.flightgear.org/ (in Hong Kong). Once FlightGear has started, you will notice chat messages that say "Hello" indicating pilots that are online and then as they join (you can change this message by editing the <tt><chat type="string">Hello</chat></tt> line in <tt>[[$FG ROOT]]/preferences.xml</tt>). You may wish to use a different server (i.e. "Hostname" entry).
For more advanced settings, the <tt>Advanced > Network</tt> tab can be opened. You are able to remove the in or out lines only through this method for example.
=== Using fgfs from the command line ===
First, for those who are very impatient and have a vague idea about what they're doing, the basic arguments to pass to fgfs for multiplayer are these;
--multiplay=out,10,server.ip.address,5000
--callsign=anything
where 5000 is the port number the server is listening on (which is 5000 for the official servers).
If you for some reason need to specify which local port and/or interface FlightGear should use add the following argument:
--multiplay=in,10,your.ip.address,portnumber
where portnumber is usually 5000 and your.ip.address is the ip address of the network interface being used by FG to connect to the server - even if that's a local 192.168 type address. You can also leave your.ip.address blank. FlightGear will then listen on all network interfaces:
--multiplay=in,10,,5000
''If you are using fgrun, please note that fgrun expects you to enter a valid (non-loopback, i.e. not 127.0.0.1) IP address or hostname for the local network interface.''
Check [http://fgfs.i-net.hu/modules/fgtracker/ this page] to see whether your callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems!
==== Now, going more slowly for those who are completely lost... ====
Try the above first, and if it doesn't work, read on.
First of all, you need to know the IP address of the network interface you'll be using for multiplayer FG. If your Internet connection is via an ADSL modem that plugs directly into your computer with a USB connection, you should be able to find your IP address by visiting http://www.whatismyip.com . Please note that your ISP might not give you the same IP address each time - if MP stops working, check this first.
Otherwise, your connection is likely via some kind of router that connects to your computer via an RJ-45, or "Ethernet" connector (similar shape to most Western telephone plugs), or by a wireless link. You need to find the IP address of that network interface.
* Under '''Linux''', this can be found by logging in as root and typing "ifconfig". You may find more than one interface listed, beginning with "lo" - ignore that one. You should have something like "eth0" or "wlan0" also listed - look through this block of text for "inet addr". This will be followed directly by the number you're looking for, e.g. "inet addr:192.168.0.150"
* Under '''Windows XP or later''', click start, run, and type "cmd". In the terminal window which appears, type "ipconfig" This should show you your IP address - write it down.
* With '''Windows 98''', click start, run, and type "winipcfg" to get information about your IP address.
This section _ought_ to be unnecessary now with recent versions of the FG server. If you have problems though, it won't hurt to follow through.
Now, all (!) that remains is to configure your router to forward UDP port 5000 to the IP address you've just found. This is not something that can be described in step-by-step detail, because each manufacturer's configuration interfaces differ greatly. Some tips are given here - if you get stuck, ask nicely on the [[FlightGear IRC channel]] for help (details on the flightgear website).
You should know how to log on to your router's configuration page, usually via a web browser. You are looking for settings pertaining to "port forwarding" "virtual server" "Forwarding Rules" or similar. When you have found the relevant settings, you need to add a rule that forwards port 5000 to the IP address you discovered earlier. If there is a choice given, ensure it is UDP ports that are forwarded. If there is no choice, you may assume that both TCP and UDP are being forwarded. Save your configuration, and most routers will probably then need to be rebooted to apply the changes.
Note: (for BSD users) If you are using a ADSL modem, you might have to put the port forward command into the ppp.conf file rather than firewall. This is because the firewall script will only run each time the machine is booted rather than the ppp line coming back online.
Finally, start FG using the command line given right at the start (if you're using the windows launcher you will find entry boxes for Multiplayer arguments - insert the relevant details there). You will end up with something like this;
fgfs --callsign=test --multiplay=in,10,192.168.0.2,5000 --multiplay=out,10,mpserver05.flightgear.org,5000 \
--airport=KSFO --runway=28R --aircraft=hunter
Choose your own callsign - this is currently limited to seven characters. Check [http://fgfs.i-net.hu/modules/fgtracker/ this page] to see whether your callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems!
Once you have started FG, you should, if others are flying, see messages in the terminal from which FG was started, similar to the following;
Initialising john51a using 'Aircraft/ufo/Models/ufo.xml' 
FGMultiplayRxMgr::ProcessRxData - Add new player. IP: 10.0.0.36, 
Call: john51a,model: Aircraft/ufo/Models/ufo.xml
You MUST give your local, behind-the-router IP address for MultiPlayer to work. Trust me on this one!
You should check that your firewall is not causing problems - either turn it off _temporarily_ or add an exception to allow incoming connections on port 5000.
If it's still just not working for you, ask nicely on the [[FlightGear IRC channel]] and someone should be able to assist.
== Multiplayer chat ==
{{Main article|Chat Menu}}
To chat with other pilots, go to the "Network" menu and select "Chat" or "Chat Menu" at the bottom of the menu. Note that the other pilots may not have their chat box open nor chat messages enabled, so they may not see your messages.
The shortcut for chatting is "_" (underscore) and it brings up a small window where you can type. By default, other people's messages are displayed at the top of Flightgear's window for a few seconds, but it will appear for a much longer time in the window at <tt>Network > Chat</tt>. So if you think you have missed anything, go check there.
'''NOTE:''' Multiplayer chat is not supported by FlightGear 0.9.10 or older.
== Coping with abusive behaviour ==
Should you become victim of abusive or annoying behaviour by any pilot you have option to ignore him or her. To activate the ignore function open the Multiplayer > Pilot list dialog and click the ignore button next to the pilot's call sign. As of FlightGear 2.0.0 this will prevent chat messages from the ignored pilot from appearing and in FlightGear 2.4.0 and later it will additionally prevent his aircraft from appearing.
== Multiplayer map ==
[[File:MP_Server.jpg|thumb|300px|[[MPMap]] screenshot]]
{{Main article|MPMap}}
There is a very nice online map which displays the location of online pilots at [http://mpmap01.flightgear.org mpmap01] and/or [http://mpmap02.flightgear.org mpmap02]. You will also find this useful to check that you are successfully connecting to the server.
== Multiple connections per computer ==
It is possible to run multiple FlightGear instances on a single computer and connect them all to the multiplayer network. However, this requires some extras to keep in mind:
* both instances use the same out-port.
* one instance uses in port=5001, the other port 5002.
* and of course should both instances have unique callsigns.


== Servers ==
== Servers ==
Line 166: Line 264:


If you are interested in hosting your own multiplayer server, you may want to check out [[Howto: Set up a multiplayer server]].
If you are interested in hosting your own multiplayer server, you may want to check out [[Howto: Set up a multiplayer server]].
=== Multiplayer map ===
[[File:MP_Server.jpg|thumb|300px|[[MPMap]] screenshot]]
{{Main article|MPMap}}
There is a very nice online map which displays the location of online pilots at [http://mpmap01.flightgear.org mpmap01] and/or [http://mpmap02.flightgear.org mpmap02]. You will also find this useful to check that you are successfully connecting to the server.
== Getting online ==
As of FlightGear 2.4.0, multiplayer settings can be accessed via the in-sime Multiplayer menu. This is by far the easiest way to get online, but in some cases the methods mentioned below may be prefered.
=== Using the Windows launcher / FGRun ===
[[File:Multiplayer.jpg|thumb|300px|Multiplayer options in [[FlightGear Wizard|FG Launcher]]]]
# Select your [[aircraft]] and starting airport as normal in [[FlightGear Launch Control|FGRun]].
# On the next screen, tick the "Multiplayer" box. Also tick the "AI models" box or you will not be able to see the other pilots' aircraft.
#* '''Callsign:''' of your choice. Check [http://fgfs.i-net.hu/modules/fgtracker/ this page] to see whether it is already in use or not. Do not pick a callsign that is already used!
#* '''Hostname:''' enter <tt>mpserverXX.flightgear.org</tt> (with <tt>XX</tt> being the [[#Servers|server number]]).
#* '''In/Out:''' set both ports to 5000.
# Click run and you'll soon be flying with other pilots!
To confirm that it's working, you can go to the multiplayer map at; http://mpmap02.flightgear.org/ (in Hong Kong). Once FlightGear has started, you will notice chat messages that say "Hello" indicating pilots that are online and then as they join (you can change this message by editing the <tt><chat type="string">Hello</chat></tt> line in <tt>[[$FG ROOT]]/preferences.xml</tt>). You may wish to use a different server (i.e. "Hostname" entry).
For more advanced settings, the <tt>Advanced > Network</tt> tab can be opened. You are able to remove the in or out lines only through this method for example.
=== Using fgfs from the command line ===
First, for those who are very impatient and have a vague idea about what they're doing, the basic arguments to pass to fgfs for multiplayer are these;
--multiplay=out,10,server.ip.address,5000
--callsign=anything
where 5000 is the port number the server is listening on (which is 5000 for the official servers).
If you for some reason need to specify which local port and/or interface FlightGear should use add the following argument:
--multiplay=in,10,your.ip.address,portnumber
where portnumber is usually 5000 and your.ip.address is the ip address of the network interface being used by FG to connect to the server - even if that's a local 192.168 type address. You can also leave your.ip.address blank. FlightGear will then listen on all network interfaces:
--multiplay=in,10,,5000
''If you are using fgrun, please note that fgrun expects you to enter a valid (non-loopback, i.e. not 127.0.0.1) IP address or hostname for the local network interface.''
Check [http://fgfs.i-net.hu/modules/fgtracker/ this page] to see whether your callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems!
==== Now, going more slowly for those who are completely lost... ====
Try the above first, and if it doesn't work, read on.
First of all, you need to know the IP address of the network interface you'll be using for multiplayer FG. If your Internet connection is via an ADSL modem that plugs directly into your computer with a USB connection, you should be able to find your IP address by visiting http://www.whatismyip.com . Please note that your ISP might not give you the same IP address each time - if MP stops working, check this first.
Otherwise, your connection is likely via some kind of router that connects to your computer via an RJ-45, or "Ethernet" connector (similar shape to most Western telephone plugs), or by a wireless link. You need to find the IP address of that network interface.
* Under '''Linux''', this can be found by logging in as root and typing "ifconfig". You may find more than one interface listed, beginning with "lo" - ignore that one. You should have something like "eth0" or "wlan0" also listed - look through this block of text for "inet addr". This will be followed directly by the number you're looking for, e.g. "inet addr:192.168.0.150"
* Under '''Windows XP or later''', click start, run, and type "cmd". In the terminal window which appears, type "ipconfig" This should show you your IP address - write it down.
* With '''Windows 98''', click start, run, and type "winipcfg" to get information about your IP address.
This section _ought_ to be unnecessary now with recent versions of the FG server. If you have problems though, it won't hurt to follow through.
Now, all (!) that remains is to configure your router to forward UDP port 5000 to the IP address you've just found. This is not something that can be described in step-by-step detail, because each manufacturer's configuration interfaces differ greatly. Some tips are given here - if you get stuck, ask nicely on the [[FlightGear IRC channel]] for help (details on the flightgear website).
You should know how to log on to your router's configuration page, usually via a web browser. You are looking for settings pertaining to "port forwarding" "virtual server" "Forwarding Rules" or similar. When you have found the relevant settings, you need to add a rule that forwards port 5000 to the IP address you discovered earlier. If there is a choice given, ensure it is UDP ports that are forwarded. If there is no choice, you may assume that both TCP and UDP are being forwarded. Save your configuration, and most routers will probably then need to be rebooted to apply the changes.
Note: (for BSD users) If you are using a ADSL modem, you might have to put the port forward command into the ppp.conf file rather than firewall. This is because the firewall script will only run each time the machine is booted rather than the ppp line coming back online.
Finally, start FG using the command line given right at the start (if you're using the windows launcher you will find entry boxes for Multiplayer arguments - insert the relevant details there). You will end up with something like this;
fgfs --callsign=test --multiplay=in,10,192.168.0.2,5000 --multiplay=out,10,mpserver05.flightgear.org,5000 \
--airport=KSFO --runway=28R --aircraft=hunter
Choose your own callsign - this is currently limited to seven characters. Check [http://fgfs.i-net.hu/modules/fgtracker/ this page] to see whether your callsign is already in use or not. Do not pick a callsign that is already used, as that will create problems!
Once you have started FG, you should, if others are flying, see messages in the terminal from which FG was started, similar to the following;
Initialising john51a using 'Aircraft/ufo/Models/ufo.xml' 
FGMultiplayRxMgr::ProcessRxData - Add new player. IP: 10.0.0.36, 
Call: john51a,model: Aircraft/ufo/Models/ufo.xml
You MUST give your local, behind-the-router IP address for MultiPlayer to work. Trust me on this one!
You should check that your firewall is not causing problems - either turn it off _temporarily_ or add an exception to allow incoming connections on port 5000.
If it's still just not working for you, ask nicely on the [[FlightGear IRC channel]] and someone should be able to assist.
== Multiple connections per computer ==
It is possible to run multiple FlightGear instances on a single computer and connect them all to the multiplayer network. However, this requires some extras to keep in mind:
* both instances use the same out-port.
* one instance uses in port=5001, the other port 5002.
* and of course should both instances have unique callsigns.
== Multiplayer chat ==
{{Main article|Chat Menu}}
To chat with other pilots, go to the "Network" menu and select "Chat" or "Chat Menu" at the bottom of the menu. Note that the other pilots may not have their chat box open nor chat messages enabled, so they may not see your messages.
The shortcut for chatting is "_" (underscore) and it brings up a small window where you can type. By default, other people's messages are displayed at the top of Flightgear's window for a few seconds, but it will appear for a much longer time in the window at <tt>Network > Chat</tt>. So if you think you have missed anything, go check there.
'''NOTE:''' Multiplayer chat is not supported by FlightGear 0.9.10 or older.
== Coping with abusive behaviour ==
Should you become victim of abusive or annoying behaviour by any pilot you have option to ignore him or her. To activate the ignore function open the Multiplayer > Pilot list dialog and click the ignore button next to the pilot's call sign. As of FlightGear 2.0.0 this will prevent chat messages from the ignored pilot from appearing and in FlightGear 2.4.0 and later it will additionally prevent his aircraft from appearing.


== Related content ==
== Related content ==

Navigation menu