CustomTF

A modification of Team Fortress, which is in turn a modification for Quake, written by Bill Kerney, AKA Shaka[UVM]. It allows players to mix and match weapons, armor, speed, and special abilities from all of the different classes in Team Fortress. Originally it was just limited to the items in Team Fortress, but has since then evolved considerably, using the same general framework to offer a number of new items to buy. Generally speaking, players are given $10,000 ($11,000 on many servers) with which to build a class, and may rebuild their class as often as they desire, returning as the new class after the next death. All of the stock Team Fortress classes are still in the game, for players who want to get into the game quickly.

There have been many branches of code of CustomTF over the years, such as AussieTF, ExcessiveTF, Prozac-TF, and so forth, with close to ten coders who have submitted major sections of code to the project (see "list of authors" below). Currently, [CP]Often's Prozac-TF is considered by Shaka to be the 'official' active branch of CustomTF development, and Shaka has resumed working on the code.

Winning
The game, like with Team Fortress, is usually played in rounds lasting between 30 minutes and an hour, with the player or team with the most points (frags) winning the match. Players are allowed to sell their frags for more money to buy equipment, but this often puts them so far behind on the scoreboard, that even with a better class, they often cannot retake first place. This also introduces a slight RPG element into the game, where the more "experienced" players during a game are rewarded with better weapons at armor (albeit at a high cost to the scoreboard, limiting a players desire to upgrade). At any one time, a player may have a total build value of no more than +$5,000 over the normal build limit (at a cost of 50 frags). If the person ever rebuilds, the excess money is lost. This, again, is intentionally discourages people from upgrading, as anti-classing can become a serious issue when you can't rebuild.

History
Prior to working on CustomTF, Shaka[UVM] had released a few mods for quake, including the Evisceration Server for TF (February 1998) and MercTF. EviscTF was a complete rebalance of Team Fortress and introduced some new infokeys, like the ability to redirect clients to another server (which would later get incorporated into CustomTF), and gave new special abilities to each of the different classes. MercTF added a new class, a new weapon (a combination rifle/grenade launcher very similar to the weapon used in the later game Half-Life), and associated sounds and skins. It was developed in conjunction with sound and art guys from clan *GOP*; the Mercenary class design was based on *GOP*Fervor's experiences in the US Army. These mods were done in early 1998, and had moderate success. EviscTF was notable for a new class, the "Scavenger" which could pick up weapons dropped in backpacks off dead players' corpses, allowing them to use that weapon. They only started with a tranquilizer gun (though beefed up in power) and a detpack, and had to kill players or find dead bodies to become more powerful. Since they had a very limited ammo supply, they were constantly switching between whatever weapons they could find -- this ability to mix and match weapons from different classes led to the development of CustomTF several months later.

The nucleus for CustomTF developed during a conversation with Daedalus[UVM] on expanding the Scavenger class in EviscTF. While it started with the general idea of, "Wouldn't be cool if you could play a sniper/engineer?", the conversation eventually turned to the question of if it could be possible to mathematically compute the 'values' (explicit or implicit) used by Team Fortress Software to balance the classes. Since the scout and medic were so much weaker than the other classes, it was argued, high values must have been placed on their speed and healing abilities, respectively. Together, the two Clan UVM members sat down and worked out the linear algebra for solving these values, using some arbitrary starting points -- a total point value of 10,000, with the points being allocated, very generally, a third each to weapons, armor/health, and miscellaneous. A calculation was run, and the numbers from this solution can still be seen in the mod today.

After working out the theory behind it, Shaka[UVM] (who was a junior in the computer science department at UC San Diego at the time) got the itch to code it pretty badly, and worked three straight days breaking down Team Fortress into its component parts and writing a general framework for building new classes. Daedalus was instrumental in helping test and debug the software (and would continue to work on the mod through the end of 1999). At the end of the three days, CustomTF was fully feature complete, with all the components of the classes in Team Fortress able to be bought.

