MG/FAQ

From MegaGlest
Jump to navigation Jump to search

Some of MegaGlest's most asked questions can be answered easily, and to solve problems quickly, it is recommended to read these 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.6.0.3_i386_64_linux.run
ubuntu-10.10-desktop-i386.iso

tux@computer:~/Downloads$

The installer package is called MegaGlest-Installer-3.6.0.3_i386_64_linux.run 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.6.0.3_i386_64_linux.run

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

Once you execute this command, you should get to see the graphical installer, displaying the MegaGlest licenses. You can now follow the graphical installer to install the game into your home directory. You may also install the game to a different location of your choice, within the boundaries of where your Linux user may write to, and this is usually not much more than your home directory (as well as possibly external media such as USB HDDs/keys). These boundaries are there for a reason, please do not try to run the MegaGlest installer with sudo/as root to work around them. Have a look at your Linux distributions' manuals or Wikipedia to learn more about the underlying file system hierarchy standard - it is well worth those five minutes you spend on it.

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 saying "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. If you needed to use this workaround, it means that you are doing something the Linux distribution you are using thinks you should not be doing. Please consult the documentation of your Linux distribution to learn whether and if so, how and where you should keep a fixed set of executable files, libraries and application data (such as the MegaGlest installer provides) in one place if not in your home directory. Most likely you will end up either installing a MegaGlest package made for this distribution or violating this design by editing your filesystem table.

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, example:

softcoder@softhauslinux:~$ arch
x86_64

softcoder@softhauslinux:~$ uname -a
Linux softhauslinux 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 18:42:20 UTC 2011 x86_64 GNU/Linux

Both of theses results indicate a 64 bit version of Linux (notice the _64 in both)

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.5.1
cd megaglest-3.5.1

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 -O megaglest3.5.1_i386_64_linux_bin.tar.bz2 'http://sourceforge.net/projects/megaglest/files/current_release/megaglest3.5.1_i386_64_linux_bin.tar.bz2/download'
wget -O megaglest-data-3.5.1.tar.xz 'http://sourceforge.net/projects/megaglest/files/current_release/megaglest-data-3.5.1.tar.xz/download'

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

tar xf megaglest-data-3.5.1.tar.xz
tar xjvf megaglest3.5.1_i386_64_linux_bin.tar.bz2

And play with:

./megaglest

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

cd ~/megaglest-3.5.1
./megaglest

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, thus eliminating the necessity of using the terminal window each time.

Issues running the game

When I click the game icon nothing happens/a window just opens and closes

Linux

Start a terminal. Use the 'cd' command to change to where you installed MegaGlest (probably something like /home/yourusername/megaglest/), then start the game:

cd ~/megaglest/
./start_megaglest

You will likely get to see an error message then. Try to find help in the MegaGlest FAQ and in the forums - search them! -. If neither helps, copy and paste the complete output including where you invoked ./start_megaglest to the forums or to paste.megaglest.org, and optionally connect to IRC to check whether someone is around to help you - if you do, remain connected to the chat for at least half an hour, we are not always around. Or just wait till we respond on the forums.

Windows

Open the Start menu, and click on Run then type cmd and press enter. Use the cd comamnd to change into the directory where you installed MegaGlest (probably something like C:\Program Files\MegaGlest). Then start the game:

cd %ProgramFiles%\MegaGlest
megaglest

If an error message shows up proceed as explained above for Linux.

I get an error about missing libraries

Linux

Be sure that you have installed all requirements. If it still does not work then, you may try running these commands from your MegaGlest root folder (probably something like /home/yourname/megaglest).

mkdir lib_bkp
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/

Then retry running MegaGlest.

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 and the drivers your hardware manufacturer provides have not received updates recently, 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 latest official video card drivers refuse to be installed) and to introduce additional features. For example, patched ATI drivers for current hardware and for legacy hardware are available. There's also a patching utility to (possibly) make current default ATI drivers work on laptops. Note that these are not official drivers, and are not guaranteed to work, 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

I can not connect to any server, why is this?

