Menu

Project_Overview

Sven James Scott Ritchie

Note: this is just a draft and there is certainly much space for improvement!

Glou Server

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.

Glou Game Browser

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.

Glou Communities

A Glou Community is a community that runs and hosts a Glou Server. For instance:

  • a game community

For example Battle for Wesnoth could have its own Glou Server listing only Battle for Wesnoth games.

  • a platform community

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

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.

Game-Lounge-Server-Protocol

The game-lounge-server-protocol has to support the following messages:

  • gameserver info
    • name, number of players, map, ...
  • update gameserver info
    • if a player joins, the map changes, ...

Game-Lounge-Client-Protocol

The game-lounge-client-protocol has to support the following messages:

  • query gameservers
    • game, filters for playercount, gametype, map, ...
    • update list of gameservers if a gameserver goes offline, gameserver info changes, ...
  • authentication
    • registered or anonymous access
  • user registration
  • update user profile
    • changing avatar, description, ...
  • chatting
  • manage friendslist
    • add / remove friends
  • status of friends
    • online / offline, what games are they playing, ...

Glou API

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).

Benefits

Why would the world need the system described above?

  • no duplicate effort for game developers: use the existing lounge-system instead of coding your own
  • an open standard for client-server-lounge communication
  • a platform for free and open multiplayer games (= "global" community)
    • game developers get a wide audience of players
    • players get an extensive assortment of games
  • push the open source gaming scene: with a platform for multiplayer games more developers could be attracted to create games and a greater number of people could get to know great open source games
  • bring gaming to the Linux desktop: should something like a game-center where you can manage your games and play them online instantly find its way into Linux distributions, Linux would have something on board that proprietary OSs (like for example Windows) don't have

Quick Overview of Existing Projects

  • Steam, Gamespy, X-Fire, Windows-Live
    • proprietary
    • not cross-platform
    • only selected games can use the offered service
  • HLSW, xqf
    • lists gameservers for some games using their respective non-standard APIs
    • more LAN oriented
    • no user-database, no friends-system
  • GGZ
    • close to the idea of Glou
    • the GGZ server spawns gameservers: this is only suitable for smaller games like card-games or a very small number of gameservers

Related

Wiki: Design
Wiki: Main_Page
Wiki: ProjectOverview

MongoDB Logo MongoDB