CustomTF debuted at a LAN party for Clan Erinyes (CE) at [CE]-Atrocity's house. Clan Erinyes included [CE]-Tyr, one of the map makers for Team Fortress software. The mod got a lukewarm reaction at first (since nobody wanted to switch away from the mod they knew), but after trying out combinations of the different classes for the first time, one of them asked where they could buy it. =) Atrocity was a system administrator for one of the largest ISPs in San Diego, and put up the mod on the popular CTSNet server.

[At the time, the license agreement from Team Fortress software was that people could mod their code however we wished, but were to limit themselves to running the modded code on only a *single* quake server on the internet. The author of MegaTF, Ambush, announced his disregard for this agreement, and Team Fortress Software in general, which lead to the split in the TF community between CustomTF and MegaTF. CustomTF was on a single server for over a year, until Shaka got permission from Team Fortress Software to run it on as many servers as he wanted. The CTSNet Server and WhippingBoy[DP]'s famous Runway Server became the two largest CustomTF servers at this time, with over 10,000 man-hours a month being played on each server. Even after Counterstrike's release in 1999, and the subsequent decline of Quake1 servers, these servers had more man-hours per month than the largest Counterstrike server, through mid-2000.]

CustomTF eventually became the largest mod for Quake1, with most activity today (2007) in QuakeWorld taking place on CustomTF servers of various flavors. An active community has formed around it, and still supports it to this day. With the advances in graphics in Quake1 clients (adding shaders, realtime lighting, and modern particle effects), the game now looks like a modern first person shooter. Layered over the incredible QuakeWorld networking engine, which still hasn't been rivaled, it is much faster and more responsive than any other FPS in the modern day -- due to the performance of the networking engine, characters in QuakeWorld move two to three times faster than in comparable games like Half-Life 2 or Counterstrike, and their motion is much smoother as well.

Version History

 * Version 1.0. CustomTF was released to the public on 6/3/98, for both Quakeworld and normal Quake servers, with both normal and cooperative versions available. The source code was made available to the public, with the sole caveat that the code would not be used in any MegaTF servers. CustomTF's release made news on Bluesnews, PlanetFortress, and other sites, and the server(s) became very crowded.

The first version of CustomTF was feature complete, with all of the aspects of the different classes available for purchase. Several minor versions were released through the summer which fixed some bugs, and then new features began to be added on a regular basis starting with Version 1.4.


 * Version 1.4. 9/26/98. The first major new ability was the ability to convert sentryguns into turrets at a cost of 80 metal, which were much harder to kill since they were attached to the ceiling. Two new grenades were added at the same time, the frag grenade (which was an attempt to make a more 'realistic' nail grenade) and the krac grenade (a metal and armor destroying grenade), which was the answer to teams that built too many engineering items, and exploded on impact, making it possible to kill turrets.

