An Introduction to QuakeSpy!

Looking for Low lag, and high frag? Use QuakeSpy!

[ Introduction | Installation | Configuration | Using QuakeSpy | List Tabs | Tool Bar | Other Functions | Credits ]

> Introduction:

> One of the best things about Quake Internet play is the ability to connect and logoff the server at any time you please. This lets system administrators leave their Quake servers online with out much attention. This is probably why there are so MANY quake servers currently online. The problem is finding one you can play on.

> There are several web sites that keep track and list hundreds of Quake Servers all over the net. All of these web site are a great service, but they STILL don't help you find a server that you can play on effectively.

> One of the biggest problems with playing Quake on the Internet is lag, or high latency. Lag is the amount of delay time it takes data to get from the server to your computer, and vise versa. The slower this lag is, the less responsiveness there is in game play, and you won't be able to play effectively as you normally could.

> Your bandwidth plays a major role in this latency issue. It would be ideal to have a T1, ISDN, or the new cable modems, to connect to the internet with. However, not everyone can afford these high speed connections.

> So a typical Quake player has a 28.8k bps (or 33.6k) modem, on a dialup connection to a local ISP. While playing Quake with this setup, there is roughly a quarter of a second delay in the player input, to an actual response on screen. If the lag gets worse, which it commonly does, you'll have a hard time hitting your targets, as well as navigating thru the level.

> You can see how good (or usually bad) your latency is, by typing the command ping from the console, while you're connected to the server. Press the [~] key to bring the console down. The server will list all players with their ping times. Anything above 400ns is usually a bit high to play, especially if the other players on the server have a much better ping response time.

> Using the ping command from the console is a very crude way of seeing if a server is playable or not. It's not a practical solution to find a good server this way, considering there are hundreds of them.

> Enter QuakeSpy.....

> This is where QuakeSpy comes in. Qspy (for short) will measure this lag between you, and all the known Quake servers on the internet automatically. What Qspy does is it downloads a list of servers, from the same web sites that I've mentioned earlier. It then takes this list, and pings out to all these servers, and then it will display a NEW list on screen, listing servers according to their latency. The ones with the least lag are listed at the top.

> Once the list is complete, you can scroll thru the list, and take a peek at what's going on at any server listed. The list itself displays what map is being played, how many players are online, as well as technical information like it's ping time, packet loss count, and the name of the server. It also shows detailed information about the players on the server, and settings on the server itself.

> Then, once you find a server that you think you want to try out, all you have to do is simply double click on the servers name. Qspy will automatically launch Quake, and from there Quake will automatically connect to the server you selected in Qspy. Then you're off!

> Installation:

> To install QuakeSpy, simply UNZIP the QSpy archive into it's own sub-directory on your hard drive. Then make a short cut for QW.EXE to your desktop. This release has been tested and (to the best of our knowledge) will only work with Windows 95 or NT 4.0.

> Most importantly, Quake Spy makes use of MFC42.DLL and MSVCRT.DLL. If you do not have these files in your Windows System folder, then you should get MFCINST.ZIP from Qspy's home page: http://www.panix.com/~sheaslip/qspy

> Configuration: [ Quake Spy | Server Source | Filtering | Quake | Query/Ping ]

> When you first launch QuakeSpy, it will come up tell you that it can't find some data files. Don't worry, it will assume you're running QuakeSpy for the first time. Click OK and the configuration dialog will appear.

> First of all, to use Qspy right away, all you really need is to set up this first dilog box, shown below. This way it knows where your copy of Quake is located on your hard drive. All other configuration sections can be left to their default settings, and QuakeSpy will run fine, and do the job you need it to do.

> Quake Tab
> In the Quake working folder section, enter in the PATH to where your copy of Quake is located. Such as `C:\QUAKE`. This will tell QuakeSpy where your game is located, so it can properly execute the game when you launch it.

> Below that, you can enter in command line switches for Quake. Such as `-nojoy, -nocdaudio` , as well as `-game` mods, and other legal switches.

