Modelling a Human-Like Bot in a First Person Shooter Game

Modelling a Human-Like Bot in a First Person Shooter Game

Antonio Miguel Mora (University of Granada, Granada, Spain), Francisco Aisa (Rockstar Games, Edinburgh, Scotland, UK), Pablo García-Sánchez (University of Granada, Granada, Spain), Pedro Ángel Castillo (University of Granada, Granada, Spain) and Juan Julián Merelo (University of Granada, Granada, Spain)
DOI: 10.4018/IJCICG.2015010102
OnDemand PDF Download:
No Current Special Offers


Autonomous agents in videogames, usually called bots, have tried to behave as human players from their emergence more than 20 years ago. They normally try to model a part of a human expert player's knowledge with respect to the game, trying to become a competitive opponent or a good partner for other players. This paper presents a deep description of the design of a bot for playing 1 vs. 1 Death Match mode in the first person shooter Unreal Tournament™ 2004 (UT2K4). This bot uses a state-based Artificial Intelligence model which emulates a big part of the behavior/knowledge (actions and tricks) of an expert human player in this mode. This player has participated in international UT2K4 championships. The behavioral engine considers primary and secondary actions, and uses a memory approach. It is based in an auxiliary database for learning about the fighting arena, so it stores weapons and items locations once the bot has discovered them, as a human player would do. This so-called Expert Bot has yielded excellent results, beating the game default bots even in the hardest difficulty, and being a very hard opponent for medium-level human players.
Article Preview


Bots in videogames scope are autonomous agents created normally as opponents to increase the difficulty, challenge and amusement of games. They usually implement Artificial Intelligence (AI) techniques in order to model rational or human-like behaviors, so they are able to perform the same actions in a game as a human player.

One of the most profitable areas in the study and implementation of bots are the First Person Shooter games (FPSs) (Laird, 2001; Thurau et al., 2003; Cole et al., 2004; Zanetti and Rhalibi, 2004; Bakkes et al., 2004). In these games the player can only see the hands and the current weapon of his/her character, and has to fight against enemies normally by shooting to them. They usually offer a multiplayer fighting mode placed in a limited arena. From their first years (early in the nineties) these games have been open to the creation of bots, initially focused in their graphical aspect or appearance, but later giving tools to implement even their whole AI (or a part).

Unreal™ is a very famous FPS series, initially launched for PC by Epic Games in 1998, which had a great success since it incorporates the best multiplayer mode to that date. In addition it started a kind of ‘partial open-source’ philosophy to make it easier the game-modding (modification), including with every copy of the game an editor (UnrealEd), an own programming language (UnrealScript), and a compiler. Thus the user could add or change almost whatever he desires: including scenarios, items, and characters. The AI engine is also open, so the state-based behavior implemented in the game characters can be changed in a number of ways, just having restricted some critical actions.

In this scope, some additional tools have arisen a few years ago, such as GameBots1, a mod (new utility for the game) that allows the control of characters (bots) in the game through network connections to other programs. The game sends character’s sensory information to the client program, which can decide the actions the bot will take. These actions are sent back to the game which interprets them for the bot movement, shooting, jumping, and so on. It was initially released for the Unreal sequel Unreal Tournament™ (UT) and later implemented for UT 2003. Over the basis of that tool, it was later launched Pogamut2, which defines an interface (using GameBots architecture) to program the bots as external Java modules. It was implemented for Unreal Tournament™ 2004 (UT2K4).

These open-source possibilities and external tools are the main reasons why this game environment has been widely considered in the computational intelligence research field (Montoya et al., 2002; Jacobs et al., 2005; Karpov et al., 2006; Soni and Hingston, 2008; Small and Bates-Congdon, 2009; Mora et al., 2010; Esparcia-Alcázar et al., 2010).

This work is also embedded in the UT2K4 environment, and uses Pogamut for implementing a bot which we have baptized as UT Expert Bot (E-Bot). Its behavior (AI) is modelled as a Finite State Machine (FSM) (Booth, 1967), based on two levels of states. It describes a complex set of rules, which are based on the vast knowledge of an UT2K4 Spanish expert player. It has been modelled according to his experience, including several tricks, as the humans players do, in order to achieve a better behavior in the game.

Thus, this paper proposes a human-like approach (i.e. based in human knowledge to simulate his/her behavior), included in an emerging research area in recent years. The presented model includes some advantages over other FSM-based approaches (as the standard bots in Unreal are, for instance), such as the consideration of primary and secondary states, or the use of some experience-based actions.

The bot has been designed to fight in the classical 1 vs 1 Death Match mode, following the international rules of the competition.

A set of experiments has been performed, in which the bot has combatted against the standard bots of the game, and also against different types of human players. The results show a very good performance in both cases, showing the expected limitations when facing human experts.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 13: 2 Issues (2022): Forthcoming, Available for Pre-Order
Volume 12: 2 Issues (2021)
Volume 11: 2 Issues (2020)
Volume 10: 2 Issues (2019)
Volume 9: 2 Issues (2018)
Volume 8: 2 Issues (2017)
Volume 7: 2 Issues (2016)
Volume 6: 2 Issues (2015)
Volume 5: 2 Issues (2014)
Volume 4: 2 Issues (2013)
Volume 3: 2 Issues (2012)
Volume 2: 2 Issues (2011)
Volume 1: 2 Issues (2010)
View Complete Journal Contents Listing