This article appeared in Quake   This article appeared in real life  

Faust_BiTBUSTER_vs_4_Reaper_Bots_on_DM6

Faust BiTBUSTER vs 4 Reaper Bots on DM6

Fighting Reaper Bots on DM6: The Dark Zone on October 5, 1996

The Reaper Bot is a modification for Quake that adds bot opponents to the game. This modification was made by Steven Polge on October 5, 1996. Reaper Bots have become well known in the Quake community as one of the best and most advanced bot modifications out there, even if it was left in an incomplete state.

The greatest strength of the Reaper Bot is that it learns levels as it plays them. Each bot has their own internal map that creates a sort of "memory" for the AI, thus allowing them to remember where resources are. It knows how to shoot a Shootable Button and acquire a hidden Secret, plus can also press Buttons to reach areas that would be otherwise inaccessible. For example, the Reaper Bot is intelligent enough to know how to get the Rocket Launcher in DM5: The Cistern. The Reaper Bot knows what is inaccessible, meaning it will not continuously try to go after something that is behind a trigger that must be reached elsewhere, nor will it be stuck trying to reach an object it cannot figure out how to get (instead switching to something else). Reaper Bots can also use Wind Tunnels. Note that this "memory" comes with the caveat that they need some incentive to travel from their starting area, which can provide a problem if they find themselves frequently near the best Weapons, resulting in camper-like behavior.

The Reaper Bot has an intelligent list of priorities based on its needs, thus allowing it to get Armor and Weapons as needed while working with its internal map. Furthermore, the Reaper Bot is designed to be able to use tricks such as Circle Strafes to make themselves a lot harder to hit.

When using the Rocket Launcher, the Reaper Bot is careful not to hit itself with Splash Damage when fighting around corners. They also gauge the value of dropping from a platform and how much it will injure them, plus avoid falling into Lava or Slime. They can also swim in Water, Reaper Bots will avoid drowning as often as they can, plus will avoid using the Thunderbolt unless they have a Pentagram of Protection. They also know to flee from invulnerable opponents. As Reaper Bots have a high focus on self-preservation, they will also retreat as needed to gather more resources. All of this makes a Reaper Bot a harder opponent to defeat, since the number of suicides will be less extreme than with other bots of the time. They can also Telefrag each other or players, plus can be Telefragged. The Reaper Bot also changes Grenade Launcher trajectory based on the gravity.

Note that the Reaper Bot has multiple skill levels, set by setting the Difficulty. This setting controls the accuracy, ability to track opponents, speed of firing after it has already fired, how often it gets stunned, how fast it takes to react, and whether the bot is smart enough to lead the player's attacks. The author was very particular about ensuring that the Reaper Bot never cheated, every action the Reaper Bot can do is one that a player could also do. Movement speed is based on the player's movement speed. With the great amount of intelligence, skill 0 manages to be about on par with skill 3 of BotSkin, making these bots far more challenging on higher skill levels.

Reaper Bots can be added with a simple impulse key. Note that once added, however, there is no way to remove a Reaper Bot unless the server is restarted. The bots will be retained between levels, meaning more will not need to be added in, and a limit of 16 has been set similar to the maximum number of players a server can hold. This prevents packet overloads and other instabilities.

Scores are calculated by using the formula (2 * Kills) - Deaths - (2 * Suicides). Hitting the button to show scores features a detailed breakdown. Bots and Players are separated into their own respective areas, which are in turn separated to showcase the amount of times they killed an opponent versus how many times they died. Suicides are also calculated separately from deaths. Players can alternatively use the Classic Score System, which does not multiply values by 2. This latter system can be particularly useful when used alongside a frag limit, due to the scores being based off of that value. Unlike earlier bot modifications, the Reaper Bot can hit a frag limit and win a match. Note that, due to the need of an impulse to see the scores of the bots, this can lead to the level ending prematurely without the player having an ability to see what the final results were.

The player can also turn on and off Limited Observer Mode at will. In this mode, the player is unable to pick up resources or attack opponents, but can move around and observe the Reaper Bots as they fight each other. Said Reaper Bots will ignore the player while in Limited Observer Mode.

Teamplay is supported by the modification. All bots added via Impulses 205 and 208 will belong to a bot-only team. The player can use Impulses 101-115 to set bots on their own team, said bots will have the same color and use the same name as the person that generated them. Note that colors only work right in DOS Quake, GLQuake and similar hardware accelerated ports will not display colors. Similarly, there are many messages that will not display outside of DOS.

While the Reaper Bots are highly intelligent in comparison to past bots, they are not perfect. Examining their actions can prove that they can get confused and roam in circles while trying to navigate levels. This is largely in part due to the design; Reaper Bots are made in such a way that they generate paths in a cache while also trying to cut down on the number due to performance concerns. Bots with dedicated paths, as in ones designed specifically for a level, would be more reliable and less performance taxing; the downside being that the original game was not made for bots with mind and thus every level would need to be modified to support paths. This means that the Reaper Bots often are seen as one of the best options without resorting to bot specific maps; allowing the player the ability to play any Deathmatch level. Note that bots made with dedicated levels that were older than The Reaper Bot, such as the Eliminator CBot Engine, tended to have issues with navigating levels even with dedicated mapping.

Reaper Bots also can grab Weapons that are not physically near them, fire at a faster rate of fire than the player (meaning a player facing a Reaper Bot with similar gear is bound to die unless they avoid more shots), and tend to gang up on the player instead of each other. To compensate for aiming, the Reaper Bot gets more Super Nailgun Nails than a normal player. T

The Reaper Bot does not like it when "sv_aim" is changed from its default value of 0.93. Messages will continually spam about the issue.

