Skip to main content
gamedev.net
🔒 Locked

game server status command

Started by azedor 5 replies 1.7k views
Original Post
azedor
azedor
I am going to write application similar to The All Seeying Eye, Game Spy, QTracker, etc. I need server "get status commands" for most popular mutiplayer games that is command which you send it to game server and in return you get precise status of this praticular game server (ping, map name, players nicknames etc). For Quake 3 its sth like "get status ..." few years ago i found site containing list of this commands for most popular games but i can not find it now. further more i need commands for this games which i can type in console and they allow me to start the game on specified server, with specified player config(optionally). can you help me especially with server status commands ? where i can find them ? i think finding commadns to start a game with parameteres from console will be easier, but right know i need queries about server status because its essential part of my project.
hplus0603
hplus0603
You'll need to contact the developer (or perhaps the fan forum) for each of the games that you want to support, and determine whether the kind of support you want to integrate can be integrated. This is a huge undertaking, and a single person doing it for any large number of games seems overly ambitious.
enum Bool { True, False, FileNotFound };
azedor
azedor
I was hoping someone know the site i found few years accidentaly. it contained server status commands for most popular games.

what i'm going to do isn't acutally tough, just send get status query to server, parse response, present it to user friendly GUI and allow him to connect to the game on server which he picks.

at least i want do it for few games, but firstly i need these commands, i'm pretty sure these are somewhere freely available and there is no need to contact game developer.
jpetrie
jpetrie
Quote:

at least i want do it for few games, but firstly i need these commands, i'm pretty sure these are somewhere freely available and there is no need to contact game developer.

There is no defined schema for how the information you want is transmitted to and from the game client application. Every application (or more specifically every network layer implementation) will do this slightly differently. Some games may not even support the kind of behavior in a way that you can easily map to the system you want.

Services such as GameSpy were not all external. GameSpy used to provide an API to developers that would be used to build GameSpy support into the game.

In order to get the information you need, you're going to have to contact the developers directly and ask for it, or reverse-engineer the protocols used by each game yourself. This is likely what was done to compile the corpus of existing information you discovered a while ago.

It is, unfortunately, not quite as simple as you'd like.
azedor
azedor
hmm, i thought it's much simpler, these command were normal text commadns like :"get status", and server returned string containing server status,

what about such idea, i will run lets say QTracker and packet analyzer (Ethereal) and i should be able to see these commands each time when i try refresh server status, does it make sense ?
Palidine
Palidine
Quote:
Original post by azedor
what about such idea, i will run lets say QTracker and packet analyzer (Ethereal) and i should be able to see these commands each time when i try refresh server status, does it make sense ?


Yes, you can certainly reverse-engineer it using that technique. However, messages to servers are rarely sent in english plain-text, they are more often sent in some compressed or encrypted binary as are the responses. There may also be information buried in the request packets that is hard to recover: like an authentication key or token or something that is received when the player logs on.

I can confirm that GameSpy did not do this by your technique. They provide developers with code that the developers then build into their games so that games communicate their status directly to the GameSpy servers. Similarly, they provide code which allows GameSpy to launch the game and such.

-me
azedor
azedor
I found this very helpful.
http://int64.org/docs/gamestat-protocols/

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.