You are on page 1of 4

Proposal for an open source multiplatform game lobby and digital distribution platform.

It is time for open source to take on Steam, Direct2Drive, Greenhouse, and all the other
proprietary digital distribution methods and friends systems.

Main Requirements
1. Should support as many open source games out of the box as possible
a. Spring, GLEST, FreeCIV, OpenTTD, and more
b. Back end should be modular so you can write interfaces for new games
without any needed upstream access. XML + some scripting language
based?
c. Should be bundled with at least one game, maybe more. Will probably
require projects to sign up and agree to support it with their installers.
2. Should be multiplatform
a. Windows and Linux support should be mandatory due to the size of the
userbase on Windows and the support for FLOSS software on Linux.
b. Other platforms should be targeted based on size of user base, and
willingness of developer support. Ideally the next target would be Mac
OSX given the size of the user base, but Solaris and *BSD would be other
great targets.
c. A bare minimum chat client with support for basic games like Tetrinet
would be great for smaller, embedded environments like Nokia internet
tablets, Android OS mobile phones, etc.
3. Requires chat and game launching functionality
a. Spring style “Battle Rooms” for pregame setup and chat while everyone
gets ready instead of having to go in game for the setup. This allows you
to multitask and browse the web, send emails or instant messages, or other
tasks while waiting for a game to start.
b. Friends list support so you can see when your buddies are online and what
games they are in. Friends list should have group membership for
clans/guilds or websites to organize groups of players.
c. Chat rooms for general chat about games or just hanging around. Basic
functionality would include locked rooms, muting people, kicking and
banning, and channel topics.
d. The chat protocol should be standardized early on, and changes should be
avoided as much as possible. This will allow people to write their own
basic lobbies for other platforms, or add support for this lobby to existing
programs.
e. The chat should use Unicode for support for as many different languages
and character sets as possible.
f. The back end should be similar to IRC with multiple servers passing data
between each other to avoid server overload and provide more local
servers. We should host an “official” server network, but the server
software should be available for others to host their own server network as
well.
4. Digital Distribution
a. Allow for easily downloading new games or mods for games, and
highlight new content
b. New maps, models, and other materials should be available as well.
Maybe even game replays or videos.
c. Should be accomplished by either tying it to a repository system or
distributing files via BitTorrent. The back end for this feature should use a
well documented XML config file allowing people to easily run their own
repositories, or add multiple repositories in the style of the 3rd part APT
capability coming to Ubuntu and already in OpenSUSE.
d. Advertising may need to be integrated into the client in a few small spots
to offset the hosting costs for large amounts of files depending on the
hosting website’s requirements. Once again, this should be easily removed
should it not be needed by another file hosting website.
Optional Features / Future Features
1. Support for non-free / abandonware games
a. Modular architecture means the lobby could probably support almost any
RTS or turn based game
b. The community will probably release plug ins to support a wide variety of
games, but we should consider supporting the most popular / most played
of these games
c. We could replace dead game lobby services like Bungie.net, MPlayer,
Westwood Online, etc.
2. Virtual Lan support
a. Support for passing IPX or TCP LAN games over the internet KALI style
b. It would allow support for almost every multiplayer title available, even
obsolete ones.
c. Probably not needed for open source games but would increase the player
base significantly and make users very happy.
d. Probably extremely technically challenging, so it would need to be
determined how much it would be used before we try to tackle it,
resources may be better spent elsewhere.
3. Internet game browser
a. A game browser that would work with every FPS style game where you
join dedicated servers with games already in progress.
b. First target the open source FPS market
c. Include friends lists, chat rooms, etc similar to Steam or XFire
d. Possible non-free / abandonware game support, especially if combined
with our own “Master servers”
e. Replicate the amazing features and performance of All Seeing Eye’s
server side filters which hasn’t yet been equaled
f. Running our own “master servers” could replace the dead master servers
for games like C&C Renegade, WON versions of Halflife, and a few other
older titles
g. Also extremely technically challenging and difficult to run and maintain
so the same caveats as virtual LAN support apply.
4. VOIP Support
a. Voice over IP chat rooms and game communication based on free open
source software like Speex
b. Would probably have to be implemented in some sort of peer to peer
fashion because of the extreme bandwidth requirements
c. Would also probably have to be capped at a small number of users per
room because of those requirements
d. Would hopefully replicate features of Steam and Ventrilo’s voice chat
e. Code may be available from a few other open source VOIP projects like
Ekiga, Asterisk, and whatever the open source replacement to Ventrilo is
(Find this link on the Spring forums before I publish, maybe the name is
mumor / rumor?)
5. Technical implementation ideas
a. Base as much of this on extending standard off the shelf code and
protocols as possible.
b. Maybe it would be possible to expand standard internet protocols like
XMPP or IRC to handle game lobby traffic
c. If that’s not possible, I see no reason not to make our protocol a derived
but extremely similar version of one of these existing protocols. There’s
no need to reinvent the wheel.
d. We should standardize the main parts of the protocol as soon as possible
to begin fostering an ecosystem of different clients that can “talk” to each
other. Various camps may want to make their own clients for native
interfaces in Windows, Gnome, KDE, OSX, etc.
e. The key concern should be scalability. This will need to scale up to handle
thousands of users, and it should cost and arm and leg in bandwidth and
hardware to do so.
f. XML should be used for configuration of both game joining protocols and
describing anything else. This will make most of our platform human
readable and easy to modify.
g. Our first client should be as multiplatform as possible from day one. This
means using either QT, Swing + Java, or WxWidgets. Later native
interface clients could be written using GTK, Winforms / .NET WPF, and
Cocoa.

Project Name

The project name should incorporate either Free or Open in the name. Usually, this sort
of thing is called a game lobby, but a .net name may make sense or there could be some
other brilliant name idea. Suggestions: OpenGameLobby, FreeGameLobby, Vapor
(Steam joke), OpenLobby.net

Reason d’être

Currently, there are a multitude of different FLOSS RTS or turn based strategy
games available. Many of these are reasonably popular and are gaining more users.
However, each game uses a completely different lobby system and client. If you want to
play with your friends, you may have to run the Spring lobby, the OpenTTD lobby, the
Tetrinet lobby, just to play with the same group of people across a few of your favorite
games. Proprietary software like Xbox Live, Steam, and X-Fire are making great strides
in allowing you to have one buddy list to launch and play with all your friends with no
hassle. Shouldn’t open source try to catch up?
Meanwhile, there’s a variety of new digital distribution methods for proprietary
games like Steam, Direct2Drive, and Greenhouse. These services are gaining a user base
of millions, and selling a lot of software to people. Unfortunately, they are all closed to
open source free projects since they’re not profitable for the game companies. Imagine
the promotional power of a 10 meg installer that would allow you to browse for and
install a huge variety of open source game titles on the OS of your choice, even down to a
mobile phone platform. The KDE and Gnome projects are providing an enormous
amount of casual games in addition to the more full features open source titles already
released by different projects. This could provide a huge potential audience for open
source titles and would move a lot of open source software onto average people’s
desktops.
Combining the two could become even more powerful. The software could ship
with most Linux distros allowing people to be up and running and playing with their
friends in minutes. Windows users may take a little longer, but it will be just as easy if a
little more time consuming. It would allow people to discover and install new titles, and
convert them into open source users as they discover how much easier software is when
you don’t have to pay $50 like most commercial games, or it isn’t riddled with ads or
spyware like many casual games.

You might also like