Unreal Tournament 2003 servers can be queried with the Gamespy style
protocol (-gps) or with the native UT2003 protocol (-ut2s).  The
query port offset for Gamespy is usually 10.  The query port offset
for the native UT2003 protocol is always 1.

The gamespy response returns a team name for each player, the UT2S
response does not.  Don't be concerned because the team name is the
same for all players, and seems to be map name followed by the string
".xTeamRoster"   Probably a bug in the UT2003 gamespy support.

The UT2S response includes a player global statistics id.  The gamespy
response does not.  However, this id is zero for all players on both
demo and retail servers.  I guess they don't have global stats implemented.

The protocols return similar but different servers rules.  In UT2S the
rule names are all lower-case.  In gamespy, they are mixed-case.  Some of
the rules overlap, but each returns info not available from the other
protocol.

In the UT2S response, the "Mutator" rule (the only one with mixed-case)
may appear multiple times.  If you use $(RULE:Mutator) only the value of
the first Mutator will be output.

UT2003 servers frequently do not return information for all of the
players.  I don't know why.

UT2003 master server lists are available from Epic Games.  Here's the
description from the Unreal Technology page:
---------------------
We have made server lists available via HTTP for both demo and full version
UT2003 servers so that 3rd party server query tools can add UT2003 support.

http://ut2003master.epicgames.com/serverlist/full-all.txt
http://ut2003master.epicgames.com/serverlist/demo-all.txt

These URLs contain a tab-separated list of server IP, game port and
query port for all servers in our master server. The query port is the
port number the server is listening on for UDP queries. The query format
and response is exactly the same as UT 1.  The source code to the game
server's query responder is in the UdpGameSpyQuery UnrealScript class.
---------------------