This is usually caused by badly configured (possibly so by default) personal firewalls or "Internet security suites".

On Windows, McAfee personal firewalls are known to come with a default configuration which will disconnect you off a game server immediately after you connected to it. For this and other firewalls, MozillaZine.org has good documentation on how to reconfigure your personal firewall to allow outbound traffic to a given location.

If, however, you are on Windows and run into error messages which refer to Winsock or sockets then you may need to fixup your network stack.

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

Normally, to connect to a remotely hosted game server, you do not need to configure anything - but read the section about personal firewalls if you are having trouble connecting to a MegaGlest server.

The Internet/LAN custom game menus display 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 adjust the port number as needed. If a user who will be hosting a game changes this port number, then all users directly connecting to this server mustdo so, too. TCP is used for all game communication. In a LAN setup the server will additionally use UDP broadcasts to inform clients on the same network that it is available to connect to.

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 (as displayed in the Custom Game Menu, default is 61357) to their internal port (configured in glest.ini or glestusers.ini, default is 61357).

How can I host a MegaGlest game?

Most domestic (read: home user) Internet connections are setup to require port forwarding to make a service, such as MegaGlest, available on the Internet. Port forwarding is usually configured on your Internet modem / router. MegaGlest allows for using UPnP, making configuration much easier. See the Port Forwarding page for further instructions.

How much network bandwidth does MegaGlest require? Do I need to stop my downloads to play?

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.

Depending on the type of your Internet link, and especially if you use a DSL connection or a connection which bears high latency already at little data flow, you should stop or at least limit (if this is possible) your downloads while you play, since this will not only eat bandwidth but, especially on DSL lines, also increase your latency remarkably.

If you would like to test your lines' throughput, there are some online tests available:

Do I need good ping?

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 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 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, LTE, "3G" and satellite links can be problematic because they often come with high latencies or even packet loss. While some people who are limited to using such connections and have 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. Wireless LAN (WLAN) can be super comfortable for browsing the web on your laptop from the couch, but for applications or games like MegaGlest which require low latency connections it is really much better to plug in an Ethernet wire between your computer and your router.

Dial-up modems, those devices everybody used in the nineties before broadband Internet access became available in some areas of this planet, suffer from two issues: First, these connection usually need to do a lot of error correction at the expense of high latency. Secondly, their bandwidth will be limited to a maximum of ~50 kbps (on a 56 kbps modem). ISDN dial-up does not share these latency issues but it, too, suffers from limited throughput. See the section on bandwidth in this FAQ for more information on this.

If you would like to test your lines' latency, there are some online tests available:

  • http://pingtest.net - by default this test selects a location which is close to you; to get realistic results, select a test location which is where most MegaGlest servers are instead (usually somewhere in Europe or the Americas)

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. All supported variants of MegaGlest should work for playing online games together.

Advanced topics

Something is wrong, how can I create a log file?

MegaGlest does not log much by default. However, you can change some options to find out what may be going wrong. To do so, you need to edit glestuser.ini. Where this file is located depends on your platform (read the hints on MG/INI files for details). On Windows, a Start menu shortcut to the user data directory (which contains glestuser.ini) is setup by our installer. Basically, it is here:

On Linux:

~/.megaglest/glestuser.ini

Note that some custom builds use ~/.config/megaglest/glestuser.ini instead.

On Windows XP:

%AppData%\MegaGlest\glestuser.ini

On any later Windows version:

%AppData%\Roaming\MegaGlest\glestuser.ini

Note that ~ and %AppData% will get replaced by the proper value automatically, you can just copy and paste these characters into your preferred file browser or a terminal / command line window as they are.

