MegaGlest/source/masterserver
Tom Reynolds 769c1ced91 Master server:
· modified svn properties for *.js
· Add ABOUT text to README file
2013-10-13 02:27:56 +00:00
..
flags - masterserver: determine + store game servers' ISO_3166-1 alpha-2 country code, display country flag 2011-01-21 22:43:43 +00:00
images Master server: 2013-10-13 01:44:27 +00:00
install Master server: 2013-10-13 01:44:27 +00:00
scripts Master server: 2013-10-13 01:44:27 +00:00
style * Add preliminary server side support for linking to gameservers on the web 2012-08-10 01:52:16 +00:00
README Master server: 2013-10-13 02:27:56 +00:00
addServerInfo.php - update masterserver so it inserts in progress games properly if they are missing 2013-03-01 17:17:51 +00:00
cleanUpServerList.php Master server: 2013-10-13 01:44:27 +00:00
config.php Master server: 2013-10-13 01:44:27 +00:00
functions.php Master server: 2013-10-13 01:44:27 +00:00
index.php - updated copyright headers is some files that had them missing 2012-08-02 00:57:28 +00:00
showMapsForGlest.php * masterserver scripts: no more undefined indexes 2012-12-15 22:02:10 +00:00
showRecentServers.php Master server: 2013-10-13 01:44:27 +00:00
showScenariosForGlest.php * masterserver scripts: no more undefined indexes 2012-12-15 22:02:10 +00:00
showServers.php Master server: 2013-10-13 01:44:27 +00:00
showServersForGlest.php - updated copyright headers is some files that had them missing 2012-08-02 00:57:28 +00:00
showServersJson.php Master server: 2013-10-13 01:44:27 +00:00
showTechsForGlest.php * masterserver scripts: no more undefined indexes 2012-12-15 22:02:10 +00:00
showTilesetsForGlest.php * masterserver scripts: no more undefined indexes 2012-12-15 22:02:10 +00:00

README

ABOUT

This is the MegaGlest master server. MegaGlest (http://megaglest.org) is a
libre software cross platform real-time strategy game. 

This master server does the following:
· publish game hosts (when a user decides to host)
· list hosted games (HTML, CSV, JSON output)
· list recently hosted gamed (HTML output) - this code is currently disabled
· list available game mods (CSV output)
· provide a version check for game installations

It uses a standard PHP/MySQL setup to achieve this. When instances of MegaGlest
engine based games publish their game information, they do so by pushing it to
this web server in regular intervals. Stale entries are removed when the next
client requests the list. When game instances retrieve the list of hosted games
or available game mods, they do so by pulling this information from the server.
Game and master server communicate using HTTP. The client sends requests by
HTTP GET passing along URL parameters while the server responds in a CSV format
or single field plain text. The version check is currently implemented as plain
text files (which use symbolic links for deduplication purposes) on the server.
This may be replaced by a single configurable PHP script in the future.

The MegaGlest Team hosts a live copy of this code at 
  http://master.megaglest.org
Please do not use this instance for your tests, but set up a copy of your own.



INSTALLATION

1. Setup a web server with PHP and a MySQL database server.
   Sucessfully tested configurations (on Debian GNU/Linux 6 and 7):
   · Apache 2.2 + mod_php 5.3.3
   · Nginx 1.2.1 + fastcgi + PHP-FPM 5.4.4
   · MySQL Community Server/Edition 5.1 (Oracle)
   · MySQL Server 5.5 (Percona)

2. CREATE DATABASE 'megaglest-master' ENGINE=InnoDB;
   CREATE USER 'megaglest-master'@'localhost' IDENTIFIED BY 'secret password';
   GRANT ALL ON 'megaglest-master.*' TO 'megaglest-master';

3. Connect the new user to the new database;
   Execute the SQL statments in install/scheme_mysql.sql

4. Copy all files (you can omit INSTALL and install/) to your webserver and
   edit config.php to reflect the MySQL connection parameters and game title;
   also replace the images in images/ by some which match your game title.

To test and use this server with your MegaGlest engine based game, configure
the "MasterserverURL" property in glest.ini.

To add mods to the game mod menu, edit the database contents using your 
favorite MySQL editor or develop a web based frontend to do so. In the latter
case, please let us know about it and try to use a compatible license.