Tremulous Forum
General => General Discussion => Topic started by: Noya on April 08, 2009, 12:34:47 pm
-
Hello everyone!
Today I'd like to present you an idea that is centered around free and open
source games. It was born via a discussion on mailinglists and IRC-channels
between people from Freedesktop-Games, freegamedev.net and GGZ [1] in the course
of the last two weeks.
The vision is an open, cross-platform game lounge system, used to play online
with people from around the world, browsing through and easily joining
multiplayer games. Its core elements will be:
* a set of open standard protocols describing the communication between a
game-lounge-server, a game-server and a game-client
* an open API for games implementing these protocols
* a game-lounge-server including community features (user-database, statistics,
chatting, etc.)
* a game-browser
The main goal of the project is to make the creation of an open community for
games and gamers eventually possible.
Most of you will certainly know services like Gamespy, Steam, Windows-Live,
Xfire and possibly more. It seems like there currently is no free and open
alternative to them, and this project aims to change that. Maybe we can change
that together.
A more detailed overview of how the system could look like, what the goals and
what the benefits are is available at:
http://apps.sourceforge.net/mediawiki/glou/index.php?title=ProjectOverview
Just a word about what this project is not: it is not a replacement for your
current lobby-system. It may be if you want, but it will be created in a way
that it can be used in parallel to your own system.
I have sent this mail (or forum-post, wherever you read it) to the most
influential [2] open source games. You can see a complete list here:
http://apps.sourceforge.net/mediawiki/glou/index.php?title=Projects
Ideally this project will be a cooperation between the major open source games
out there. But that's for you to decide. I invite you, game developers and
people interested in open source games, to the Glou (= Game LOUnge) mailinglist,
a place to join the efforts and discuss how this project should look like. You
can join the mailinglist here:
http://lists.sourceforge.net/lists/listinfo/glou-devel
To hear from you would be great. As a starting point it would be interesting to
know...
* what features the lounge system definitely should have
* what features the current lobby system of your game has
* if you feel the need for an open gaming community
* if you would use the system in your game if it is done "the right way"
* and what you think about the idea in general
For now that's everything. Thank you all for your attention and patience :) .
Hopefully we'll see each other on the mailinglist to shape the future of this
project together.
Best regards
- Sven Pfaller (aka Noya)
[1] http://freedesktop.org/wiki/Games
http://wiki.freegamedev.net
http://www.ggzgamingzone.org
[2] This is obviously subjective. Feel free to contact projects that may be
missing and add them to the list.
-
Goodluck with that, Noya.
-
The current Tremulous master server protocol is very similar to the one that is described on your wiki, with the exception that the client protocol is only used for querying server, not for any of the other stuff.
-
Surely, this is an impressive idea.
I would love to see something like this carried out, rather than lost in the hundreds of unfinished apps.
Too bad I can help, because I can't code. :-X
Best of luck,
Whales
-
It would be cool to see this get up and running. One good thing I can think of offhand is that it will promote tremulous greatly.
-
It would be cool to see this get up and running. One good thing I can think of offhand is that it will promote tremulous greatly.
Not to mention that it would bring in more people who might be interested in coding, modding, mapping, etc.
-
if its finished, ill be impressed. But alot of these projects come and go without ever seeing the light of day.
-
This is one of the ones that is either followed through to completion, or is never started.
I can help with graphics. I'm sure a lot of us can.
-
I'm willing to work on the backend for this, I've always thought the protocol could do with a bit of cleaning up :)
-
Does the op even check this topic?
-
If you guys could integrate some sort of party system (like most FPS on the Xbox), that would rock.
-
The current Tremulous master server protocol is very similar to the one that is described on your wiki, with the exception that the client protocol is only used for querying server, not for any of the other stuff.
Great. If you would point me to the documentation of the protocol it could serve as a source of inspiration.
...
I would love to see something like this carried out, rather than lost in the hundreds of unfinished apps.
Too bad I can help, because I can't code. :-X
...
You don't need to be a coder to help. If you like the project idea just follow us on the mailinglist and help us if something comes up that you could do :) .
It would be cool to see this get up and running. One good thing I can think of offhand is that it will promote tremulous greatly.
...
Not to mention that it would bring in more people who might be interested in coding, modding, mapping, etc.
Exactly, that goes hand in hand. A win for everyone ;) .
if its finished, ill be impressed. But alot of these projects come and go without ever seeing the light of day.
Sadly, yes. I won't promise that this is the one project that gets done, who knows, maybe I'll get shot tomorrow ;) . But, at least for the next half year, I can dedicate a decent amount of time to this project.
...
I can help with graphics. I'm sure a lot of us can.
Cool :) . We really appreciate any help. Just join the mailinglist and step up if you want to design something.
If you guys could integrate some sort of party system (like most FPS on the Xbox), that would rock.
I don't own a XBOX, what exactly do you mean by party-system? I guess if it rocks, it'll be implemented ;) .
It is quite hard to keep up with all messages received in 16 different forums / mailinglists. My answers may be a bit delayed ;) .
Goodluck with that, Noya.
Thanks!
-
There is no documentation for the current protocol, but basically it's this:
client -> server:
- getinfo (short info, just for the columns in the server list)
- getstatus (long info, for detailed server info, including list of players)
- connect
client -> masterserver
- getservers (will return a list of IPs, client will send getinfo to all servers to get info and ping)
- getmotd (will return a message if there is one, usually none)
server -> masterserver
- heartbeat (tell the master you exist, master will then query the server with getinfo to check that you really exist)
- gamestat (for tracking game stats)
This is just the out-of-game protocol, which is what you are interested in.
-
The current Tremulous master server protocol is very similar to the one that is described on your wiki, with the exception that the client protocol is only used for querying server, not for any of the other stuff.
Great. If you would point me to the documentation of the protocol it could serve as a source of inspiration.
There is good docs, I just can't find them anymore :(
The code for the master server is in SVN and is pretty simple (I managed to get a fake server listed just using netcat). I have all the client->server and client->master stuff implemented in C++ around here somewhere.
EDIT: On second though, the q3 master server protocol is shit. Don't use it :)
-
There is no documentation for the current protocol, but basically it's this:
client -> server:
- getinfo (short info, just for the columns in the server list)
- getstatus (long info, for detailed server info, including list of players)
- connect
client -> masterserver
- getservers (will return a list of IPs, client will send getinfo to all servers to get info and ping)
- getmotd (will return a message if there is one, usually none)
server -> masterserver
- heartbeat (tell the master you exist, master will then query the server with getinfo to check that you really exist)
- gamestat (for tracking game stats)
This is just the out-of-game protocol, which is what you are interested in.
Thank you, Amanieu. By now we had much time to discuss things and our protocol will mostly look like what you described here :) .
-
. . .
EDIT: On second though, the q3 master server protocol is shit. Don't use it :)
Thank you for the advice ;) .
-
ATM when querying the master server you have no way of knowing how many packets will come back, so just have to wait and hope, which means that a query will take a few seconds even if all the packets arrive much quicker than that, and you don't know if one of the packets got dropped.
Putting the total number of servers/packets in there somewhere would help alot :)