A bot is a computer-controlled player with an AI that accesses the game's internal data so as to know where it is and where its targets are found. Bots can be designed to attack monsters (for single-player or cooperative games), to attack fellow players (for deathmatch), or both.
Though a bot is normally a player, some mods feature "coop bots" that are in fact friendly monsters scripted to have attacks similar to those of the player.
The rise of bots started in the mid-nineties, when DeHackEd was released. Besides modifying existing monsters, it was capable of producing a player that would attempt to simulate a real player. To make these usable in multiplayer, a modified IPXSetup.exe would be used, along with a specialized batch file.
When the Doom source code was released, programmers started to develop their own bots, utilizing one of the new source ports such as DOSDoom or Legacy. These were source modifications, making use of the existing feature set of a port and combining it with new bot-related code and often a nodes table. As such, these source modifications thus had more features onboard than their non-bot equivalents.
In later years, the necessity for separate bots in the form of source modifications declined, as major ports like Skulltag and ZDoom would integrate their own bot code in the main codebase, removing the need for separate bots. Currently, new bots are now based around a content definition language like DECORATE, ZScript or ACS or a mix of these. This enables wide-range support by source ports.
List of bots
- ImmyDM (March 13, 1995)
- Computer Deathmatch 2.0 ( ) (March 3, 2013)
- Computer Deathmatch 4.0 ( ) (November 19, 2018)
- Flame Warfare ( ) (June 9, 1995)
- Grab That Throat! ( ) (August 30, 1996)
- Master (April 4, 1997) (Early DeHacked based version)
- Mr.Doom's Solo Deathmatch (November 7, 1997)
- Deathmatch Warmup ( ) (January 7, 1998)
- SoloDM (May 9, 1999)
- Thug Autoplayer (August 18, 2000)
- FakeBot ( ) (November 2, 2021)
- TDBots (ACS/DECORATE based) (Eternity, MBF, PrBoom+, Skulltag, ZDoom/GZDoom/LZDoom, Zandronum)
- DecoBot (ACS/DECORATE based) (ZDoom, Zandronum)
- ZetaBot (ZScript based) (ZDoom family)