Difference between revisions of "MG/FAQ"

From MegaGlest
Jump to navigation Jump to search
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<!--
+
Some of [[MegaGlest|MegaGlest's]] most answered questions can be solved easily, and to solve problems quickly, it is recommended to read some of the frequently asked questions (FAQ) for resolutions.
Omega: Please let's discuss on IRC, the forums or by e-mail before you re-add such tags to MegaGlest related content. Thank you. -TomReyn
+
 
{{Issues|Needs neutral point of view, too long and should be split into sub articles, needs local links, and wikification.}}
+
==Installation==
-->
+
===How do I run the installer on Linux?===
==Frequently asked questions on MegaGlest==
+
Open a terminal window, then use the ''pwd'' command to determine the directory you are currently in, and the ''cd'' command to change into the directory you have stored the MegaGlest installer in. To verify that you are in the correct directory, you can use the ''ls'' command.
===Installation===
 
====On Linux, how do I run the installer?====
 
'''Answer:''' Open a terminal window, then use the ''pwd'' command to determine the directory you are currently in, and the ''cd'' command to change into the directory you have stored the MegaGlest installer in. To verify that you are in the correct directory, you can use the ''ls'' command.
 
  
 
For example:
 
For example:
Line 23: Line 20:
 
   
 
   
 
  tux@computer:~/Downloads$
 
  tux@computer:~/Downloads$
The installer package is called ''MegaGlest-Installer-3.3.7.2_i386_64_linux'' in this example (it may be called differently in your case), and it is located in the ''Downloads'' directory (it may be in another location, such as in ~/Desktop in your case).
+
 
 +
The installer package is called ''MegaGlest-Installer-3.3.7.2_i386_64_linux'' in this example (it may be called differently in your case), and it is located in the ''Downloads'' directory (it may be in another location, such as in ~/Desktop).
  
 
Now make the installer executable, then run it:
 
Now make the installer executable, then run it:
 +
 
  tux@computer:~/Downloads$ chmod +x MegaGlest-Installer-3.3.7.2_i386_64_linux
 
  tux@computer:~/Downloads$ chmod +x MegaGlest-Installer-3.3.7.2_i386_64_linux
 
   
 
   
 
  tux@computer:~/Downloads$ ./MegaGlest-Installer-3.3.7.2_i386_64_linux
 
  tux@computer:~/Downloads$ ./MegaGlest-Installer-3.3.7.2_i386_64_linux
 +
 
Once you execute this command, you should get to see the graphical installer, displaying the MegaGlest license. You can now follow the graphical installer to install the game into your home directory or a location of your choice (within the boundaries of where your Linux user may write to, so probably anywhere below your home directory only).
 
Once you execute this command, you should get to see the graphical installer, displaying the MegaGlest license. You can now follow the graphical installer to install the game into your home directory or a location of your choice (within the boundaries of where your Linux user may write to, so probably anywhere below your home directory only).
====On Linux, I get "permission denied" while installing====
 
  
 +
===I get "permission denied" while installing on Linux===
 
If, after spawning the installer as described above, you do not get to see the installer window but get an error about "permission denied", this is either because you had a typo in the ''chmod'' command (review the Linux installation instructions) or because you may not execute commands in the current directory, i.e. the entire file system you are currently working on has the 'no execute bit' set. You can work around this until the next reboot using the following command:
 
If, after spawning the installer as described above, you do not get to see the installer window but get an error about "permission denied", this is either because you had a typo in the ''chmod'' command (review the Linux installation instructions) or because you may not execute commands in the current directory, i.e. the entire file system you are currently working on has the 'no execute bit' set. You can work around this until the next reboot using the following command:
  
 
  tux@computer:~/Downloads$ sudo mount -o remount,exec /home/
 
  tux@computer:~/Downloads$ sudo mount -o remount,exec /home/
  
...assuming that /home is the mount point of the file system you are currently working in.
+
This assumes that ''/home'' is the mount point of the file system you are currently working in.
 
 
====On Linux, I get "wrong executable/binary/ELF format" while installing====
 
  
 +
===I get "wrong executable/binary/ELF format" while installing on Linux===
 
After spawning the installer as described above, you may not get to see the installer window but get an error about 'wrong executable/binary/ELF format'. If you run into this then you seem to have downloaded an installer package which does not match your system architecture, i.e. you have probably downloaded a 64 bit installer but have a 32 bit system. You can use the ''arch'' and ''uname -m'' commands to check which operating system architecture you are using.
 
After spawning the installer as described above, you may not get to see the installer window but get an error about 'wrong executable/binary/ELF format'. If you run into this then you seem to have downloaded an installer package which does not match your system architecture, i.e. you have probably downloaded a 64 bit installer but have a 32 bit system. You can use the ''arch'' and ''uname -m'' commands to check which operating system architecture you are using.
  
====On Linux, how do I install into my home directory or bypassing the installer?====
+
===How do I install into my home directory or bypassing the installer on Linux?===
 +
The Linux installer always installs into your home directory, not system-wide. But if you don't like to rely on the installer to set things up for you then you're welcome to do your own installation instead. Here's how:
  
'''Answer:''' The Linux installer always installs into your home directory, not system-wide. But if you don't like to rely on the installer to set things up for you then you're welcome to do your own installation instead. Here's how:
+
You'll want to ensure you have 7-zip installed so that you can unpack the data package. On Debian and its derivates (Ubuntu etc.) you can use:
  
You'll want to ensure you have 7-zip installed so that you can unpack the data package. On Debian and its derivates (Ubuntu etc.) you can use:
 
 
  sudo apt-get update && sudo apt-get install p7zip-full
 
  sudo apt-get update && sudo apt-get install p7zip-full
  
 
Then create a new directory the game will be placed in (for MegaGlest version 3.3.7.2 in this example):
 
Then create a new directory the game will be placed in (for MegaGlest version 3.3.7.2 in this example):
 +
 
  cd
 
  cd
 
  mkdir megaglest-3.3.7.2
 
  mkdir megaglest-3.3.7.2
Line 65: Line 65:
 
  tar xjvf megaglest3.3.7.2_i386_64_linux_bin.tar.bz2
 
  tar xjvf megaglest3.3.7.2_i386_64_linux_bin.tar.bz2
  
...and play!
+
And play with:
  
 
  ./glest
 
  ./glest
Line 74: Line 74:
 
  ./glest
 
  ./glest
  
You can, of course, also create a shortcut on your favourite window manager so that you just need to point and click to start the game in the future (and need not play around in a terminal window anymore).
+
You can, of course, also create a shortcut on your favorite window manager so that you just need to point and click to start the game in the future, thus eliminating the necessity of using the terminal window each time.
  
===Graphics issues===
+
==Graphics issues==
 +
===I get an error stating MegaGlest needs an OpenGL version of at least 1.3 to work===
 +
You likely need either updated video drivers or your video card. It could also be that your hardware is just too old or you bought hardware which is badly supported on your operating system by its manufacturer. But don't give up just yet, read the [[#Where can I get newer video drivers?]] section below.
  
====I get an error stating MegaGlest needs an OpenGL version of at least 1.3 to work - what does this mean?====
+
===Where can I get newer video drivers?===
'''Answer:''' You likely need either updated video drivers or your video card. It could also be that your hardware is just too old or you bought hardware which is badly supported on your operating system by its manufacturer (hint: buy something else next time!). But don't give up just yet, read the ''Where can I get newer video drivers?'' section below.
+
This depends much on your operating system:
  
====Where can I get newer video drivers?====
+
====Linux====
This depends much on your operating system.
+
You should first check whether their distribution provides "backported" drivers for their graphics card and if so, try them. For example, if you run Ubuntu, take a look at the [https://launchpad.net/%7Exorg-edgers/+archive/drivers-only 'drivers-only' section of the xorg-edgers PPA] (or even the complete [https://launchpad.net/~xorg-edgers/+archive/ppa X Updates PPA] - but this is for people who really know what they are doing and don't mind sitting there with broken drivers and no X GUI). Be aware, none of these are fully supported - do read the instructions on these pages. Another option is to install a vendors binary driver. Those are often available through your Linux distributions' package repositories, too, and are often in better shape than those you could download from your vendors website. In case of Ubuntu, have a look at their [https://help.ubuntu.com/community/BinaryDriverHowto Binary Driver How-to].
====='''Linux'''=====
 
  
You should first check whether their distribution provides 'backported' drivers for their graphics card and if so, try them. For example, if you run Ubuntu, take a look at the [https://launchpad.net/%7Exorg-edgers/+archive/drivers-only 'drivers-only' section of the xorg-edgers PPA] (or even the complete [https://launchpad.net/~xorg-edgers/+archive/ppa X Updates PPA] - but this is for people who really know what they are doing and don't mind sitting there with broken drivers and no X GUI). Be aware, none of these are fully supported - do read the instructions on these pages. Another option is to install a vendors binary driver. Those are often available through your Linux distributions' package repositories, too, and are often in better shape than those you could download from your vendors website. In case of Ubuntu, have a look at their [https://help.ubuntu.com/community/BinaryDriverHowto BinaryDriverHowto].
+
====Windows====
 +
Try to get the latest drivers available from your video card manufacturer. If you have a laptop, get them from your laptop manufacturer instead. If you have legacy hardware the drivers your hardware manufacturer provides have not had recent updates, you can try patched drivers. These are current vendor drivers which have been modified to work with older hardware as well as with laptops where the laptop manufacturer fails to provide driver updates (but the original video card drivers refuse to be installed) and to introduce additional features. For example, patched ATI drivers for [[http://donotargue.com/?cat=4|current hardware]] and for [[http://donotargue.com/?cat=468|legacy hardware]] are available. Note that these are not official drivers, and are not guaranteed, nor does the Glest Wiki accept liability for problems that may occur.
  
====='''Windows'''=====
+
===My Frames Per Second (FPS) are horrible, what can I do?===
 +
If you are a Linux user turn off Compiz, as It can drop FPS for 3D games from 500FPS to 70FPS. Also disable sync to vblank:
  
Try to get the latest drivers available from your video card manufacturer. If you have a laptop, get them from your laptop manufacturer instead. If you have legacy hardware the drivers your hardware manufacturer provides have not had recent updates, you can try patched drivers. These are current vendor drivers which have been modified to work with older hardware as well as with laptops where the laptop manufacturer fails to provide driver updates (but the original video card drivers refuse to be installed) and to introduce additional features. For example, patched ATI drivers for [[http://donotargue.com/?cat=4|current hardware]] and for [[http://donotargue.com/?cat=468|legacy hardware]] are available. Note that these are not official drivers, and that nobody will guarantee you anything when using them (but then, many people use them and it usually works fine for them).
+
Otherwise try the following settings by adding or editing them in ''glestuser.ini''
  
 
====My Frames Per Second (FPS) are horrible, what can i do?====
 
'''Answer:''' If you are a Linux user TURN OFF Compiz, as It can drop FPS for 3D games from 500FPS to 70FPS! Also disable synch to vblank:
 
 
Otherwise try the following settings by adding or editing them in glestuser.ini
 
 
  AutoMaxFullScreen=false
 
  AutoMaxFullScreen=false
 
  CheckGlCaps=true
 
  CheckGlCaps=true
Line 113: Line 111:
 
  UnitParticles=false
 
  UnitParticles=false
  
You may (on Linux) also try running these commands from your mega-glest root folder (then retry running MegaGlest):
+
===My mouse seems to move sluggish, too slow or too fast===
mkdir lib_bkp
+
This could be for many reasons. (see [http://www.libsdl.org/faq.php?action=listentries&category=3#28 references to DGAMOUSE on libsdl.org]). Alternately, you may press / in the game to switch the mouse-pointer. For a permanent change edit ''glestuser.ini'' and add this entry (or change it if it already exists but is currently set to "false" or "0"):
mv lib/* lib_bkp/
 
cp lib_bkp/libcurl* lib/
 
cp lib_bkp/libgnu* lib/
 
cp lib_bkp/libicu* lib/
 
cp lib_bkp/liblua* lib/
 
cp lib_bkp/libxerces* lib/
 
  
====My mouse seems to move sluggish, too slow or too fast====
 
'''Answer:''' This could be for many reasons. (see [http://www.libsdl.org/faq.php?action=listentries&category=3#28 references to DGAMOUSE on libsdl.org]). Alternately, you may press / in the game to switch the mouse-pointer. For a permantent change edit glestuser.ini and add this entry (or change it if it already exists but is currently set to 'false' or '0'):
 
 
  No2DMouseRendering=true
 
  No2DMouseRendering=true
  
===Network gaming===
+
==Network gaming==
 +
===How can I host a MegaGlest game?===
 +
Most domestic Internet connections are setup (for security reasons) to require port forwarding to make a service, such as MegaGlest, available on the Internet. Port forwarding is usually configured on your Internet router/modem/access device. How to do this is explained on the [[MG/Port Forwarding|Port Forwarding page]].
  
====How can I host a MegaGlest game?====
+
===What network ports must be open for network play? How do I configure my firewall?===
'''Answer:'' '''''Most domestic Internet connections are setup (for security reasons) to require port forwarding to make a service, such as MegaGlest, available on the Internet. Port forwarding is usually configured on your Internet router/modem/access device. How to do this is explained on [[MG/Port Forwarding|a separate web page]].
 
 
 
====What network ports must be open for network play? How do I configure my firewall?====
 
 
The network game interface window displays the actual port number used by MegaGlest. The default port number is specified in glest.ini:
 
The network game interface window displays the actual port number used by MegaGlest. The default port number is specified in glest.ini:
ServerPort=61357
 
If you need to change it, do it by adding the same setting to glestuser.ini but customize the port number as needed. If a user who will be hosting a game changes this port number, then all users wanting to join this server must also change their port numbers. TCP is used for all game communication. In a LAN setup the server will use UDP to broadcast to clients on the same network that it is waiting for clients to connect.
 
  
Since v3.3.5 it is possible to seperate the 'External' port from the 'Internal' port. The 'External' port is the port exposed to the outside world (Internet) and is usually the entry point into your network via a router. This 'External' port is the port that other users will see, and require to connect into your network. When you create a network game by selecting a 'Network' slot in the custom game menu you will see the 'External Port #' option at the top of the screen. By default we use TCP port 61357 but users may pick from a list of various port numbers (the one you pick must be setup on your router / firewall to 'Port Forward' incoming connections from the Internet to your computer). This list of External Port numbers is configurable as a property in glestuser.ini, e.g.:
 
MasterServerExternalPortList=61357,80,143,587,21,110,25,443,993,995
 
The 'Internal' Port is the port that Mega-Glest itself will listen on for connections. This Internal Port # is set via a property in glestuser.ini (overwriting the default value contained in glest.ini):
 
 
  ServerPort=61357
 
  ServerPort=61357
For LAN Games clients will look for servers using this port #. For Internet Games, Clients will ask the Master Server for the 'External Port' sent to it by a Mega-Glest User who will be hosting a Game.
 
  
Users should therefore configure their router / firewall to 'Port Forward' The External Port they will use in the Custom Game Menu (default is 61357) to their Internal Port (configured in glest.ini or glestusers.ini, default is 61357).
+
If you need to change it, do it by adding the same setting to ''glestuser.ini'' but customize the port number as needed. If a user who will be hosting a game changes this port number, then all users wanting to join this server must also change their port numbers. TCP is used for all game communication. In a LAN setup the server will use UDP to broadcast to clients on the same network that it is waiting for clients to connect.
  
====How much network bandwidth does MegaGlest require?====
+
Since v3.3.5 it is possible to separate the 'External' port from the 'Internal' port. The 'External' port is the port exposed to the outside world (Internet) and is usually the entry point into your network via a router. This 'External' port is the port that other users will see, and require to connect into your network. When you create a network game by selecting a 'Network' slot in the custom game menu you will see the 'External Port #' option at the top of the screen. By default we use TCP port 61357 but users may pick from a list of various port numbers (the one you pick must be setup on your router / firewall to 'Port Forward' incoming connections from the Internet to your computer). This list of External Port numbers is configurable as a property in ''glestuser.ini'', eg:
Each players' connection to the game server consumes up to 20 kilobit per second (Kbps), with an average more around 10 Kbps. So as a client, you should never need more than 20 Kbps. To host games, you will need 20 Kbps x ( number of players - 1 ), so if you play a game with eight players (or observers, this should not change things much), this will amount to a maximum of ~140 Kbps. However, keep in mind that if you use an internet access method where upload and download bandwidth are split up asymmetrically (such as ADSL) then keep in mind that if you need to transfer data into both in- and outbound directions simultaniously - as is the case for MegaGlest-, this effectively decreases the bandwidth you can get through the line in the direction which provides the smaller bandwidth. Realisticaly, this means that to play a 8 player game on an ADSL line, you may need a line which is marketed as providing 250 Kbps upstream.
 
  
====Do I need good ping? Do I need to stop my downloads to play?====
+
MasterServerExternalPortList=61357,80,143,587,21,110,25,443,993,995
You may have heard that some computer games, especially real time games, require "good ping", or, in technical terms, require you to have a low latency network link. While this is usually affects first person shooters mostly, it also affects MegaGlest.
 
  
In most cases all wired Internet access methods will be fine to play MegaGlest. However, cable Internet can be problematic during times when many people in your neighbourhood are using their internet access simultaniously. This can also, though more rarely, be the case for ADSL lines.
+
The 'Internal' Port is the port that Mega-Glest itself will listen on for connections. This Internal Port # is set via a property in ''glestuser.ini'' (overwriting the default value contained in ''glest.ini''):
  
Internet connections which are partially using aired connections, such as Wireless LAN (WLAN), WiFi, Wimax, HSCSD (HSDPA/HSUPA),UMTS, EDGE, GPRS and satellite links can be problematic because they often come with high latecies or even packet loss. While people who are limited to using such connections have successfully played MegaGlest matches, bearing latencies of up to 250 ms (milli seconds, so 0.25 seconds), such links are not really very stable and reliable, and we therefore recommend against using them - if you have a choice. WLANs can be super comfortable, but for applications or games like MegaGlest which require low latency connections plugging in an ethernet wire to your router is really a good idea.
+
ServerPort=61357
  
Depending on the type of your Internet link, and especially if you use a DSL connection or a connection which already bears hgh latency with little data flow, you should also consider stopping or at least limiting your downloads while you play, since this will not only eat bandwith but, especially on DSL lines, also increase your latency remarkably.
+
For LAN Games clients will look for servers using this port number. For Internet Games, Clients will ask the Master Server for the 'External Port' sent to it by a Mega-Glest User who will be hosting a Game.
  
====Why is the list of game servers mostly empty?====
+
Users should therefore configure their router/firewall to "Port Forward" The External Port they will use in the Custom Game Menu (default is 61357) to their Internal Port (configured in ''glest.ini'' or ''glestusers.ini'', default is 61357).
'''Answer:''' There's several reasons to this:
 
* To date, MegaGlest games are only displayed on this list as long as players can join it. This means that currently running games are not listed, nor are servers listed which have all their network slots filled already. We are considering to change this behaviour to also list games which have already started, so that you can join this game as an observer.
 
* MegaGlest is pretty new (Glest is much older but didn't have this feature), so not so many people know this game, yet. You can change this! Tell your friends about it and host a game for them and for others.
 
* There is not currently a dedicated/headless game server version of MegaGlest, yet. As such, it's not currently possible to just install MegaGlest on an Internet server and have it host random or pre-programmed games automatically. This may change some day, too, but it involves quite a bit of engineering, so it can take a while to happen.
 
  
====Using Windows 7, I cannot connect to a server that is hosting a game on my LAN, help!====
+
===How much network bandwidth does MegaGlest require?===
 +
Each players' connection to the game server consumes up to 20 kilobits per second (Kbps), with an average more around 10 Kbps. So as a client, you should never need more than 20 Kbps. To host games, you will need 20 Kbps x ( number of players - 1 ), so if you play a game with eight players (or observers, this should not change things much), this will amount to a maximum of ~140 Kbps. However, keep in mind that if you use an internet access method where upload and download bandwidth are split up asymmetrically (such as ADSL) then keep in mind that if you need to transfer data into both in and outbound directions simultaneously — as is the case for MegaGlest — this effectively decreases the bandwidth you can get through the line in the direction which provides the smaller bandwidth. Realistically, this means that to play a 8 player game on an ADSL line, you may need a line which is marketed as providing 250 Kbps upstream.
  
'''Answer:''' This may be caused by the Windows Firewall be turned on for Private Networks. Disable the Windows firewall for private networks and you should be able to click Find games to find a hosted server on your LAN.
+
===Do I need good ping? Do I need to stop my downloads to play?===
====Can I play MegaGlest with friends who run a different operating system?====
+
You may have heard that some computer games, especially real time games, require "good ping", or, in technical terms, require you to have a low latency network link. While this is usually affects first person shooters mostly, it also affects MegaGlest.
'''Answer:''' Yes, you can. To date, you can play cross-architecture on Linux (tested: Debian 5.0, Ubuntu 10.04, Fedora Core 13, OpenSuSE 11.3, Mandriva 2010) and Windows (tested: XP/7, both 32 and 64 bit), and there is experimental support for Mac OS X and FreeBSD.
 
  
===Advanced topics===
+
In most cases all wired Internet access methods will be fine to play MegaGlest. However, cable Internet can be problematic during times when many people in your neighborhood are using their internet access simultaneously. This can also, though more rarely, be the case for ADSL lines.
====Can games be saved and resumed later?====
 
'''Answer:''' MegaGlest does not currently support this feature. Please take a look at [http://glestae.sourceforge.net/ GAE] which does support this (but lacks some other features MegaGlest has).
 
  
====Which hotkeys are there and how do I redefine them?====
+
Internet connections which are partially using aired connections, such as Wireless LAN (WLAN), WiFi, Wimax, HSCSD (HSDPA/HSUPA),UMTS, EDGE, GPRS and satellite links can be problematic because they often come with high latencies or even packet loss. While people who are limited to using such connections have successfully played MegaGlest matches, bearing latencies of up to 250 ms (milliseconds, so 0.25 seconds), such links are not really very stable and reliable, and we therefore recommend against using them - if you have a choice. WLANs can be super comfortable, but for applications or games like MegaGlest which require low latency connections plugging in an Ethernet wire to your router is really a good idea.
'''Answer:''' Look at glestkeys.ini (you may override these defaults by making override changes to glestuserkeys.ini).
 
  
====What optional command line options exist?====
+
Depending on the type of your Internet link, and especially if you use a DSL connection or a connection which already bears hgh latency with little data flow, you should also consider stopping or at least limiting your downloads while you play, since this will not only eat bandwidth but, especially on DSL lines, also increase your latency remarkably.
'''Answer:''' There are several command line options to date and more will likely be added in the future.
 
  
An example for a command line option is:
+
===Why is the list of game servers mostly empty?===
--version
+
There's several reasons to this:
 +
*To date, MegaGlest games are only displayed on this list as long as players can join it. This means that currently running games are not listed, nor are servers listed which have all their network slots filled already. We are considering to change this behavior to also list games which have already started, so that you can join this game as an observer.
 +
*MegaGlest is pretty new (the original Glest is older, but does not have the ability to support a master server), so not many people know this game yet. Thus, during offtime, there is considerably less players available.
 +
*There is not currently a dedicated/headless game server version of MegaGlest, yet. As such, it's not currently possible to just install MegaGlest on an Internet server and have it host random or pre-programmed games automatically. This may change some day, too, but it involves quite a bit of engineering, so it can take a while to happen.
  
This command gives you the version of MegaGlest you have installed. To be able to execute this command you will need to open a command line windows/terminal window first. To do this on Windows, click 'Start'->'Run'/'Search'-> cmd.exe, then use the 'cd' command to change to the directory MegaGlest is installed in. You can then run the game with command line options:
+
===I cannot connect to a server that is hosting a game on my LAN on Windows===
C:\Code\megaglest\branches\release-3.3.5.1\data\glest_game>glest_game --version
+
This may be caused by the Windows Firewall be turned on for Private Networks. Disable the Windows firewall for private networks and you should be able to click "Find Games" to find a hosted server on your LAN.
v3.3.5.1-alpha3 built: Jul 19 2010 10:52:07 Compiled with VC++: 1500, STREFLOP enabled.
 
--opengl-info
 
  
 +
===Can I play MegaGlest with friends who run a different operating system?===
 +
Yes, you can. To date, you can play cross-architecture on Linux (tested: Debian 5.0, Ubuntu 10.04, Fedora Core 13, OpenSuSE 11.3, Mandriva 2010) and Windows (tested: XP/7, both 32 and 64 bit), and there is experimental support for Mac OS X and FreeBSD.
  
Another example:
+
==Advanced topics==
--opengl-info
+
===Can games be saved and resumed later?===
 +
MegaGlest does not currently support this feature, though the [[Glest Advanced Engine]] is able to save and load games.
  
gives you information on your video card driver:
+
===Which hotkeys are there and how do I redefine them?===
C:\Code\megaglest\branches\release-3.3.5.1\data\glest_game>glest_game --opengl-info
+
Look at ''glestkeys.ini'' (you may override these defaults by making override changes to ''glestuserkeys.ini'').
OpenGL Info:
 
    OpenGL Version: 2.1 Chromium 1.9
 
    OpenGL Renderer: 2.1 Chromium 1.9
 
    OpenGL Vendor: Humper
 
    OpenGL Max Lights: 8
 
    OpenGL Max Texture Size: 8192
 
    OpenGL Max Texture Units: 4
 
    OpenGL Modelview Stack: 32
 
    OpenGL Projection Stack: 4
 
  
Starting with 3.3.5.1 beta1 we will allow you to run with a special command line parameter to test your techtrees for known misconfigurations. Example (this time run on Linux) shown below:
+
===What optional command line options exist?===
 +
There are several command line options to date and more will likely be added in the future. To list the available command line options, use:
  
./glest.bin --validate-techtrees
 
...
 
Errors were detected:
 
=====================
 
The Unit [archer] in Faction [norsemen] has the command [hold_position]
 
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
 
...
 
Many more command line options exist. You can always use
 
 
  --help
 
  --help
to list them all.
 
  
====How can I install my own master server?====
+
An example for a command line option is:
  
'''Answer:''' First of all, please think about whether it actually makes sense to do so. The MegaGlest project provides a freely usable, well-connected default masterserver setup for the community to use for network games played over the Internet. As such, we can think of very few, if any, good reasons why anyone would want to setup their own masterserver. MegaGlest is still a young project and there are not that many players, yet. Setting up a new MegaGlest masterserver will just divide an already small community, so we think this is neither fun for you nor for anybody else.
+
--version
  
Nevertheless, in the virtue of free software, we want to make the master server source code available, too. Please understand, however, that we will not support your use of it beyond this FAQ entry unless you can provide convincing reasons why we should.
+
This command gives you the version of MegaGlest you have installed. To use command line options, use the command line (''cmd'' on Windows, the terminal on Linux, etc) to run the program with the command line option trailing it. A Windows example is:
  
The PHP / MySQL masterserver source code can be found in the subversion repository in the ''source/masterserver'' directory. The masterserver currently ''only'' facilitates clients and servers so that they may find one another, it ''does not'' create a dedicated server for network games. This means that users who 'host' a network game may choose to 'publish' their game to the masterserver where other users may 'join' published network games (thus connecting directly to the hosted server player).
+
"C:\Program Files (x86)\MegaGlest_3.3.7.2\glest_game.exe" -- version
  
If for some reason a person wanted to setup their own masterserver you require:
+
This assumes that the MegaGlest executable is located at ''"C:\Program Files (x86)\MegaGlest_3.3.7.2\glest_game.exe"''.
  
*a webserver that handles PHP (like Apache or IIS)
+
===How can I install my own master server?===
 +
First of all, please think about whether it actually makes sense to do so. The MegaGlest project provides a freely usable, well-connected default masterserver setup for the community to use for network games played over the Internet. As such, we can think of very few, if any, good reasons why anyone would want to setup their own masterserver. MegaGlest is still a young project and there are not that many players yet. Setting up a new MegaGlest masterserver will just divide an already small community, so we think this is neither fun for you nor for anybody else.
  
*a MySQL database.
+
Nevertheless, in the virtue of free software, the MegaGlest team wants to make the master server source code available, too. However, they will not support your use of it beyond this FAQ entry unless you can provide convincing reasons why they should.
To set things up, edit config.php and edit the database values to match your server.
 
#FTP all the files in the masterserver folder in SVN to your webserver
 
#Create a MySQL database and import the createDB.sql scheme to create the appropriate database tables (you can use phpmyadmin or something similar to do so).
 
#Ensure all clients that will use your masterserver have the correct root URL to point to your server. Have them modify this setting in glestuser.ini so that it points to your master server:
 
Masterserver=http://master.yourserver.org/masterserver/
 
  
====What configurable game settings are there?====
+
The PHP / MySQL masterserver source code can be found in the subversion repository in the ''source/masterserver'' directory. The masterserver currently ''only'' facilitates clients and servers so that they may find one another, it ''does not'' create a dedicated server for network games. This means that users who "host" a network game may choose to 'publish' their game to the masterserver where other users may 'join' published network games (thus connecting directly to the hosted server player).
  
'''Answer:''' There are two categories of game settings, a) 'visible' settings which can also be changed by options in the game itself and b) 'invisible' settings which are typcially intended to be changed by more knowledgable users who understand the consequences of changing them and can only be changed by editing the glestuser.ini configuration file in the main MegaGlest directory.
+
If for some reason a person wanted to setup their own masterserver you require:
  
 +
*a webserver that handles PHP (like Apache or IIS)
 +
*a MySQL database.
  
 +
To set things up, edit ''config.php'' and edit the database values to match your server.
 +
#FTP all the files in the masterserver folder in SVN to your webserver.
 +
#Create a MySQL database and import the ''createDB.sql'' scheme to create the appropriate database tables (you can use ''phpmyadmin'' or a similar program to do so).
 +
#Ensure all clients that will use your masterserver have the correct root URL to point to your server. Have them modify this setting in ''glestuser.ini'' so that it points to your master server:
  
'''a) Visible settings:'''
+
Masterserver=http://yoursite.com/
{| border="1" cellpadding="1" cellspacing="1" style="width: 700px;"
 
| style="font: inherit; color: inherit;" valign="top"|Property Name
 
| style="font: inherit; color: inherit;" valign="top"|Default Value
 
| style="font: inherit; color: inherit;" valign="top"|Description
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AutoMaxFullScreen
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When set to true this tells the game to set the video mode to the maximum fullscreen resolution (spanning all monitors)
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ColorBits
 
| style="font: inherit; color: inherit;" valign="top"|16
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DepthBits
 
| style="font: inherit; color: inherit;" valign="top"|16
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FactorySound
 
| style="font: inherit; color: inherit;" valign="top"|OpenAL
 
| style="font: inherit; color: inherit;" valign="top"|The sound API to use, for Windows this includes: DirectSound8, OpenAL or None, for all other platforms: OpenAL or None
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|Filter
 
| style="font: inherit; color: inherit;" valign="top"|Bilinear
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FilterMaxAnisotropy
 
| style="font: inherit; color: inherit;" valign="top"|1
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontSizeAdjustment
 
| style="font: inherit; color: inherit;" valign="top"|0
 
| style="font: inherit; color: inherit;" valign="top"|This makes font sizes larger (+) or smaller (-)
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|Lang
 
| style="font: inherit; color: inherit;" valign="top"|english
 
| style="font: inherit; color: inherit;" valign="top"|The default language to display game text
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|MaxLights
 
| style="font: inherit; color: inherit;" valign="top"|3
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|NetPlayerName
 
| style="font: inherit; color: inherit;" valign="top"|newbie
 
| style="font: inherit; color: inherit;" valign="top"|Your Player name for network games
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|RefreshFrequency
 
| style="font: inherit; color: inherit;" valign="top"|75
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ScreenHeight
 
| style="font: inherit; color: inherit;" valign="top"|768
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ScreenWidth
 
| style="font: inherit; color: inherit;" valign="top"|1024
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ServerIp
 
| style="font: inherit; color: inherit;" valign="top"|
 
| style="font: inherit; color: inherit;" valign="top"|This is the last Server IP Address that you connected to
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|Shadows
 
| style="font: inherit; color: inherit;" valign="top"|Projected
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|SoundVolumeAmbient
 
| style="font: inherit; color: inherit;" valign="top"|80
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|SoundVolumeFx
 
| style="font: inherit; color: inherit;" valign="top"|80
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|SoundVolumeMusic
 
| style="font: inherit; color: inherit;" valign="top"|90
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|StencilBits
 
| style="font: inherit; color: inherit;" valign="top"|0
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|Textures3D
 
| style="font: inherit; color: inherit;" valign="top"|1
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|UnitParticles
 
| style="font: inherit; color: inherit;" valign="top"|true
 
| style="font: inherit; color: inherit;" valign="top"|When set to true this enables special graphical eye-candy particles for Units that support them
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|Windowed
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When set to false the game runs fullscreen, otherwise it is a Window on your desktop
 
|}
 
 
 
 
 
 
 
'''b) Invisible settings:'''
 
{| border="1" cellpadding="1" cellspacing="1" style="width: 700px;"
 
| style="font: inherit; color: inherit;" valign="top"|Property Name
 
| style="font: inherit; color: inherit;" valign="top"|Default Value
 
| style="font: inherit; color: inherit;" valign="top"|Description
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AiLog
 
| style="font: inherit; color: inherit;" valign="top"|0
 
| style="font: inherit; color: inherit;" valign="top"|The log level when logging AI (CPU Player) activity
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AiRedir
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|Redirect AI activity to the conole
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AllowDownloadDataSynch
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|Do not use, untested download of network game content
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AllowAltEnterFullscreenToggle
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this allows players to press Alt-Enter to toggle between fullscreen and window mode
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AllowGameDataSynchCheck
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this will check map, tileset and techtree between client and server (for network games) to determine in the lobby if the xml's match or not and display the synch status in the lobby
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AnnouncementURL
 
| style="font: inherit; color: inherit;" valign="top"|http://master.megaglest.org/files/announcement.txt
 
| style="font: inherit; color: inherit;" valign="top"|Game related announcements are loaded from the given location and displayed next to the server list.
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|AutoTest
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|CheckGlCaps
 
| style="font: inherit; color: inherit;" valign="top"|true
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ConsoleMaxLines
 
| style="font: inherit; color: inherit;" valign="top"|7
 
| style="font: inherit; color: inherit;" valign="top"|The maximum # text lines to display in the game text console
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ConsoleMaxLinesStored
 
| style="font: inherit; color: inherit;" valign="top"|20
 
| style="font: inherit; color: inherit;" valign="top"|The maximum # text lines to store for recall in the text console
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ConsoleTimeout
 
| style="font: inherit; color: inherit;" valign="top"|20
 
| style="font: inherit; color: inherit;" valign="top"|# seconds before text disappears from the Text Console
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DayTime
 
| style="font: inherit; color: inherit;" valign="top"|1000
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugLogFile
 
| style="font: inherit; color: inherit;" valign="top"|debug.log
 
| style="font: inherit; color: inherit;" valign="top"|This is where normal game debug data will be logged
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugLogFileNetwork
 
| style="font: inherit; color: inherit;" valign="top"|
 
| style="font: inherit; color: inherit;" valign="top"|This is where network game debug data will be logged
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugLogFilePerformance
 
| style="font: inherit; color: inherit;" valign="top"|
 
| style="font: inherit; color: inherit;" valign="top"|This is where performance game debug data will be logged
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugLogFileWorldSynch
 
| style="font: inherit; color: inherit;" valign="top"|
 
| style="font: inherit; color: inherit;" valign="top"|This is where network world synch game debug data will be logged
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugMode
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables normal debug logging
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugNetwork
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables network debug logging
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugPerformance
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables performance debug logging
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DebugWorldSynch
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables network world synch debug logging
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|DEFAULT_HTTP_TIMEOUT
 
| style="font: inherit; color: inherit;" valign="top"|10
 
| style="font: inherit; color: inherit;" valign="top"|This is the # seconds before HTTP requests will timeout
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FactoryGraphics
 
| style="font: inherit; color: inherit;" valign="top"|OpenGL
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FastSpeedLoops
 
| style="font: inherit; color: inherit;" valign="top"|2
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FirstTime
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FocusArrows
 
| style="font: inherit; color: inherit;" valign="top"|true
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FogOfWarSmoothing
 
| style="font: inherit; color: inherit;" valign="top"|true
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FogOfWarSmoothingFrameSkip
 
| style="font: inherit; color: inherit;" valign="top"|3
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FONT_CHARCOUNT
 
| style="font: inherit; color: inherit;" valign="top"|256
 
| style="font: inherit; color: inherit;" valign="top"|This is the # characters expected for the selected font type
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FONT_TYPENAME
 
| style="font: inherit; color: inherit;" valign="top"|Times New Roman
 
| style="font: inherit; color: inherit;" valign="top"|This is the Font Type to use
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontConsoleBaseSize
 
| style="font: inherit; color: inherit;" valign="top"|18
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontConsolePostfix
 
| style="font: inherit; color: inherit;" valign="top"| -*-*-*-*-*-*-*
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontConsolePrefix
 
| style="font: inherit; color: inherit;" valign="top"| -*-helvetica-*-r-*-*-
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontDisplayBaseSize
 
| style="font: inherit; color: inherit;" valign="top"|12
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontDisplayPostfix
 
| style="font: inherit; color: inherit;" valign="top"| -*-*-*-*-*-*-*
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontDisplayPrefix
 
| style="font: inherit; color: inherit;" valign="top"| -*-helvetica-*-r-*-*-
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontDisplaySmallBaseSize
 
| style="font: inherit; color: inherit;" valign="top"|12
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuBigBaseSize
 
| style="font: inherit; color: inherit;" valign="top"|20
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuBigPostfix
 
| style="font: inherit; color: inherit;" valign="top"| -*-*-*-*-*-*-*
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuBigPrefix
 
| style="font: inherit; color: inherit;" valign="top"| -*-helvetica-*-r-*-*-
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuNormalBaseSize
 
| style="font: inherit; color: inherit;" valign="top"|14
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuNormalPostfix
 
| style="font: inherit; color: inherit;" valign="top"| -*-*-*-*-*-*-*
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuNormalPrefix
 
| style="font: inherit; color: inherit;" valign="top"| -*-helvetica-*-r-*-*-
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FontMenuVeryBigBaseSize
 
| style="font: inherit; color: inherit;" valign="top"|25
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|FullScreenAntiAliasing
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables OpenGL full screen anti-aliasing
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|HardwareAcceleration
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables OpenGL hardware acceleration
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|Masterserver
 
| style="font: inherit; color: inherit;" valign="top"|http://master.megaglest.org/
 
| style="font: inherit; color: inherit;" valign="top"|This is the master server location
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|MasterServerExternalPortList
 
| style="font: inherit; color: inherit;" valign="top"|
 
61357,61358,61359,61360,61000,
 
 
 
80,1080,8000,8080,443,21,22,25,
 
 
 
110,143,587,993,995
 
| style="font: inherit; color: inherit;" valign="top"|This is a comma seperated list of allowed External Network ports supported
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|MaxExploredCellsLookupItemCache
 
| style="font: inherit; color: inherit;" valign="top"|5000
 
| style="font: inherit; color: inherit;" valign="top"|This is the maximum cache size for cell explorered / visible lookup (0 disables)
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|MaxFrameCountLagAllowed
 
| style="font: inherit; color: inherit;" valign="top"|30
 
| style="font: inherit; color: inherit;" valign="top"|This is the maximum # of network frames that a client is allowed to fall behind before action is taken
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|MaxClientLagTimeAllowed
 
| style="font: inherit; color: inherit;" valign="top"|20
 
| style="font: inherit; color: inherit;" valign="top"|This is the maximum # seconds that a client is allowed to fall behind before action is taken
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|MaxUnitSelectCount
 
| style="font: inherit; color: inherit;" valign="top"|16
 
| style="font: inherit; color: inherit;" valign="top"|This is the maximum # of units that can be selected at one time
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|NetworkConsistencyChecks
 
| style="font: inherit; color: inherit;" valign="top"|true
 
| style="font: inherit; color: inherit;" valign="top"|When true this enforces client and server to have the same data for network games
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|NetworkFramePeriod
 
| style="font: inherit; color: inherit;" valign="top"|20
 
| style="font: inherit; color: inherit;" valign="top"|This is the # of frames that commands are sent out for network games
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|No2DMouseRendering
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this forces the use of ONLY the operating system mosue (no mouse rendering is done in game)
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|PhotoMode
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this disables things like the minimap so that nice screenshots can be taken
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|PlatformConsistencyChecks
 
| style="font: inherit; color: inherit;" valign="top"|true
 
| style="font: inherit; color: inherit;" valign="top"|When true it enforces the same version to be used for all platforms for network play
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ServerPort
 
| style="font: inherit; color: inherit;" valign="top"|61357
 
| style="font: inherit; color: inherit;" valign="top"|The port to use when hosting games
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ShadowAlpha
 
| style="font: inherit; color: inherit;" valign="top"|0.2
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ShadowFrameSkip
 
| style="font: inherit; color: inherit;" valign="top"|2
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ShadowTextureSize
 
| style="font: inherit; color: inherit;" valign="top"|512
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|SoundStaticBuffers
 
| style="font: inherit; color: inherit;" valign="top"|16
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|SoundStreamingBuffers
 
| style="font: inherit; color: inherit;" valign="top"|4
 
| style="font: inherit; color: inherit;" valign="top"|
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|ThreadedSoundStream
 
| style="font: inherit; color: inherit;" valign="top"|false
 
| style="font: inherit; color: inherit;" valign="top"|When true this enables sound handling in a seperate thread (offloading some of the work from main game processing)
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|UserData_Root
 
| style="font: inherit; color: inherit;" valign="top"|mydata/
 
| style="font: inherit; color: inherit;" valign="top"|This is the folder where user created maps, tilesets, techtrees, scenarios and tutorials are to be stored. This is the folder where user created content should go meaning game data that does not come with the Mega-Glest install packages. It is very important to keep user data seperate so that users making changes to their user data do not affect their ability to play network games with other players. Each time a network game is played a CRC check is done to ensure all players have the same data so that the game is fair and does not go "out of synch" with each other. User data should use UNIQUE naming and not use duplicate names that are already used in the main Maga-Glest folders. For example the main Mega-Glest folders contain a faction in the megapack techtree called tech. This same techtree and faction combination should NOT be reproduced in the mydata folder.
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|UserOverrideFile
 
| style="font: inherit; color: inherit;" valign="top"|
 
| style="font: inherit; color: inherit;" valign="top"|This optional parameter specifies the path and location of the glestuser.ini and glestuserkeys.ini files (if different than the default)
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|VersionURL
 
| style="font: inherit; color: inherit;" valign="top"|http://master.megaglest.org/files/versions/
 
| style="font: inherit; color: inherit;" valign="top"|Information regarding the currently run game version is loaded from the given location and displayed next to the server list
 
|-
 
| style="font: inherit; color: inherit;" valign="top"|WarnFrameCountLagPercent
 
| style="font: inherit; color: inherit;" valign="top"|0.65
 
| style="font: inherit; color: inherit;" valign="top"|This is the % of the maximum threshold of the above reached when a client is warned they are falling too far behind
 
|}
 
 
 
====How can I provide a new/updated translation?====
 
 
 
Some of the existing translation are not very well maintained and, so far, only a couple languages are supported. So it's great that you're interested in working on this.
 
 
 
Here's how it works:
 
There are several language files. These language files contain several lines which always take the same pattern:
 
keyword=translation string
 
vivid
 
 
 
These key words are referenced in the source code of the game. Depending on the language the user has chosen, when these keywords are met during execution of the game, the translation string which matches this keyword is taken from the language file and printed on screen.
 
 
 
Sometimes the core developers need to add or remove new translation strings to the language files. Whenever this happens, they update the english.lng file to make this work for english language. When they do, they either remove lines which are no longer referenced in the game (and thus no longer needed) or add new lines (for newly introduced texts) to english.lng. Sometimes, but not usually, they also add any newly added lines to the other translation files (but using the english language translation). So the reference file, the file all translations should check to make sure they contain the right keywords, is english.lng.
 
  
The latest version of english.lng is usually [http://megaglest.svn.sourceforge.net/viewvc/megaglest/trunk/data/glest_game/data/lang/english.lng?revision=HEAD the one in trunk]. There could theoretically be newer ones in (other) [http://megaglest.svn.sourceforge.net/viewvc/megaglest/branches/ branches] of the subversion source code repository but that's rather unlikely and if this should happen the core developers should be telling you (feel free to check, though).
+
===What configurable game settings are there?===
 +
:<small>See [[MG/INI]]</small>
  
Now to update an existing translation, you need get the latest copy of the existing translation file, which is usually [http://megaglest.svn.sourceforge.net/viewvc/megaglest/trunk/data/glest_game/data/lang/?revision=HEAD the one in trunk], too.
+
===How can I provide a new/updated translation?===
 +
:<small>See [[MG/Translations]]</small>
  
To update for example galego.lng, based on english.lng, you need to:
+
==See Also==
* Make sure you use a text editor which supports Unix style line endings (such as every editor on Linux does, and also [http://notepad-plus-plus.org/ Notepad++] on Windows (but not the original Ms Windows Notepad!)) and the ISO-8859-1 character encoding (we do not support UTF-8, yet :-/ )
+
*[[MegaGlest]]
* Remove any lines from galego.lng which contain keywords which are not contained in english.lng.
+
*[[Troubleshooting]]
* Add any lines to galego.lng which contain keywords which are contained in english.lng (but have not been contained in galego.lng so far).
 
* Replace the english translation strings by a galician translation. Try to use one which is not or just a little bit longer than the english string because the text will need to fit into a given place on screen.
 
* Save the file using ISO-8859-1 character encoding.
 
* Run the game with your new translation and see whether your new translations really make sense where they are used. It can easily happen that you add a translation which does not make sense in the given context. Also make sure that your translation really fits well on screen with the default font size. You may add "\n" to your translation strings to wrap the text across multiple lines (but make sure what this doesn't break the looks either).
 
* Make a final check to verify it's all ok.
 
* Paste your new/updated translation on http://megaglest.pastebin.com/ and paste the resulting internet address on the MegaGlest forums as a new bug. Alternatively, send the translation file to one of the core developers (by email). Please provide information on how you would like to be credited in the next release.
 
 
[[Category:MG]]
 
[[Category:MG]]

Revision as of 03:29, 24 March 2011

Some of MegaGlest's most answered questions can be solved easily, and to solve problems quickly, it is recommended to read some of the frequently asked questions (FAQ) for resolutions.

Installation

How do I run the installer on Linux?

Open a terminal window, then use the pwd command to determine the directory you are currently in, and the cd command to change into the directory you have stored the MegaGlest installer in. To verify that you are in the correct directory, you can use the ls command.

For example:

tux@computer:~$ pwd
/home/tux

tux@computer:~$ cd Downloads

tux@computer:~/Downloads$ pwd
/home/tux/Downloads

tux@computer:~/Downloads$ ls
debian-504-i386-netinst.iso
MegaGlest-Installer-3.3.7.2_i386_64_linux
ubuntu-10.10-desktop-i386.iso

tux@computer:~/Downloads$

The installer package is called MegaGlest-Installer-3.3.7.2_i386_64_linux in this example (it may be called differently in your case), and it is located in the Downloads directory (it may be in another location, such as in ~/Desktop).

Now make the installer executable, then run it:

tux@computer:~/Downloads$ chmod +x MegaGlest-Installer-3.3.7.2_i386_64_linux

tux@computer:~/Downloads$ ./MegaGlest-Installer-3.3.7.2_i386_64_linux

Once you execute this command, you should get to see the graphical installer, displaying the MegaGlest license. You can now follow the graphical installer to install the game into your home directory or a location of your choice (within the boundaries of where your Linux user may write to, so probably anywhere below your home directory only).

I get "permission denied" while installing on Linux

If, after spawning the installer as described above, you do not get to see the installer window but get an error about "permission denied", this is either because you had a typo in the chmod command (review the Linux installation instructions) or because you may not execute commands in the current directory, i.e. the entire file system you are currently working on has the 'no execute bit' set. You can work around this until the next reboot using the following command:

tux@computer:~/Downloads$ sudo mount -o remount,exec /home/

This assumes that /home is the mount point of the file system you are currently working in.

I get "wrong executable/binary/ELF format" while installing on Linux

After spawning the installer as described above, you may not get to see the installer window but get an error about 'wrong executable/binary/ELF format'. If you run into this then you seem to have downloaded an installer package which does not match your system architecture, i.e. you have probably downloaded a 64 bit installer but have a 32 bit system. You can use the arch and uname -m commands to check which operating system architecture you are using.

How do I install into my home directory or bypassing the installer on Linux?

The Linux installer always installs into your home directory, not system-wide. But if you don't like to rely on the installer to set things up for you then you're welcome to do your own installation instead. Here's how:

You'll want to ensure you have 7-zip installed so that you can unpack the data package. On Debian and its derivates (Ubuntu etc.) you can use:

sudo apt-get update && sudo apt-get install p7zip-full

Then create a new directory the game will be placed in (for MegaGlest version 3.3.7.2 in this example):

cd
mkdir megaglest-3.3.7.2
cd megaglest-3.3.7.2

Now you need to download the "Linux XX bit x86 binaries" and the "full data package". What XX is depends on the architecture your Liux distribution is optimized for. On Debian and its derivates (Ubuntu etc.) you can use the arch command to determine what you have. If the arch command doesn't work for you, try uname -m instead. If it says x86_64 then you want the 64 bit version of the game, otherwise use the 32 bit version.

For example, to download the 64 bit Linux version:

wget 'http://sourceforge.net/projects/megaglest/files/current_release/megaglest3.3.7.2_i386_64_linux_bin.tar.bz2/download'
wget 'http://sourceforge.net/projects/megaglest/files/current_release/megaglest-data-3.3.7.2.7z/download'

Now extract the archives (I'm using the 64 bit file names again in this example) in the directory you are in:

7z x megaglest-data-3.3.7.2.7z
tar xjvf megaglest3.3.7.2_i386_64_linux_bin.tar.bz2

And play with:

./glest

Next time you want to play, you just need to:

cd ~/megaglest-3.3.7.2
./glest

You can, of course, also create a shortcut on your favorite window manager so that you just need to point and click to start the game in the future, thus eliminating the necessity of using the terminal window each time.

Graphics issues

I get an error stating MegaGlest needs an OpenGL version of at least 1.3 to work

You likely need either updated video drivers or your video card. It could also be that your hardware is just too old or you bought hardware which is badly supported on your operating system by its manufacturer. But don't give up just yet, read the #Where can I get newer video drivers? section below.

Where can I get newer video drivers?

This depends much on your operating system:

Linux

You should first check whether their distribution provides "backported" drivers for their graphics card and if so, try them. For example, if you run Ubuntu, take a look at the 'drivers-only' section of the xorg-edgers PPA (or even the complete X Updates PPA - but this is for people who really know what they are doing and don't mind sitting there with broken drivers and no X GUI). Be aware, none of these are fully supported - do read the instructions on these pages. Another option is to install a vendors binary driver. Those are often available through your Linux distributions' package repositories, too, and are often in better shape than those you could download from your vendors website. In case of Ubuntu, have a look at their Binary Driver How-to.

Windows

Try to get the latest drivers available from your video card manufacturer. If you have a laptop, get them from your laptop manufacturer instead. If you have legacy hardware the drivers your hardware manufacturer provides have not had recent updates, you can try patched drivers. These are current vendor drivers which have been modified to work with older hardware as well as with laptops where the laptop manufacturer fails to provide driver updates (but the original video card drivers refuse to be installed) and to introduce additional features. For example, patched ATI drivers for [hardware] and for [hardware] are available. Note that these are not official drivers, and are not guaranteed, nor does the Glest Wiki accept liability for problems that may occur.

My Frames Per Second (FPS) are horrible, what can I do?

If you are a Linux user turn off Compiz, as It can drop FPS for 3D games from 500FPS to 70FPS. Also disable sync to vblank:

Otherwise try the following settings by adding or editing them in glestuser.ini

AutoMaxFullScreen=false
CheckGlCaps=true
ColorBits=16
DepthBits=16
Filter=Bilinear
FilterMaxAnisotropy=1
MaxLights=1
PhotoMode=false
RefreshFrequency=75
ScreenHeight=768
ScreenWidth=1024
ShadowTextureSize=256
Shadows=Disabled
StencilBits=0
Textures3D=false
UnitParticles=false

My mouse seems to move sluggish, too slow or too fast

This could be for many reasons. (see references to DGAMOUSE on libsdl.org). Alternately, you may press / in the game to switch the mouse-pointer. For a permanent change edit glestuser.ini and add this entry (or change it if it already exists but is currently set to "false" or "0"):

No2DMouseRendering=true

Network gaming

How can I host a MegaGlest game?

Most domestic Internet connections are setup (for security reasons) to require port forwarding to make a service, such as MegaGlest, available on the Internet. Port forwarding is usually configured on your Internet router/modem/access device. How to do this is explained on the Port Forwarding page.

What network ports must be open for network play? How do I configure my firewall?

The network game interface window displays the actual port number used by MegaGlest. The default port number is specified in glest.ini:

ServerPort=61357

If you need to change it, do it by adding the same setting to glestuser.ini but customize the port number as needed. If a user who will be hosting a game changes this port number, then all users wanting to join this server must also change their port numbers. TCP is used for all game communication. In a LAN setup the server will use UDP to broadcast to clients on the same network that it is waiting for clients to connect.

Since v3.3.5 it is possible to separate the 'External' port from the 'Internal' port. The 'External' port is the port exposed to the outside world (Internet) and is usually the entry point into your network via a router. This 'External' port is the port that other users will see, and require to connect into your network. When you create a network game by selecting a 'Network' slot in the custom game menu you will see the 'External Port #' option at the top of the screen. By default we use TCP port 61357 but users may pick from a list of various port numbers (the one you pick must be setup on your router / firewall to 'Port Forward' incoming connections from the Internet to your computer). This list of External Port numbers is configurable as a property in glestuser.ini, eg:

MasterServerExternalPortList=61357,80,143,587,21,110,25,443,993,995

The 'Internal' Port is the port that Mega-Glest itself will listen on for connections. This Internal Port # is set via a property in glestuser.ini (overwriting the default value contained in glest.ini):

ServerPort=61357

For LAN Games clients will look for servers using this port number. For Internet Games, Clients will ask the Master Server for the 'External Port' sent to it by a Mega-Glest User who will be hosting a Game.

Users should therefore configure their router/firewall to "Port Forward" The External Port they will use in the Custom Game Menu (default is 61357) to their Internal Port (configured in glest.ini or glestusers.ini, default is 61357).

How much network bandwidth does MegaGlest require?

Each players' connection to the game server consumes up to 20 kilobits per second (Kbps), with an average more around 10 Kbps. So as a client, you should never need more than 20 Kbps. To host games, you will need 20 Kbps x ( number of players - 1 ), so if you play a game with eight players (or observers, this should not change things much), this will amount to a maximum of ~140 Kbps. However, keep in mind that if you use an internet access method where upload and download bandwidth are split up asymmetrically (such as ADSL) then keep in mind that if you need to transfer data into both in and outbound directions simultaneously — as is the case for MegaGlest — this effectively decreases the bandwidth you can get through the line in the direction which provides the smaller bandwidth. Realistically, this means that to play a 8 player game on an ADSL line, you may need a line which is marketed as providing 250 Kbps upstream.

Do I need good ping? Do I need to stop my downloads to play?

You may have heard that some computer games, especially real time games, require "good ping", or, in technical terms, require you to have a low latency network link. While this is usually affects first person shooters mostly, it also affects MegaGlest.

In most cases all wired Internet access methods will be fine to play MegaGlest. However, cable Internet can be problematic during times when many people in your neighborhood are using their internet access simultaneously. This can also, though more rarely, be the case for ADSL lines.

Internet connections which are partially using aired connections, such as Wireless LAN (WLAN), WiFi, Wimax, HSCSD (HSDPA/HSUPA),UMTS, EDGE, GPRS and satellite links can be problematic because they often come with high latencies or even packet loss. While people who are limited to using such connections have successfully played MegaGlest matches, bearing latencies of up to 250 ms (milliseconds, so 0.25 seconds), such links are not really very stable and reliable, and we therefore recommend against using them - if you have a choice. WLANs can be super comfortable, but for applications or games like MegaGlest which require low latency connections plugging in an Ethernet wire to your router is really a good idea.

Depending on the type of your Internet link, and especially if you use a DSL connection or a connection which already bears hgh latency with little data flow, you should also consider stopping or at least limiting your downloads while you play, since this will not only eat bandwidth but, especially on DSL lines, also increase your latency remarkably.

Why is the list of game servers mostly empty?

There's several reasons to this:

  • To date, MegaGlest games are only displayed on this list as long as players can join it. This means that currently running games are not listed, nor are servers listed which have all their network slots filled already. We are considering to change this behavior to also list games which have already started, so that you can join this game as an observer.
  • MegaGlest is pretty new (the original Glest is older, but does not have the ability to support a master server), so not many people know this game yet. Thus, during offtime, there is considerably less players available.
  • There is not currently a dedicated/headless game server version of MegaGlest, yet. As such, it's not currently possible to just install MegaGlest on an Internet server and have it host random or pre-programmed games automatically. This may change some day, too, but it involves quite a bit of engineering, so it can take a while to happen.

I cannot connect to a server that is hosting a game on my LAN on Windows

This may be caused by the Windows Firewall be turned on for Private Networks. Disable the Windows firewall for private networks and you should be able to click "Find Games" to find a hosted server on your LAN.

Can I play MegaGlest with friends who run a different operating system?

Yes, you can. To date, you can play cross-architecture on Linux (tested: Debian 5.0, Ubuntu 10.04, Fedora Core 13, OpenSuSE 11.3, Mandriva 2010) and Windows (tested: XP/7, both 32 and 64 bit), and there is experimental support for Mac OS X and FreeBSD.

Advanced topics

Can games be saved and resumed later?

MegaGlest does not currently support this feature, though the Glest Advanced Engine is able to save and load games.

Which hotkeys are there and how do I redefine them?

Look at glestkeys.ini (you may override these defaults by making override changes to glestuserkeys.ini).

What optional command line options exist?

There are several command line options to date and more will likely be added in the future. To list the available command line options, use:

--help

An example for a command line option is:

--version

This command gives you the version of MegaGlest you have installed. To use command line options, use the command line (cmd on Windows, the terminal on Linux, etc) to run the program with the command line option trailing it. A Windows example is:

"C:\Program Files (x86)\MegaGlest_3.3.7.2\glest_game.exe" -- version

This assumes that the MegaGlest executable is located at "C:\Program Files (x86)\MegaGlest_3.3.7.2\glest_game.exe".

How can I install my own master server?

First of all, please think about whether it actually makes sense to do so. The MegaGlest project provides a freely usable, well-connected default masterserver setup for the community to use for network games played over the Internet. As such, we can think of very few, if any, good reasons why anyone would want to setup their own masterserver. MegaGlest is still a young project and there are not that many players yet. Setting up a new MegaGlest masterserver will just divide an already small community, so we think this is neither fun for you nor for anybody else.

Nevertheless, in the virtue of free software, the MegaGlest team wants to make the master server source code available, too. However, they will not support your use of it beyond this FAQ entry unless you can provide convincing reasons why they should.

The PHP / MySQL masterserver source code can be found in the subversion repository in the source/masterserver directory. The masterserver currently only facilitates clients and servers so that they may find one another, it does not create a dedicated server for network games. This means that users who "host" a network game may choose to 'publish' their game to the masterserver where other users may 'join' published network games (thus connecting directly to the hosted server player).

If for some reason a person wanted to setup their own masterserver you require:

  • a webserver that handles PHP (like Apache or IIS)
  • a MySQL database.

To set things up, edit config.php and edit the database values to match your server.

  1. FTP all the files in the masterserver folder in SVN to your webserver.
  2. Create a MySQL database and import the createDB.sql scheme to create the appropriate database tables (you can use phpmyadmin or a similar program to do so).
  3. Ensure all clients that will use your masterserver have the correct root URL to point to your server. Have them modify this setting in glestuser.ini so that it points to your master server:
Masterserver=http://yoursite.com/

What configurable game settings are there?

See MG/INI

How can I provide a new/updated translation?

See MG/Translations

See Also