Now open glestuser.ini in a text editor - use either Wordpad (installed by default) or Notepad++ (free and open source) on Windows, not the default Notepad which comes with Windows (it may break these files)! On Linux, GEdit, Kate, or any command line text editor (nano, pico, jed, vi(m), emacs etc.) will work fine (and you don't need to sudo).

Look for the following options, and change them as follows or add them if they are missing:

DebugMode=true
DebugNetwork=true
DebugLogFile=debug.log
DebugLogFileNetwork=network.log

Next time you start the game, these files (debug.log and network.log) will be created in the same directory glestuser.ini is stored in. So run MegaGlest and trigger the issue you ran into before, making sure that the log files get created. Then revert your changes to glestuser.ini.

Now compress the log files using a free compression format (such as 7-zip, infozip, xz, gzip or bzip) and upload them to a file hosting service which allows for direct access (please do not make us solve CAPTCHAS or wait for nag screens to disappear!), or to your personal shared web space (Internet service providers often give you some for free). Anything goes, as long as we can download from there without any interruption and the download uses a standard and open protocol (such as HTTP, FTP, SFTP, rsync, bittorrent etc.).

Now submit a proper bug report to forums or send us an e-mail. Don't forget to add the URL to your log files and to provide a concise description of your issue.

How can I run the game from a shell / command line and capture the verbose output?

Linux

Open a terminal window (xterm, gnome-terminal, konsole, xfce4-terminal, ...), this is usually available on your application menu. You should end up with a black or white box with some text like this in it:

you@yourcomputer:~$

Change into the directory you have MegaGlest installed in - if you used our installer with default settings then this 'megaglest' in your home directory. If you used a Linux distributions' installation then you can omit this step.

you@yourcomputer:~$ cd ~/megaglest
you@yourcomputer:~/megaglest$

Now run the game with the --verbose option and redirect the output to a file verbose.log in the directory where MegaGlest stores its user specific configuration and log files.

you@yourcomputer:~/megaglest$ ./start_megaglest --verbose &> ~/.megaglest/verbose.log

Now please make this log file available to us as explained in the section (about how to create log files) above.

Windows

Click on the Windows Start / logo button to open the Windows menu and, depending on your Windows version, either type cmd.exe into the Search field and press Enter, or click on Run, then type cmd.exe into the window which opens up and press Enter. A command line window should open, displaying text similar to this:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\You>

Change into the directory you have MegaGlest installed in - if you used our installer with default settings then this %ProgramFiles%\MegaGlest (which is a shortcut which points to different locations depending on your Windows version).

C:\Users\You> cd %ProgramFiles%\MegaGlest
C:\Program Files (x86)\MegaGlest>

Now run the game with the --verbose option and redirect the output to a file verbose.log in the directory where MegaGlest stores its user specific configuration and log files.

C:\Program Files (x86)\MegaGlest> megaglest --verbose > %AppData%\MegaGlest\verbose.log

Now please make this log file available to us as explained in the section (about how to create log files) above.

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.

Saved games are currently in development and can be tested by checking out SVN and compiling the game

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 (your preferred shell (running in a terminal emulator) on Linux or cmd on Windows) to run the program with the command line option appended to it. A Windows example is:

"C:\Program Files (x86)\MegaGlest\megaglest.exe" --version

This assumes that the MegaGlest executable is located at "C:\Program Files (x86)\MegaGlest\megaglest.exe" (as would be the case on 64-bit Windows 7).

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?

How does MegaGlest compare to other games (Glest, GAE)?

Main article: Engines

MegaGlest is an extended and improved continuation of Glest - it would not be possible without Glest, but has evolved much since both in terms of the game engine and game data (factions, tilesets, maps, etc). Glest Advanced Engine also builds on Glest. At the current stage, it is primarily considered a game engine. It is extensible by additional game data, too, but the primary focus is, to date, on developing its engine and being moddable. Lacking features like cross-platform network gaming, it may currently seem less attractive to those who are mostly interested in actually playing a game with their friends.

A neutral comparison of features can be found on the Engines page.

Finally, the best impression on a subject is usually gathered by gathering what third parties have to say about it, so it is suggested that you also search the web for reviews on MegaGlest and Glest Advanced Engine.

Disclaimer: Please note that this summary was written by someone who takes part in MegaGlest development and which may thus seem subjective to others. As always, you are encouraged to develop your own point of view.

See Also