Quake 3 server discovery - is it doable?
We want to enhance the game server discovery for an online game so people can find a game server they want to play on faster and show off Tycho being useful. I have reviewed 9 games for their suitability for this Tycho game demo.
The final stages of this review process are making sure that I can actually work with the games, it’s one thing checking their license is compatible and another to work with these largely undocumented complicated pieces of code. This it has always worried me because I have never tried to to something on this scale with someone else’s code, let alone something written by a bunch of hardcore games programmers.
There are three things I to be able to do in order benchmark a games current implementation which is necessary to do a comparison with the Tycho version:
- Run my own master browser or what ever the game has for the registry of game servers.
- Run dedicated servers and get them to publish into my master browser.
- Get a game client to query my browser.
I also have to be able to understand how the implementations of all of these things work. Anyway you can guess what comes next… Here is a screen shot of all that shit working for Quake 3 on my PC at home.
Top left is the game server, I did not build it but I do have the source. Top right is the master browser which I did build from source. Bottom left is the console output from a game client which I have the source for but didn’t build. And bottom right shows the game client having discovered the game server via the master browser. Some of this was tricky stuff, it would not have been possible without access to the source code to work out how some features were implemented.
I should be able to start working out how best to implement my own version soon, assuming Mark agrees with my game review. The plan was always to build a stand alone program to do the server discover and launch the client how ever, if there is time (after I have done it that way) I have got to have a crack at modifying the game client GUI itself because it would very 1337.
As a note for me here are the commands needed for the server and client.
/opt/quake3/quake3.x86 +set sv_master1 jaws.ninja.me.uk +set dedicated 2 +set net_ip 192.168.0.16 +exec server.cfg
/opt/quake3/quake3.x86 +set sv_master2 jaws.ninja.me.uk