Note that The Reaper Bot was left in an incomplete state. While plans for 1.0 were made, the last version was 0.81. Polge refused to hand out the source code, meaning in turn that progress of The Reaper Bot stopped when Polge stopped having an interest in said modification.

Regardless, The Reaper Bot became the standard by which all other bot modifications were measured. Steve Polge later went on to design the Bots for Unreal and its sequels; he focused a lot on customization abilities. Furthermore, due to designing the game from the ground up with bots, he was able to make the bots more intelligent by utilizing paths that did not need to be calculated on the fly.

Impulses

  • Impulses 101-115 - Limits the number of bots and players to a certain number (between 1 and 15); not counting the player (meaning 15 is actually 16 in a server). Also adds the maximum number set; note that the number cannot be decreased once added. With teamplay on, all of this is disabled, and instead becomes values to determine the number of bots on the player's team.
  • Impulse 200 - Next Skin
  • Impulse 201 - Previous Skin
  • Impulse 202 - Sets MultiSkin support. It toggles between off/normal/skill. Skill means that bots with a specific Difficulty will have a specific skin. For example, Nightmare bots use Max, while Easy bots use Duke Nukem.
  • Impulse 205 - Adds a Reaper Bot.
  • Impulse 208 - Adds four Reaper Bots.
  • Impulse 210 - Scores.
  • Impulse 211 - Removes all bots from a level.
  • Impulse 212 - Turns on Limited Observer Mode.
  • Impulse 214 - Updates Bot calculations (in the event server variables such as gravity and movement speed are changed).
  • Impulse 215 - Verbose Mode (displays information about every action the bot does)
  • Impulse 216 - Turns off Verbose Mode.
  • Impulse 218 - Restricted Mode (Only the first player on a server can use the new impulses outside of scoring).
  • Impulse 219 - Super Restricted Mode (No clients can use the new impulses outside of scoring; the values cannot be changed on a listen server and can only be changed by the host on a dedicated server).
  • Impulse 220 - Classic Score System.
  • Impulse 221 - Tells bots on your team to change to your color. Should work automatically, but this is a fail-safe.
  • Impulse 222 - Show the top 3 scores, preventing the user from needing to open the Console.

Gallery

Version History

Beta 0.81 - November 17, 1996

  • Fixed some issues with 0.8 including odd teleporting and items being found in odd locations.

Beta 0.8 - November 16, 1996

  • Added Impulse 211 to remove all active bots from a level.
  • Added Impulses 221 and 222.
  • MultiSkin support now works properly.
  • Dedicated server support.
  • Bots automatically adjust skill based on the success or failure rate of the player.
  • Bots on a higher Difficulty now move faster.
  • Difficulty is now fractional, meaning there are even more levels of complexity for the AI.
  • Nightmare bots are now more lethal, being better able to aim and strafe.
  • Bots lower than Hard have reduced up/down vision.
  • Easy bots cannot strafe to entities, they need to turn towards them.
  • When changing levels, Reaper Bots now retain their Difficulty level.
  • Runs away if it seems logical to do such.
  • Can now prioritize opponents, choosing who is the best to attack in a situation.
  • Chases opponents for limited amount of time. Higher skill levels means they are more likely to continue pursuit.
  • Better movement in Water.
  • Better jumping AI.
  • Bots now have "hearing" and can react to nearby noises.
  • Bots now understand that the Thunderbolt has a limited range.
  • Will now side-step to avoid continuously running into each other or walls.
  • Limited Observer Mode is now a toggle, freeing up impulse 213.
  • The player is no longer invulnerable in Limited Observer Mode in the event a Reaper bot was alerted. Previously it would endlessly fire on a player.
  • Can handle going through Teleporters more, as well as general path-finding.
  • Edict management prevents crashes due to no free edicts.

Beta 0.7 - October 20, 1996

  • Message informs player that Reaper Bots exist in game upon entering level. Also informs player about teamplay and the number of current bots.
  • Introduction now works properly, Teleporters now don't change Difficulty mid-game.
  • Random delay added to the spawning of each bot. This was done to prevent loops where they constantly frag each other.
  • Restructure of AI's goal mechanics.
  • Better AI in general; AI less likely to die due to Lava now. They can also navigate Wind Tunnels now.
  • Route caching, AI can now remember routes to some extent. The author notes that currently it doesn't do much, but will be substantial in the future.
  • AI now can use Moving Platforms, staying on them until the next target, and can time jumps onto them.
  • Strafing functions properly.
  • Bots now try to take advantage of Splash Damage, meaning they will fire at enemies around a corner with the attempt of using radius damage to kill them.
  • Bots will back up before using the Rocket Launcher.
  • Bots no longer get stunned by the Nailgun.
  • Changing the level in any way except through the Console will respawn all bots.
  • Bots can trigger the end of a level if they hit the frag limit.
  • Teamplay support added. It is currently simplistic in nature, meaning friendly fire is always on even though your teammates appear to bleed when shot.
  • Added impulses 218-220.
  • MultiSkin support added. Does not function properly however.
  • Observers can no longer pick up Weapons.
  • Skill 0 is easier, bots fire at a slower rate and pause movement between shots.
  • Added warning upon each bot respawn if sv_maxspeed or sv_aim is not set to the default values.
  • Fixed bug where bot could be in Lava or Slime without taking damage.
  • Fixed spawn point bug.
  • Fixed bot visibility in Water.
  • Added an additional .CFG file for some common aliases.

Beta 0.6 - October 5, 1996

  • Official release
Community content is available under CC-BY-SA unless otherwise noted.