> Lastly, you can enable a function called Qlist from this section.

> After that, if you wanna start Using Qspy, go ahead and click on the OK button, and fire up your new Quake Server list.

> Keep reading if you wanna dig deeper into the workings of QuakeSpy.

> Filtering
> Now click on Filtering Tab. This is were a lot of the organization power of QuakeSpy can be configured. From here you can set a maximum ping time, so any servers with a ping time beyond the amount you specify, will be filtered out of your list. The next option below that is a filter for packet time outs. Packet time outs is another EVIL that promotes lag. It's best to set this at 1, so that all servers that are prone to packet lost will be filtered out. The next one lets you only include servers running certain maps. You can enter in e1 into this field, so that only servers running the shareware levels on Quake will be listed. Then there's the EXCLUDE section, where you can filter out servers if they are either full or have too few players. Your can exclude servers with to many players, by a specified amount. You can exclude servers running a specific map, or episode.

> Server Sources
> Now click on the Server Sources tab. This section is were you give QuakeSpy it's sources to download server listings. There are three built-in sources you can use. Stomped, Decide, and the Pipo Web site. Below that you can add in custom URLs for alternate web sites that have server lists. Such as:

> ][ronman's list: http://ironman.planetquake.com/server.shtml
> Definitive Quake server list: http://www.bujin.com/cgi-bin/qls.pl
> You can add as many of these source sites as you want to.

> Query/Ping
> Now click on the Query/Ping tab. This section sets up how QuakeSpy will ping the servers. To figure out the terminology, a ping is a measurement of latency (i.e. lag), and a Query is when Qspy will ask the server for information.

> The first option Query multiple servers let's Qspy ping a user specified number of servers at the same time. This helps speed up the process of compiling your list.

> Just below that is the maximum time Qspy will WAIT for a server to respond to a query. 800ns is fine.

> In the ping method section, there are some important things that should be made clear. There are two different types of pings. Ping Query, which is a standard ping, and UDP pings, which is a little more direct. The standard ping doesn't ping the Quake Server directly, but whatever system on that computer that will respond to a ping, like a router. This measurement will give you an idea on at least how well data will flow from your system that machine, but since it doesn't directly ping the Quake server, it won't give you an idea on how well play ability will be while playing on the server. However the UDP ping can give you this information, but with the UDP ping option set you won't be able to use the multi-threading ping function to speed up the process (this is different from the multiple query function).

> The next section will tell Qspy how many pings it will send to the server. You should have at LEAST 4 ping, since anything less will not give an accurate ping time. The reason is ping times very from moment to moment, so what Qspy does is average out the response, which is what you'll see in the list. Also from here you can set a timeout setting, telling Qspy when it should time out at a specified setting. 800ns works fine.

> Also in this section is the settings for Never Ping. From here you can configure how many times, and days Qspy will automaticaly place a server on the Never Ping list.

> Quake Spy
> Now at last, click on the QuakeSpy tab. This section isn't necessary to configure, but you should get familiar with it. These options will make Qspy do certain function upon other actions. You have Qspy automatically refresh your server list when you first run Qspy. You have have Qspy exit it self from memory, when you launch quake, so you can free up some ram.

> Also you can enable sound events. There are three different sound events. A wav sound file will be played when you launch quake. Another will play with your stop Qspy in the middle of a refresh, and there's a sound event it will play when Qspy is finished with compiling the new list. You can change these to other wav files if you wish, and you can test the sounds from that dialog.

> The last section refers to the Busy Server Redial. When you're re-dialing a full server(s), this section will tell Qspy what to do when it finds an open spot. You can either have it alert you that a spot has opened up, Or you can have it automatically launch Quake, and connect to the server.

> Using QuakeSpy

> Once you have everything all configured to the way you want it, Click on the button on the tool bar. This will start up QuakeSpy to compile your first server list. A minute or so later your list will appear. Here are some things you can do.

> By default the server list is listed according to the best ping times. What you see listed is the name of the server, ping time, the number of packet timeouts (T/O), the servers IP address, map being played, and the number of players currently online, and MAX number of players that's allowed on the server.

> Highlight a server, with one mouse click. At the bottom of the screen, it will list the players currently online (if any) with their uniform colors, their Frag count, and how long they have been online that server. To the right of that lists the rules of the server. This shows a FRAGLimit, timelimit, Timeplay mode, and other game settings on the server.

> In both the server list, and the player list, you can re-sort the list. For instance you can resort the list in an alphabetical order, by simply clicking on the Server Name header in that column. The list will then re-sort. The same can be done for each column, Ping, T/O, IP Address, Map, and Players. Sorting the players list can be done in the same way. By the players name, frag count (default), or connect time. The rules box can't be sorted, doesn't need to be.

> List tabs

> There are 5 tabs that help sort out your list.

> This will list ALL servers that you have in memory.

> This lists only the servers that have passed your filters.

> This list servers that didn't pass your filters, but this list will not include no ping servers.

> This is a special select group of servers that YOU chose to be here so you can easly find them on the list, and use. If you found a server you REALLY like to use, simply highlight that server, right mouse click, and a special pop-up menu will appear. From there select add to favorites, and that's it. To remove it from the favorites list do the same thing, and click on remove from favorites from the pop-up.

> This list shows servers that haven't been responding for some time. As you use Qspy from day to day, if it encounters a server that hasn't responded for an X amount of times, for an X number of days, Qspy will automatically place that server on the Never Ping list. This means that when you re-fresh your server list, Qspy will NOT bother pinging these server, since they aren't responding anyway. This should help speed up compiling new list as time goes on. You can configure this function from the options dialog under the Query/Ping tab.

> You can also manually add or remove servers from the never ping list. Simply highlighting the server, right mouse click to show the pop-up, then choose either to add to never ping or remove from never ping.

> The tool bar

> Load/Save list
> These will load and save your server list to your hard drive. For the most part, this function is done automatically when you start up, and close Qspy. But you still may want to click the save button incase your computer locks up, loose power, or something weird happens.

> Print list
> This button will print the server list of the list currently displayed on screen.

> Copy to Clipboard
> This button will copy the current displayed list to Window's CLIPBOARD, so you can PASTE this information into other applications. Also of you have one or more servers highlighted when you press this button, only THOSE servers highlighted will be copied to the clipboard.

> Add a server to list
> This lets you manually add servers that aren't already on your list. Simply click this button, and enter in an IP address. The server will be queried, ping, and then placed somewhere on the list. It wont necessarily appear on the list currently displayed though.

> Delete a server from list
> This will delete a server highlighted in the list. You can highlight more than one, if you wish to delete servers in groups.

> Launch Quake
> This will Launch quake and login to the server that's currently highlighted. You can accomplish the same function by double clicking on the server's name on the list.

> Update Server List
> This button will make Qspy start a bran new list from scratch. It will query all your server list source sites (ie Stomped, Pipo, etc.) and compile a new list. This doesn't make Qspy forget whatever flags (Favorites/ never ping, etc) a server may have.

> Refresh
> This button will refresh only the server(s) you have highlighted on screen

> Refresh Every server
> This button will do a complete re-fresh of the current server list in memory. It does NOT query out to your Server list sources to compile a list from scratch.

> Find Player
> This is a great feature! This lets you FIND players who are already online. Use this function AFTER you have done a complete refresh of your server list. This is what the search function looks like below.

> Simply type a players name, or partial name, and Qspy will do a string match, listing out whatever matches it finds. You can also optionally have Qspy re-query all the servers when you do a player search, as well as search for partial names.

> A very handy function when you wanna look for your Quake buddies.

> Busy Server Redial
> This button is used for when you REALLY want to get on a particular server, but the server is already filled to the maximum number of players the server can have. Simply highlight the full server (or others you can do more than one) and click on the redial button, and sit back and wait. Qspy will then start to continually query these servers looking for an open spot. On it does fine one, it will either notify you, or automatically launch quake. You can set this behavior in the options under the Quake Spy tab.

> Options
> This button will take you to the configuration dialog window.

> Stop
> This button will make Qspy STOP whatever function it's doing, usually used when you want it to stop pinging/querying servers.

> Other functions:

> Server searches
> You can search for servers from the drop down menu: EDIT / FIND, or by pressing CTRL-F, and this dialog will appear:

> | From here you can search for servers either by their name, IP number, or map name. You can continue the search for the next match by pressing F3.

> Qlist
> Once you have launched a game from Qspy, if you type Qlist from the console, a list of servers will appear. The number of servers you'll see is dependant on how many servers you set in the configuration dialog. In the Qlist server list that you'll see in the Quake console, each server is preceded by a S#, from S0 to 10, or whatever you had set the list size to. The server that you connected to from Qspy, will have a (L) next to it, referring to that being the last server you were on. But if you want to connect to any of the other servers on that list, simply type in it's S# code, and it will log you in.

> Credits

> ## Authors of Qspy:

> > Joe QuakeSpy Powell (Team Leader)
> > email:jep@sclsis.navy.mil (preferred) or joe@jax3b2.navy.mil
> > IRC nickname: QSpy

> > (10 years of C, 5 months of MFC C++ programming experience)

> > The initial idea for QSpy came from me. Tim got me started with the network code. Then, I took it from there and developed it into the app we all know and love!

> > Tim Cook (Network Guru)
> > email: cookti@jaxmail.navy.mil
> > IRC nickname: QSpyNet

> > (9 years of C, 3 years of C++ programming experience)

> > Tim wrote most of the networking code in QSpy. His latest contribution has been the multithreaded queries! Yea Tim! Tim is the C++ guru of the team. In the earlier versions of QSpy, I'd wander over to Tim's cube every now and then and ask, "Hey Tim, how do you do this in C++?"

> > Jack morbid|teamqspy Mathews (MFC, UI Guru)
> > email: jack@hiscomputer.com
> > IRC Nickname: morbid

> > (5 years of C, 1.5 years of MFC C++ programming experience)

> > Jack is the newest member of the QSpy team. His initial contributions have been some resizing enhancements, splitter bars between the list controls, player list (colored icons and sorting) enhancements, and rules list implementation. Since neither Tim or I had ever done anything with MFC before QSpy, we were both learning as we went along. When Jack offered to help us out, we jumped at the chance!

> ## Quality assurance Beta Testers (a.k.a. Guinea Pigs):

> Craig DaBooger Kirby
> Monty FRAGaLOT Gonzales
> Jay Jafar Farr
> Matt HarPax D'Elia
> Andy Highlander Welch
> Jeremy \Z\e\U\s\ Herrig
> Eric Funny Brandel
> John Wehr
> Stephen blue Heaslip (of blue's Quake Rag)
> Sean Redwood Martin (of Redwood's Quake Page)
> Tom Woofer Grandgent (of Shake N Quake)
> Steve sCary Gibson (of sCary's Quakeholio)
> John Choryoth Guthrie (of Quake Command)
> Rick ^DragOn^ Brewer

> Toolbar graphics:
> Jack morbid|teamqspy Mathews
> Ryan Jester Findley
> James NecroBoi Ariz

> Help File:
> Kev Zob the Slayer Brown

> BIG thanks go out to Stephen Heaslip of blue's Quake Rag for the space and administration of the QSpy web site: Blues News http://www.bluesnews.com Your best source for up to date Quake news!

> Thanks for the QSpy logo go to Devicer devicer@earthlink.net

> Help File by Kev Zob the Slayer Brown

> QuakeSpy Now! button, seen all over the internet, by Monty FRAGaLOT Gonzales

> This HTML document by Monty Gonzales. (c) 1996 /\\.A.G. Online Publishings