In video games, a bot or drone is a type of artificial intelligence (AI)–based expert system software that plays a video game in the place of a human. Bots are used in a variety of video game genres for a variety of tasks: a bot written for a first-person shooter (FPS) works differently from one written for a massively multiplayer online role-playing game (MMORPG). The former may include analysis of the map and even basic strategy; the latter may be used to automate a repetitive and tedious task like farming.
Bots written for first-person shooters usually try to mimic how a human would play a game. Computer-controlled bots may play against other bots and/or human players in unison, either over the Internet, on a LAN or in a local session.[1] Features and intelligence of bots may vary greatly, especially with community created content. Advanced bots feature machine learning for dynamic learning of patterns of the opponent as well as dynamic learning of previously unknown maps, whereas more trivial bots may rely completely on lists of waypoints created for each map by the developer, limiting the bot to play only maps with said waypoints.
Using bots is generally against the rules of current massively multiplayer online role-playing games (MMORPGs), but a significant number of players still use MMORPG bots for games like RuneScape.[2]
MUD players may run bots to automate laborious tasks, which can sometimes make up the bulk of the gameplay. While a prohibited practice in most MUDs, there is an incentive for the player to save time while the bot accumulates resources, such as experience, for the player character bot.
Bots may be static, dynamic, or both. Static bots are designed to follow pre-made waypoints for each level or map. These bots need a unique waypoint file for each map. For example, Quake III Arena bots use an area awareness system file to move around the map, while Counter-Strike bots use a waypoint file.[3] Dynamic bots learn the levels and maps as they play, such as RealBot for Counter-Strike. Some bots are designed using both static and dynamic features.