Differences between revisions 1 and 2
Revision 1 as of 2006-05-31 11:58:08
Size: 3406
Editor: TFKyle
Comment:
Revision 2 as of 2008-02-05 05:46:31
Size: 3406
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

this page describes the methods of discovering monopd servers.

as far as I can see by looking at atlantik and gtkatlantic there are two different ways of discovering servers, monopigator (used by atlantik) and meta-atlantic (used by gtkatlantic). they both however use XML to describe the servers (its slightly different but we should be able to parse both at the same time), the only big difference is that monopigator uses http where meta-atlantic uses a custom atlantic-like Command->Response Protocol.

monopigator

there is only one monopigator server that I know of (which is hardcoded in the atlantik source) which is http://monopd-gator.kde.org/, to get the server list you just have to request the page and parse the resuling XML.

<?xml version='1.0'?>
<monopigator>
<server ip="193.85.247.149" host="pro.vserver.cz" port="11234" version="0.9.3" users="0" />
<server ip="69.13.181.249" host="all-games-2.bishopston.net" port="11234" version="0.9.3-p4" users="1" />
<server ip="66.221.209.131" host="all-games-1.bishopston.net" port="11234" version="0.9.3-p7" users="4" />
<server ip="82.211.59.207" host="monopd.de.eu.conceptt.com" port="1234" version="0.9.3.1" users="0" />
</monopigator>

meta-atlantic

as I said earlier these use a custom protocol, a server you can screw around with is at meta.gradator.net port 1240 (like monopd it sends one xml document per line)

Note: the commands seem to be Case-Sensitive

Commands (basically nicked from the create_connection_metaserver function in game.c in gtkatlantic):

  • CHECKCLIENT: seems to be a check function for newer gtkatlantic versions? (we probably won't need it)
  • SERVERLIST: Returns an XML-Formatted Serverlist
  • GAMELIST: Returns an XML-Formatted Game List

CHECKCLIENT:

  • Seems to Take 2 Arguments, Package Name and Package Version

SERVERLIST:

  • Returns something like the following:

    <meta_atlantic><server host="solarium.devnullteam.org" port="1230" version="0.8.3" users="0" /><server host="solarium.devnullteam.org" port="1231" version="0.8.3" users="0" /><server host="solarium.devnullteam.org" port="1232" version="0.8.3" users="0" /><server host="solarium.devnullteam.org" port="1233" version="0.8.3" users="0" /></meta_atlantic>

GAMELIST:

  • Returns something like:

    <meta_atlantic><servergamelist host="solarium.devnullteam.org" port="1230" version="0.8.3"><game id="-1" gametype="atlantic" name="Atlantic" description="Rob Kaper's Atlantic"/><game id="-1" gametype="city" name="Monopoly" description="The classic Monopoly game"/></servergamelist><servergamelist host="solarium.devnullteam.org" port="1231" version="0.8.3"><game id="-1" gametype="atlantic" name="Atlantic" description="Rob Kaper's Atlantic"/><game id="-1" gametype="city" name="Monopoly" description="The classic Monopoly game"/></servergamelist><servergamelist host="solarium.devnullteam.org" port="1232" version="0.8.3"><game id="-1" gametype="atlantic" name="Atlantic" description="Rob Kaper's Atlantic"/><game id="-1" gametype="city" name="Monopoly" description="The classic Monopoly game"/></servergamelist><servergamelist host="solarium.devnullteam.org" port="1233" version="0.8.3"><game id="-1" gametype="atlantic" name="Atlantic" description="Rob Kaper's Atlantic"/><game id="-1" gametype="city" name="Monopoly" description="The classic Monopoly game"/></servergamelist></meta_atlantic>

pyatlantic/ServerDiscovery (last edited 2008-02-05 05:46:31 by localhost)