Hello everyone! Today I'd like to present you an idea concerning open and free games. I've sent this mail to two lists: * Freedesktop Games: I guess it is _the_ list to talk about free games * GGZ: comes closest to the project idea
Some of you may have heard of the idea before as I was researching and hanging around in your IRC channels (as Noya). The last few days I was looking for an open game lobby system. I guess most of you will know Steam, Gamespy, Windows-Live and others. It seems as there is no real open alternative to those systems. Some place where I can see running gameservers of serveral games, chat with my friends, see what they are playing etc. So, I created a draft of how such a system may look like and how it could be implemented. I would really appreciate any comments, your opinion and criticism. If you know of something that is like what I describe below please point me to it. And don't worry about the length of the mail, it doesn't take that long to read as it looks like ;) . Thank you! - Sven Here the system is called "Open Gaming Portal". It can be seen as a codename though :) = OGP Server = The OGP server acts as a so-called lobby-server. It lists running gameservers along with some information like the number of players, current map, game rules etc. Overview of the OGP server and interaction with other components: http://files.inrain.org/pub/ogp/client_server.png The gameserver can update information about its current state via the portal-server-protocol (see below). The gameclient can query lists of running gameservers via the portal-client-protocol (see below). A gameserver can be connected to multiple OGP servers (see "communities" below). Of course a gameserver can run its own lobby-system in parallel to the OGP server, if this is desired. The OGP 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. = OGP 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.). Overview of the OGP game browser and interaction with other components: http://files.inrain.org/pub/ogp/game_browser.png The game browser can be used to quickly launch games and gameservers and also join running games. It could also act as some sort of game-center, where the user sees all his installed games and maybe even could quickly install new ones. = OGP Communities = An OGP community is a community that runs and hosts an OGP server. For instance: * a game community: For example Battle for Wesnoth could have its own OGP server listing only Battle for Wesnoth games. * a platform community: Platforms like Open Pandora (if it should ever happen ;) ) could have their own OGP server with a user-database of Open Pandora users. * the "global" community The "global" community is important here. It is an OGP server for all free and open games out there. Even if a game uses its own OGP server, it SHOULD also enlist itself on the "global" OGP server. This would create a pretty decent assortment of free games that could (imho) easily compete with proprietary counterpart services like Steam / Gamespy etc. = Portal-Server-Protocol = The portal-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, ... = Portal-Client-Protocol = The portal-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, ... = OGP 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. = Benefits = Why would the world need the system described above? * no duplicate effort for game-developers: use the existing lobby-system instead of coding your own * an open standard for client-server-lobby 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, Windows-Live * proprietary * 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 OGP * the GGZ server spawns gameservers: this is only suitable for smaller games like card-games or a small number of gameservers = Notes = Even if most of the above is written in present tense, not a single line of code is implemented yet. This is just a draft and there is certainly much space for improvement!
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Games mailing list Games@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/games