Note: this is just a draft and there is certainly much space for improvement!
The Glou Server acts as a so-called game-lounge-server (aka lobby-server, masterserver or metaserver). It lists running gameservers along with some information like the number of players, current map, game rules etc. The gameserver can update information about its current state via the game-lounge-server-protocol. The gameclient can query lists of running gameservers via the game-lounge-client-protocol. A gameserver can be connected to multiple Glou servers (see Communities). Of course a gameserver can run its own lobby-system in parallel to the Glou server, if this is desired. The Glou server has a user-database with registered users, storing user-information (e.g. avatars) and the user's gaming statistics. Furthermore it provides support for chatting and a friends-system.
Even if it is possible for gameclients to list gameservers, it may be more convinient to have a game browser that lists running gameservers for all games (that the user owns / is interested in / are popular / etc.). The game browser can be used to quickly launch games and gameservers and also join running games.
After the Game Browser is complete it could be enhanced to also act as some sort of game-center, where the user sees all his installed games and maybe even could quickly install new ones. This would be based on plugins for different platforms / package-managers.
There may be different Game Browser implementations for different platforms, e.g. QT, GTK+, Windows, Mac.
A Glou Community is a community that runs and hosts a Glou Server. For instance:
For example Battle for Wesnoth could have its own Glou Server listing only Battle for Wesnoth games.
Platforms like Open Pandora (if it should ever happen ;) ) could have their own Glou Server with a user-database of Open Pandora users.
The "global" community is important here. It hosts a Glou Server for "every" game out there (there will be no restriction for games to use the community). Free and open games are especially welcome. Even if a game uses its own Glou Server, it SHOULD also enlist itself on the "global" Glou Server. This would create a pretty decent assortment of free games that could (imho) easily compete with proprietary counterpart services like Steam / Gamespy etc.
Clearly a "global" community will be very resource-hungry. Therefore the Glou Server will be implemented with scalabilty in mind. It may also be able to run on multiple physical servers. Hosting will be expanded as the project grows.
The game-lounge-server-protocol has to support the following messages:
The game-lounge-client-protocol has to support the following messages:
For game developers there is an API that wraps the client / server protocols. The API is simple to use, small, leightweight, cross-platform and has as few dependencies as possible. For easy language bindings it is written in C. The license will be very liberal (e.g. BSD).
Why would the world need the system described above?