------------------------------------------------------------------------------------------------ DiMeBoX CreepCam V1.7. An update to Jeff Preshing's (aka Pointdexter) Spectator patch to provide full match support, written by Simon Byrnand (aka Mandrake) & Michael Billing. (aka PhaNToM) ------------------------------------------------------------------------------------------------ [ latest version available at http://members.xoom.com/DBmandrake ] Description ----------- This patch was designed to combine the excellent spectator mode of the original Creepcam with some of the essential match-related features that people have come to expect thanks to patches like ClanRing, including: * Synchronised starts with a pre-match warm-up time and countdown * Ability to remove artefacts for matches, (Quad etc) * End of match statistics, giving you a more detailed breakdown of scores At the same time we tried to keep this patch as simple as possible to set up and use. This readme file mainly describes changes and new features since Creepcam V1.0 by the original author, please refer to the file creepc10.txt for details on the basic spectator features of this patch. Whats new, V1.7 (released 24/5/98) --------------------------------- Considerable work has been done to improve the camera view as much as possible, this includes: * Camera turning rate has been increased by 30% - which should be noticeable when the camera has to do a 180 degree turn to bring a player into view * The turning of the camera when following a single player (quasi-chasecam mode) is less jumpy * When tracking two players that pass (nearly) overhead each other, the view shouldnt snap around quite so quickly. * Sending viewing angles to spectators has been improved thanks to some code and advise from Robert Field. (Author of the Frogbot) * Camera no longer brushes through walls allowing you to see through the walls (GLQuake) * View changes smoothly between above/below the player when the player enters/exits water. * Prioritization of which secondary target to lock on to when several players are visible is much improved. Now takes into account whether players have the rocket launcher, lightning gun, quad, pentagram, and their distance to decide who to look at. This should be especially noticeable when spectating TeamDM games. * Dead players are no longer tracked as secondary targets - as soon as the player dies the view will swing around to the next most interesting player, or revert to chasecam if there is no one else in view. * Constant name display of the player being followed, eg "Following: Mandrake", also, if there are three or more players in the game, when a secondary target is being tracked, their name is also displayed just below, eg "Tracking: PhaNToM". Additionally, in teamplay mode the word TRACKING changes colour depending on whether the tracked target is a friend or enemy. (white for friend, orange for enemy) Constant name display can be turned off with the NONAMES command. * The regular 2 minute display of the TAB scoreboard has been removed - in this day and age where people either have GLQuake (score display on the status bar) or a demo macro where you can display scores with F11, I felt it wasn't needed anymore and just got in the way... * GOQUAD, GOPENT, GORING and GOTEAM commands. If you want to use these, you should bind them to keys. Then when you press the bound key, it will switch directly to the player with the QUAD/PENT/RING or for GOTEAM, the next player in the team you are currently following. Other features/changes: * All important game settings can now be preset by the server, and dont require the clients to use commands such as NOQUAD. This is acomplished by adding up the values for the options you want, and setting the SAMELEVEL server variable to the total. Those options you select will then be the defaults each time a level starts. Please see the section on SAMELEVEL settings for more info. * Because the game settings can now be pre-set by the SAMELEVEL variable, each time a client connects to the server, all of the game settings are displayed to the console automatically. Just bring down the console to see them. (You might need to scroll back to see all of it unless you use 640x480) you can redisplay this information later with the STATS command. * Some new status (eg ready, notready, teamkill etc) messages :-) (Thanks to Centaura and Mr SelfDestruct) also some Quad-kill messages, ala Quakeworld. * PRACTISE command - use this during pre-match setup, and it puts you into a mode where you have full weapons/ammo and are invulnerable, much like during the 60 second countdown, except it remains in that mode until you use the command again to exit it. Good for fooling around. * Team telefrags are now counted correctly as a team kill, which subtracts from your score, instead of adding to it :) (This was a bug in the original Quake code) * The NOTICK command is now a per-client command. This means each player/spectator can now disable it without affecting anyone else. It also means you dont necessarily have to use it before a game starts now. * During teamplay games, a message is displayed each minute along with the time left message saying what team is leading the other team by how many frags. (The top two scoring teams if there are three or more teams in the game) * The after-game scoreboard has been expanded to include player efficiency, and team kills. (which were previously counted as suicides) Additionally, a message sumarises how much the winning team won by after a team game. * Shootable secret doors are disabled during the countdown period (eg the door to the LG on DM6) not really a biggie this one....:) * Random respawning code has been improved so that you NEVER respawn in the same place twice in a row. (Good for all you "hey-look-I've-just-been-respawn-killed-3-times-in-a-row-again" people :) * Mapvoting feature. The CHANGEMAP command can be used by players (not spectators) to select and vote for a map change. There must be a majority vote for the change to succeed, and you cant use CHANGEMAP once a match is underway. * NOQUAD/PENT/RING commands are now toggles, to tie in with the new SAMELEVEL setttings. (For example, you might have SAMELEVEL set to disable quad's by default, but then use the NOQUAD command to toggle them back on once you enter the game) * Numerous bug fixes, one crashing bug (very rare), miscounting of number of players after using changelevel command, occasionally displaying incorrect time left messages (eg 1 minute left twice, or 0 minutes left) hopefully all fixed :) Whats new, V1.666 (released 12/3/98) ------------------------------------ This version was brought out to include a few last minute features and changes to be used as the official 1 on 1 & Team DM patch for Auckmaggedon 2. * FORCERESPAWN - this is a new pre-match setup command that when enabled will prevent players from camping while dead. After dying, if the player does not respawn manually within 5 seconds, they will be forced to respawn automatically. * Spectator disconnecting sound (suicide sound) removed - I'm not quite sure how this was overlooked before. It has been removed to prevent spectators leaving a game from distracting the players. * If all players disconnect from a game in progress the server is now automatically restarted - this should be handy for a dedicated server with awkward access to the console. * The timing of the minute countdown messages should be much better now. Previously, it was possible under extreme circumstances for the time left messages to get a bit out of step on a heavily loaded server. The total time for the game was always correct, but the messages were sometimes delayed, leading to 1 minute being reported twice and other similar annomolies. This should no longer happen. Whats new V1.4 (released 19/2/98) --------------------------------- After some feedback from testers, two new commands have been added: * NOTICK - Disables the recently introduced once a minute and final 10 seconds tick sound during a match. This command affects ALL clients, and can only be used by a player during pre-match setup mode. * NOVIEW - Some people don't like giving out player-perspective demos of themselves (why I can't understand :) and creepcam effectively allowed you to record a player perspective demo of them from a seperate spectator machine. The NOVIEW command can now be used by a player to disallow spectators from viewing them in player perspective view. This command is a toggle and can be used at any time. This setting is seperate for each player, so it's possible for spectators to watch a game where some of the players have allowed player perspective view, and others havn't. * several bug fixes Whats new, V1.3 - V1.32 (internal test release) ----------------------------------------------- * The single player following algorithm (the one used when only one player is in view) has been improved - it now turns around to look the same way as the player, including up and down. To prevent any jerkiness, the turning rate is smoothed, so the player turning quickly will not make the spectator view turn quickly and become jerky. The dual following algorithm is unchanged - if two players are in view, the spectator view maintains both players in view and ignores the direction the followed player is facing. * An alternative match ending has been added, instead of displaying an intermission screen, the console scoreboard, and then automatically disconnecting, the new ending gibs the players and allows them to stop and chat before leaving the game, similar to clanring. The new mode is activated by starting the server with SAMELEVEL 3. SAMELEVEL 2 will give the old ending mode. * Minute left messages are now orange and make a sound to attract your attention. * Scoreboard bug fixed - in V1.2 if two players got the same frags, it could cause the scoreboard to repeat those two scores down the list rather than displaying the remaining players. * A new client command has been added, "stats". It displays at a glance useful information about the game, which might be handy for spectators joining the game part way through. Whats new, V1.2 (released 12/12/97) ----------------------------------- * First person perspective player view mode! By pressing JUMP when you are a spectator, you can now toggle between the normal external creepcam view, and a new "player view". The player view is exactly that - it is an almost perfect reproduction of the view seen by the player themselves. I believe this is a first for a spectator patch, although the "bot-cam" view in the recently released Omicron bot is very similar. (I had already written and tested this view mode before the Omicron was released) This mode makes it possible to record a first person perspective demo from an external client machine, and be able to freely switch between viewing from different players perspectives, or toggle back to the creepcam external view. * AUTOMODE command - this new command is a toggle that when enabled automatically toggles between the creepcam view and the player view every minute during a match. This is intended for an un-attended spectator machine recording a demo to try and spice up the demo a bit by showing both view modes. It is off by default. Used together with the AUTOSWITCH mode, you can record a good overall impression of a game, without switching views and players manually. * The after game stats screen is now sorted into numerical order based on frags. (Thanks PhaNToM!) Also the stats are now displayed even if you're not using the matchmode features. * A few minor bug fixes. In particular one very annoying bug was fixed where the number of players connected was sometimes counted incorrectly allowing a match to start before all the players were ready. Hopefully this problem is gone for good. :) Whats new, V1.1 (released 25/11/97) ------------------------------------- * Two modes of operation. Normal mode is much like the original Creepcam, providing the spectator functions, while match mode enables all the new match related features. Match mode is enabled by starting or restarting the server with SAMELEVEL set to 2. * The status bar of a spectator now displays the status of the player being followed. Because of this the screen viewsize is no longer changed to fullscreen. (You can still do this manually if you want to) * The "walking through each other" bug is fixed. Previously if you were a spectator watching a particular player and you re-entered the game with the JOIN command, you and the player you were just watching could then walk right through each other and were not able to harm each other. * Quads, Pentagrams, and Rings can be removed before a match. * Randomised respawning ala QuakeWorld 2.0 is included and is the default. You can choose the original fixed order respawning with the RESPAWN command. * SV_AIM is automatically set to 1 to disable auto-aiming. If you REALLY want to re-enable autoaiming (why?) you can do so manually after the level starts, by setting it to 0.93. * SYS_TICRATE (dedicated servers only) is automatically set to 0.025, instead of the normal default of 0.05 to bring rocket jumping and other time-critical effects on a dedicated server into line with listen servers, which typically achieve 40fps. As with SV_AIM, you can manually change this after the level starts if you wish. * NOEXIT 1 is set automatically in matchmode - because you probably don't want to be accidentally exiting the level by going through an exit in a competitive game. Once again, you can manually change this after the server starts. * Deathmatch 3 fixed. Previously deathmatch 3 did exist, but the respawn time for ammo was wrong. (It should have been 15 seconds but was 30) Fixed, so Deathmatch 3 is now identical to Quakeworld 2.0. * Spectators now see the standard intermission view instead of the bizarre swivelling around previously seen. * Clients connecting to the game after a match has started are not able to "gate crash" the game instead they are forced to become spectators, and can join or leave the game as spectators at will, without interfering with the game in progress. * Players attempting to change teams in teamplay during a match are fragged, have their score reset to zero, and have the other players notified. * Full match statistics after a match including team statistics. Installation ------------ 1) Unzip this archive into a subdirectory of your Quake directory called CREEPCAM. 2) Copy the config.cfg and autoexec.cfg files from your ID1 directory into this new directory if you want to retain your mouse and key settings while running this patch 3) Run Quake with the command line option -game creepcam Modes of operation ------------------ There are two main modes of operation in Creepcam. Normal, and match mode. Match mode is enabled by starting or restarting the server with the SAMELEVEL variable set to 2 or higher. If you are going to be using the patch mainly in match mode, you can do this by putting +samelevel onto the command line. Normal mode is set by SAMELEVEL 0. In normal mode Creepcam behaves much like the original version, but with a few improvements like the status bar for spectators. Please read creepc10.txt to find out more about the basic spectator use of this patch. Starting with V1.7, the SAMELEVEL variable has been expanded to a bitfield to control many options. Here are the values: 1 - Use Gib & Respawn game ending instead of the console & disconnect ending. 2 - Enable Matchmode features (must be set for any of the other SAMELEVEL flags to work) 4 - Lock game settings. This prevents players from using the NOQUAD, NOPENT, NORING, RESPAWN, FORCERESPAWN, or PRACTISE commands. 8 - Quad off by default 16 - Pentagram off by default 32 - Ring of shadows off by default 64 - Forced respawning on by default. 128 - Ordered (classic) respawning by default. 256 - Mapvoting (CHANGEMAP command) disabled. Just add up the values for the options you want, and set SAMELEVEL to that value before starting the server. Match mode description ---------------------- Match mode provides everything you need to set up timed and controlled games, either 1-on-1, teamplay, or even free-for-alls. There are three different phases: PRE-MATCH SET-UP This is the mode entered when the server is started in match mode. This is the time for options to be set, and for both players and spectators to join the game. You can move about the level freely, but you only have an axe and cannot kill or be killed. Clients can toggle between players and spectators freely, and leave or join the game. The TIMELIMIT variable can still be changed at this time. In teamplay mode, now is the time you must choose your team by setting pants colour. Doors and buttons can be triggered, but pick-ups cannot be collected. You can use NOQUAD, NOPENT, NORING, RESPAWN, FORCERESPAWN, CHANGEMAP, and PRACTISE commands in this mode, unless they have been disabled from the server with the SAMELEVEL setting. Once all players have connected, players can then start using the READY command to indicate they're ready to begin the game. Players who wish to become spectators should use the SPECTATE command instead. When all players become ready, the server moves on to COUNTDOWN mode. TIP: don't type READY until everyone who will be playing has joined the game, otherwise they may be blocked from entering the game. COUNTDOWN Players are given all weapons and infinite ammo to warm up with, (read: lava pinging and rocket-jumping practice :) and a 60 second countdown begins. During this 60 seconds no further players can enter the game - clients connecting are automatically forced to become spectators instead. The SPECTATE and JOIN commands are disabled. No options can be changed, and you cannot change teams without aborting the countdown. The TIMELIMIT variable is read into a Quake-c variable and stored for later use with the match timer. Pickups still can't be collected. The countdown will be aborted, returning to PRE-MATCH SET-UP if: * Any player types NOTREADY * Any player changes teams by changing pants colour (teamplay mode only) * Any player disconnects from the server. In the case of a player being disconnected from the server, ALL players are reset to the not ready state. Use the NOTREADY command if you need to stop and take a leak, adjust some config settings, or let in a player who hadn't connected before everyone hastily typed READY ;) The last 10 seconds of the countdown include an audible tick to attract peoples attention. Assuming the countdown reaches zero, all players are fragged, all scores are reset to zero, and all rockets/grenades/nails in flight are instantaneously removed to prevent people bombing respawn points with grenades. :) MAIN GAME Once the game starts, players return to normal. Every minute a "match ends in x minutes" message will remind players how long is left to go. In teamplay, the winning teams lead is also displayed. Any new Clients connecting during the game are forced to become spectators so they cant intrude on the game by mistake. There is a 10 second countdown at the end of the game. When the game ends, there are two possible endings. In the normal ending, it first goes to the standard intermission screen for a few seconds, then all clients are disconnected to end demos, and reveal a fullscreen console with a more detailed display of the results. If for some reason you don't see the fullscreen console, but the game appears to have hung on the intermission screen, just press the console '~' key. If 1 is added to SAMELEVEL, the players are gibbed, then they can stop and chat. This ending is useful if the players are not within earshot. Pulling down the console will display the results. The after-game stats -------------------- The output from the stats screen looks something like this: Player Efficiencies Efficiency Kills Deaths Player ----------+-----+------+------ Efficiency - calculated from KILLS/(KILLS+DEATHS) * 100 Kills - numbers of kills you got Deaths - Total number of times you died Player results Frags Kills Suicides Team-Kill Team Player -----+-----+--------+---------+----+------ Frags - the same as displayed on the intermission screen Kills - the number of kills against other players (excluding team-mates in teamplay mode) Suicides - the number of times you kill yourself, by either the KILL console command, rocket launcher against a wall etc, falling in lava/slime, being crushed, or drowning. Teamkills- the number of times you kill team mates in teamplay mode Deaths - the total number of times you died, both kills from other players and suicides. Team - the team number you belong to, which is pants colour + 1. (Only shown in teamplay) Player - the players name. In Teamplay mode the above is duplicated for team stats, where the stats of all the players in a given team are added up. Name refers to the name of the team. Eg Red team, Blue team etc.... Client Commands --------------- There is basic online help available, type CREEPCAM at the console for a list of commands. Here is a more detailed description of the available commands: Help Commands: ~~~~~~~~~~~~~~ CREEPCAM - get help on the basic spectator commands. MATCHMODE - get help on the matchmode commands and SAMELEVEL settings. General Commands: ~~~~~~~~~~~~~~~~~ STATS - displays useful information about the game in progress NOTICK - disable or enable the per-minute and final 10 seconds tick during a match. (Independant for each player/spectator) Spectator Commands: ~~~~~~~~~~~~~~~~~~~ JOIN - become a player. Disabled during a match, or match countdown. AUTOSWITCH - enable/disable autoswitch. When on (the default) if the player you are following is killed, the view switches automatically to the player that killed them. AUTOMODE - enable/disable automode toggling. When on (off is the default) the spectator view is automatically toggled between the players view and the original creepcam view every minute during a match. GOQUAD - switch to the player with a Quad. If more than one player has a Quad, it will cycle between them on each use. If no players have a Quad, it does nothing. Recommended to be bound to a key. GOPENT - same as GOQUAD, except for the Pentagram. GORING - same as GOQUAD, except for the Ring of Shadows. GOTEAM - switch to the next player in the team you are currently watching, skipping members of other teams. (Only works in teamplay) Recommended to be bound to a key. NONAMES - disable the constant display of the names of players being followed and tracked. IMPULSE 201 - Switch directly to player number 1 IMPULSE 202 - Switch directly to player number 2 ........... IMPULSE 216 - Switch directly to player number 16 Player Commands: ~~~~~~~~~~~~~~~~ SPECTATE - become a spectator. Disabled during a match, or match countdown. MY-SPECS - list all spectators watching you. ALL-SPECS - list all spectators in the game. SHOW-REC - toggle the flashing red 'REC' indicator off/on that a player being watched sees. Match related commands (players only) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ READY - used to indicate that you are ready in pre-match set-up mode. Once all players have used this command, the countdown will begin. NOTREADY - returns you to "not ready", and aborts a countdown in progress if one exists. RESPAWN - toggle between random (default) and fixed order respawning. Only works in pre-match set-up mode. Is disabled if the server has locked settings enabled. NOQUAD - Toggle Quads on or off, cannot be used if the server has locked settings enabled. NOPENT - same as NOQUAD, but for Pentagrams. NORING - same as NOQUAD, but for Ring of Shadows. NOVIEW - If you don't want spectators recording player perspective demos of you, this command will prevent them using that view on you. It is independant for each player, and can be changed at any time. PRACTISE - use this during pre-match setup mode to enter practise mode where you can fool about with full weapons and invulnerability. Disabled during locked settings. CHANGEMAP - this command can be used by players to select a map, and then vote on it, if there is a majority vote, the map will change. FORCERESPAWN - when enabled, players cannot stay dead for longer than 5 seconds to prevent camping while dead. Only works in pre-match setup mode. Disabled during locked settings. Spectating ---------- There are 3 ways to become a spectator: 1) Connect with a name of CAMERA. 2) Connect before a match countdown begins, and type SPECTATE. 3) Connect after the match countdown has begun. Pressing fire will cycle through the available players, while pressing Jump will toggle the viewmode between the external creepcam view, and the player perspective view. If the particular player you switch to has player perspective view disabled, you will be automatically returned to the creepcam view. By default AUTOSWITCH is turned on. When the player you are following is killed, the view switches to the player that killed them. If they kill themselves it stays on them. Turn AUTOSWITCH off if you want to control the player being watched manually. IMPORTANT: When you are a spectator, try not to bump your mouse or move it around. Moving the mouse will cause the picture to flick around randomly when you play back the demo - even if you didnt see the movement when you were recording the demo. Some Notes ---------- * MAXSPECTATORS setting By setting the teamplay variable (see original readme creepc10.txt) you could place a limit on how many spectators were allowed. In matchmode, this has been disabled due to a programming decision. Instead, use maxplayers to limit the number of players + cameras during match mode. The camera limit still works in normal mode. * Why is it so jittery when I first watch it? Although this is mentioned in detail in the original readme, its worth repeating here. If you are watching a game as a spectator "live" and you are a client connected to another server, you will probably notice a lot of jitter on the player you are watching, particularly as the camera turns around to follow a player. How much jitter you get depends greatly on the relative speeds (framerate wise) of the server and the camera client. By far the smoothest spectator view when watching live, is if the spectator is running on a listen server. If you have only three machines available, this is the best option, as it gives a relatively smooth spectator view, and equal ping times to both players. If you have a fourth machine available, an even better approach is to run a dedicated server, with both players and the spectator(s) as clients. This approach will give a smoother game for the players, and a smoother spectator view WHEN WATCHED FROM A RECORDED DEMO. However the "live" spectator view will be fairly jittery looking. The moral of the story to get the best possible view is: always record a demo and watch it from that. * Why can't I have a zero timelimit? One of the ideas of the match set-up features is that a timelimit must be decided before a game, and adhered to during the game, otherwise the results can be meaningless....(since similar level players may leapfrog in score continuously the winner depends on when the game is finished) If the timelimit is set to zero, players are not able to use the READY command. If the timelimit is set to zero when the server starts, this is detected automatically, and a 20 minute timelimit is applied. You can change the timelimit just after the server has started as normal, or set it before the server starts. If for some reason you really want no timelimit, just set a very high value like 999, but make sure you set a fraglimit, otherwise you wont see the results screen. Please note that the timelimit is rounded down to the nearest integer, eg setting a timelimit of 3.8 would actually give you a 3 minute game. Therefore the shortest game you can have is 1 minute. The TIMELIMIT cvar is read and stored at the point the last player types READY and the 60 second countdown begins. From then on, any changes to the TIMELIMIT variable have no effect - the timing is done internally to the patch. There is no danger of the Quake timelimit running out before the game starts, or before the match is really finished, because the standard Quake timer is disabled. How does the spectator view work? --------------------------------- For those curious, the creepcam spectator view consists of around 2500 lines of quake-c, with the core algorithm being around 300 lines, not counting all the match related code :) The spectator code is broken into several key parts: * Target aquisition and tracking. * Single Player follow mode * Dual Tracking Mode * General purpose logic Creepcam is always following a player (eg, no intermission cam views, or free-flight views) that you select, but unlike most chasecams, when a second player comes into view it adjusts the camera position and angle such that both players remain on the screen within a +/- 60 degree arc. To do this it constantly scans the list of all players and does visibility testing between the PREDICTED position of the player you are following and the PREDICTED position of each and every potential target. The significance of using predicted positions is that the camera then has time to swing around to the right direction smoothly before the player actually comes into view. The amount of predicition is roughly one second, and since it takes about one second to swing 180 degrees, even in a worst case scenario the camera will arrive in time to see the player emerge. (Unless they come through a teleporter, which is impractical to predict) To prevent the camera from fidgeting if the view to the opposing player is temporarily blocked and unblocked, (for example, players running on opposite sides of an obstruction like some poles) the camera remains locked on a target that has gone out of sight as long as they dont go more than roughly 360 units (about 1 second worth of running) from the last-visible position, without seeing another glimpse of each other. If they exceed that distance without seeing each other again, lock is lost. When there is more than one potential target visible, or predicted to be visible at once, (eg, the player you are following has a line of sight to two other players, or two other players predicted positions) the camera code compares the following aspects of the potential targets in deciding who to look at, and adds up their scores: 128 - Target is in the other team (teamplay mode only) 64 - Target has a Rocket launcher and some rockets, or a Lightning gun and some cells 32 - Target has a Quad 16 - Target has a Pentagram 8 - Target is less than half the distance of the CURRENTLY LOCKED target (if any, and if different) Whichever target gets the highest score is the one the camera will choose to look at, until circumstances changes. (Which could be caused by that player going out of view, dying, or maybe running out of rockets, a more "interesting" player comming into view etc...) Some things are apparent looking at this - * In teamplay, players of the opposite team are ALWAYS more interesting than players of your own team. So it will look at an opposing team member away in the distance who has nothing but a shotgun, even if your team mate standing right next to you has a RL, Quad, and Pentagram :) * When the choices are from people of the same team, people with better weapons/powerups are more interesting than those without. * All other things being equal, (weapons, powerups and team) players that are much closer are more interesting. Once the code decides to lock onto someone, it switches from Single player follow mode (which is a type of smoothed chasecam) into Dual follow mode. If the direction it has to look is significantly different from the one its currently facing, it will do a "fast turn" to get there in under a second. If the player is already looking the right way (as often happens with skilled players) then the changeover from chasecam mode to dual tracking mode can be almost imperceptable. History of V1.1 onwards ----------------------- When I first saw Creepcam some months ago, the way that the view zoomed around to include the player coming into view while still viewing the player being followed made me go "wow!". The Creepcam view(tm) offers an unmatched (no pun intended ;) view of a 1-on-1 match because: * The camera viewing angle is calculated by two different algorithms, one that is used when only one player is in view, and a second that is used when two players are in view. Because the viewing angle is largely decoupled from the players viewing angle, the view is much smoother than most "chasecam" patches, and is not affected by rapid turning of the player being followed. * It always swivels around to include both players in the view, EVEN if the player the spectator is watching is not looking in the direction of the other player. Because of this, the spectator often sees things the player themselves didn't see. This is particularly apparent on a level like DM4. However there were two main limitations with the original which limited its use for competitive games. It didn't give any indications of the status of the players in the game, (eg ammo, weapons, health & armour in particular) and it didn't allow for synchronised starts, so one player would always have an advantage over the other. I emailed Jeff and he gave me permission to work on his Creepcam code, for which I am grateful. This patch is the result. Work began in earnest around the end of October '97 and took about one month to complete. Originally I was concentrating on 1-on-1 features, but PhaNToM convinced me it should have teamplay support as well, and in particular, proper end-of-game statistics, which he offered to code, so in went teamplay support and end-of-game stats. To try and spice things up a little I came up with the idea of the patch making witty remarks when people became ready/notready, changed teams, killed team-mates etc, and Centaura came up with the ones you now see to replace my original pathetic attempts...(hey its the thought that counts! ;) Who are we? ----------- Clan DiMeBoX has 6 members and is located in Whangarei, New Zealand. Current members are: PhaNToM PastorLove HekTiK fremen Mandrake Leester We have a clan web page at http://members.xoom.com/dimebox, e-mail: dimebox@usa.net To get the latest version of DiMeBoX Creepcam, please visit http://members.xoom.com/DBmandrake We also have a collection of 8 maps we made to take to a 200 player national LAN party in October '97 called Auckmaggedon, which can be downloaded from this link: ftp://ftp.cdrom.com/pub/quake/levels/deathmatch/compilations/dimebox.zip They are a varied assortment of deathmatch maps, all different themes and sizes, some good for 1-on-1's, some good for free for alls, some for both, and one that is completely nuts. :) Credits and Acknowledgements ---------------------------- Main credit goes to Jeff Preshing (aka Creep/Poindexter) for writing Creepcam in the first place, and then for letting someone else build on his code. Without his co-operation and original hard work this patch wouldn't exist. IDSoftware - for Quake ClanRing - for a number of ideas about the functionality that a match patch should have and inspiring me to do this patch fremen - for getting me interested in Quake in the first place about a year ago :} PhaNToM - for programming the match stats, providing feedback and ideas, beta testing Centaura - for coming up with the witty in-game remarks, feedback and ideas, beta testing fRAG-MON - ideas, feedback, beta testing, making us all strive to play better by giving us hidings in DM :} HekTiK - for finding the "asscam(tm)" bug. (dont ask! :) beta testing Robert 'Frog' Field - for advice and code to work around some bugs in Quake when sending angles with the FIXANGLE method - which result in a smoother camera view. Feedback -------- If you have any suggestions, or bug reports, please email us. :) Or visit our homepage and leave a message on the discussion page. Whole clan dimebox@usa.net Me compnth@igrin.co.nz or sbyrnand@spider.net.nz PhaNToM michaelb@igrin.co.nz or db-phantom@geocities.com ------------- Simon Byrnand 24/5/98