Tourney Maker 1.0
By David 'crt' Wright (wrightd@stanford.edu)
-------------------------------------------------------------

Overview
------------
Tourney Maker is a simple program designed to help organizers plan and run tournaments. While
aimed towards Quake/Online game tourneys it can be used for just about any competition
(Pinewood derby, Basketball tourney, etc).
Some of its features:
* Up to 256 players/teams, individually named
* Round Robin and Elimination style tournaments
* Single, Double, Triple, or higher Elimination tournaments supported 
* Supports multiple servers/arenas/tracks/courts, automatically assigns matches
* Logging of matches/results
* Source included (see below)

Instructions
---------------
Place the tourney.exe file anywhere you want and run it.
It will ask you a series of questions to help set up the tournament.

The first question is how many players/teams you have. Now, for the program to work correctly,
you must do the following: If you are running a Round Robin tournament, you MUST enter an even
number (2,4,6,8, etc). If you have an odd number of players, just add 1. If you are running an
elimination tournament you MUST enter a multiple of two (2,4,8,16,32,64). Again, round up to the
nearest value.

You will be given the option of setting individual names for each player/team. If you say NO,
players will be referred to by number (0..max - 1). If you say YES you will be able to enter names
for each player. If you had to round up and have extra players, just put BYE for their names.
PLAYER NAMES CANNOT CONTAIN SPACES! If you want first/last names, use an underscore. Max length is
32 characters.
     
Next you will be asked for the number of servers per round. If you will have more than 1
server/arena/court/whatever available at a time, enter that number here. Matches will automatically
be assigned to a server. If you only have 1 server you can enter anything (>0 please).

You now have the option to log the matches/results to a file (tourney.log). This is HIGHLY
recommended when running a real tournament, since it is your only hope of recovering if something
messes up. This file is created if it does not exist or appended if it does, so you may want to delete it
between each tournament.

The next option is the tournament type. In Round Robin tournaments every team plays every team
once. Two teams can tie, in which case you may want to do a runoff manually.
The elimination tournaments are run in a method similar to the charts that have been used for years.
Matches are run until a person has a certain number of losses and is eliminated. Note that I say
"similar." Please do not write me saying that it does not match up with your favorite chart. There are
many ways to run these types of matches, and I have chosen one that is both fair and easy to code.


After entering all the info, the first round of matches will be displayed. If you are running a large
tournament, these may not all fit on the screen. In that case, open the tourney.log file and read them
off from there (you DID turn on logging right?).
It will ask for the results of each match. You will only get one chance, so make sure you enter the
correct winner. You must enter the winner number, NOT the name.
If one of the player numbers is higher than your total number of players (or
its name is BYE) then be sure to let the other person win. If there are two
bye players, pick one.
The current standings are displayed after each round. For elimination tournaments these are sorted.
They are not sorted in Round Robin tournaments until the final round. The format is: Player(wins,
losses)

Notes
-------
This was written strictly as a programming exercise in preparation for the tournament mode of
Rocket Arena 2. I am only releasing it because I think it is a useful and needed utility for running
tournaments at small (or large) LAN parties.
As such, I did not spend a lot of time on error/idiot checking and robustness. I have tested it as much
as possible and it seems to be bug free, but no promises. I have never run a 256 player 6 elimination
tournament so I can only say it SHOULD scale ok. If you find something that seems like a bug,
please report it (but make sure you have read all these docs first).
For other programmers interested in doing tournaments I have included the source code. Please read
the info below and contact me before using it in any other programs/projects. It is not designed to
plug directly in to the Quake2 DLL architecture, but it is ANSI C and should be adapted fairly
easily.

Copyright and Disclaimer
---------------------------------
This program executable (TOURNEY.EXE) is distributed as freeware. It may be used in any
commercial or non-commercial tournament without modification free of charge. I would appreciate
a mention on your Lan Party web page if you have one.
The code (TOURNEY.C) is distributed for reference purposes only. Specifically, you may use the
ideas and algorithms in your own programs/mods, but you may not create derivative works based in
all or in part on the code without my written permission (don't be afraid to ask).

          BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
     WARRANTY  FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
     APPLICABLE LAW.  EXCEPT WHEN  OTHERWISE STATED IN WRITING THE
     COPYRIGHT HOLDERS AND/OR OTHER PARTIES  PROVIDE THE PROGRAM
     "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED  OR
     IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE
     ENTIRE RISK AS  TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
     WITH YOU.  SHOULD THE  PROGRAM PROVE DEFECTIVE, YOU ASSUME THE
     COST OF ALL NECESSARY SERVICING,  REPAIR OR CORRECTION.

Contact Info
---------------
David may be contacted via e-mail at: wrightd@stanford.edu
This program may be download from the Rocket Arena page linked below.
Web pages for other programs he has written include:
KeyGrip for Quake - http://www.planetquake.com/keygrip
Rocket Arena - http://www.planetquake.com/servers/arena