One of the primary selling points of CustomTF for a long time was that it had no special sounds or models to download -- it made use of little known models and sounds when it needed something new -- and had no new commands to memorize. Over time, as the mod became more complex, some new art, sounds, and commands were added, but even now these things are consciously kept to a minimum, so that the learning curve is as simple as possible for regular TF players.


 * Version 1.4.1. 10/10/98. The influx of new players made it necessary to impose some sort of griefing penalty, since [CE]Atrocity believed in allowing teammates to damage each other, for balance reasons. Version 1.4.1 added the famous teamkill curse, which turns a player purple and spins him around to make him nauseous, while disabling his ability to attack at all and setting his health to 50. His teammates can now shoot him at leisure, and when he dies, *he* loses a frag and respawns on the spot, making it a very bad idea to piss off teammates with assault cannons. Teamkillers who continue to grief get automatically banned and redirected to a MegaTF server. Added suppot for TF2.9 teamplay settings.


 * Version 1.5. 11/6/98. Special armors were made available for purchase (i.e. kevlar armor for half damage from bullets), and the Assault Cannon was rebalanced as it was in EviscTF -- the gun now shoots two cones of fire, in an oval pattern (wider horizontally than vertically). The first cone is rather narrow and long ranged, the second cone is wider and more short ranged. This makes the Assault Cannon a better weapon (since it spreads less vertically), and a more interesting weapon, as aim becomes more important, and its possible to hit people far away (though at a slow rate). The Ammo Backpack and Bandoliers were added, and if you bought both, you got an extra detpack.


 * Version 1.6. 11/30/98. Introduced the ability to sell frags to 'upgrade' your class.


 * Version 1.7. 6/14/99. Major update. Added most of the jobs in the current mod, including the Judoka and Warlock, though in a preliminary form. Added Tesla Sentries, which were inspired by C&C: Red Alert, and designed to let engineers be more thoughtful and intelligent in their building behaviors, by tailoring the defenses to their specific needs.


 * Version 2.0 8/22/99 (Pascal's Day). Major release. Finished all the jobs, including the Guerilla, who can lay mines, the Chaplain (inspired by the Arbiter in Starcraft) who can make his nearby teammates invisible, and the Thief, who can hide in shadows. Added hover boots.

A few minor releases to fix bugs followed.


 * Version 2.1 12/8/99. Added tesla turrets, added in some cosmetic improvements from KKMay, the administrator of the Aussie Labyrinth CustomTF server, and incidentally, the author of KKQCC and KKQWSV, which fixed the limits on QuakeC that CustomTF had been running into -- the mod was getting so large, that it was overflowing various hard limits in QuakeC, and randomly crashing. For a while, development was slowed down because the authors were having to remove a chunk of code for every chunk we added in. The mod actually didn't have much fluff in it, so "unimportant" sections of the Quake code were removed, and many repetitive blocks of code were rewritten as functions, which made the module better, from a software engineering point of view, anyway.
 * Version 2.2 2/6/00. Major Release. Rebalanced a lot of items (notably, the EMP grenade was greatly weakened), added overcharge mode to the lightning gun (ala the plasma pistol in Marathon and Marathon 2). Added in the verbal taunts from EviscTF. Rebalanced the stock classes, giving them all new toys and jobs and such.


 * Version 3.0 4/19/00. Major Release. Added a lot of new content to be bought, including laser guided rockets, cluster rockets (inspired by anime), the light assault rifle, gel armor (to protect from krac and melee attacks). Added the ability to adjust a player's damage based on his ping (would tweak + or -10% based on the player's ping). People can name their demons. Added admin commands, which are sub-system operators who can kick or ban players. Allowed starting money to be edited. Super Teslas. Tinkering. Teleporters. Security Cameras. New status bar. Ceasefire command. Better speed cheat checking. Most of the engineering stuff was added by Blog (Craig Hauser), who was a big fan of defensive games, and would later fork the code to make AussieTF, which was very engineering-heavy, with force fields and other such nonsense.


 * Version 3.0.9 7/25/00. Minor bugfixes followed the 3.0 release. Added the verbal warning "FIRE IN THE HOLE" when a person's detpack is about to explode. Kracs disarm detpacks. A number of tweaks to the tesla followed during this period, led by Whitewolf and Cyt0.


 * Version 3.2 10/7/00. Hardcore mode was added, which gives you only three lives per round, and a single cap wins. Light damage mode was added to make people live longer. Could be used in combination with hardcore mode to make it more interesting. Added the ability to summon grunts and shamblers. Added the uber-keen observer mode, where you can fly around the map right when you connect by using the mouse button (or whatever you have for +attack). You bounce off walls, but can push through them if you aim right into them. EMPs scramble detpacks. Medic and Chaplain behavior altered in regards to summons and grunts, with some work by Melon. Added "uncustom" command to undo a 'custom' or 'upgrade' command you accidentally gave.

This was the final version of the original branch of CustomTF. Development was continued by AussieTF, Prozac-TF, and other groups. Prozac-TF was based off of AussieTF, and is now the official branch of the CustomTF code.

List of Authors of the Code

 * Shaka[UVM]/Bill Kerney
 * Often[CP]
 * SB-Tech
 * KK-May/Rod May
 * Blog/CH/Craig Hauser
 * Melon
 * Whitewolf
 * Pulseczar
 * ]PhrostByte[
 * Randomer
 * Cyt0

mod

 * AGR (Attackers Go Red)