This page describes the inner workings of the metaserver, for developers. See Freeciv Metaserver for what it is and how to use it.
Metaserver Software[]
This software was written in LAMP technologies using PHP and MySQL. Sources are available at Github.
It would be nice, in the future, to integrate and clean up all this software and place it in its own server using outsourced LAMP hosting. I believe even commercial LAMP hosting is currently inexpensive enough and our funds should cover it.
Adding scorelog functionalities to metaserver and freeciv-server would be an interesting feature. I believe this feature should be decentralized so 3rd parties can provide public Freeciv server services. If possible, this code should be made more generic, and integrated with other projects like Wesnoth or BZFlag. Alternatively, we could seek some other FLOSS solution, such as GGZ, that fits our needs.
Metaserver[]
The parts in parentheses are the actual variable names passed to the metaserver
- Header section
host=string (host=)
port=integer (port=)
version=string (version=)
patches=string (patches=)
capability=string (capability=)
state=string (state=)
dropplayers=number (dropplrs=)
goodbye=number (bye=)
- Message section
topic=string (topic=)
message=string (message=)
- Variables section
variable_name[]= string (vn[]=)
variable_value[]= string (vv[]=)
- Players section
players_available=integer (available=) player_type[]=string (Human,AI,Barbarian) (plt[]=)
player_leader[]=string (pll[]=)
player_nation[]=string (pln[]=)
player_user[]=string (plu[]=)
player_host[]=string (plh[]=)
The following software is not presently integrated into metaserver proper, but used to run at old.freeciv.org. I believe it provides much needed functionality so we can get more user feedback to improve the game.