The Next Generation FlexBot Project

Stability. Power. Counter-Strike.

What is The Next Generation FlexBot Project?

The FlexBot 1.0 release provides a well-defined interface for autonomous agents to operate within a standard Half-Life multiplayer "deathmatch" environment. The system has proven to be a useful test bed for AI techniques, with behavior-based techniques being used to build bots that exhibit human-like behavior in combat situations. The platform has also proven to be stable, with uptimes often ranging in the hundreds of consecutive hours.

Building upon this success, the next generation of FlexBot will support more complex goal-based scenarios in Counter-Strike, a popular Half-Life MOD, while providing a programming interface that more broadly applies to similar FPS-style games.


  1. Rebuild the system from the ground up for increased performance, reliability, and flexibility. Such a rebuild should eliminate nagging technical problems that are difficult or impossible to resolve in the original version.
  2. Port FlexBot to the Counter-Strike environment. Counter-Strike requires more intelligence than the "see-turn-shoot" reactive model that works so well in a Half-Life deathmatch and should provide more interesting problems for agent AI. See FlexBot CS for more information about the Counter-Strike port.
  3. Design and build a hierarchical control system whose higher-level components can be reused with other games in the FPS realm. Although low-level motor control interfaces must be tailored to a specific gaming environment, it should be possible to design higher-level interfaces that are effective in similar environments.

Hierarchical Control Architecture

Technical details

Control modules will be implemented as language-independent shared code libraries. A modular, "stackable" architecture will be imposed (and enforced) for control modules at any level. There will be three types of control modules, each of which corresponds to a layer in the hierarchy described above: Reactive, Deliberative, and Meta/Reflective. These layered modules will be interchangeable with other modules designed for the same control layer, meaning, for example, that a single Meta layer module would work with any Deliberative layer module that is loaded into the hierarchy below it. The system will be built for compatibility with the Windows dedicated server and client, as well as with the Linux dedicated server.

Major project tasks

  1. Specification of interfaces between the Environment and Reactive process layers, between the Reactive and Deliberative process layers, and between the Deliberative and Meta/Reflective process layers.

  2. Implementation of actuators and sensors in the Counter-Strike environment (see FlexBot CS).

  3. Implementation of functional framework for hierarchical structure and interfaces.

Potential roadblocks

There are several potential roadblocks that may be encountered. Because Counter-Strike involves more complex goals than a simple deathmatch game, defining logical low-level sensory interfaces related to these objectives may prove difficult. It may also prove time-consuming to define a single interface that can generally apply to the entire realm of FPS games due to varying types of goals, interactions, and physical models across gaming platforms. Maintaining cross-platform (Windows and Linux) compatibility will also increase development time somewhat.

Possible future directions

The infrastructure created for this project should open up many avenues for future exploration. Possible directions include:

  • Meta layer integration with QRG reasoning software

  • Improving intelligent performance of extremely low-overhead Reactive control systems such as behavior-based techniques

  • Dynamic team-oriented tactical control via multi-agent Meta layers

  • Creation of interchangeable "personalities" for various niches in the control hierarchy (e.g. a "Rambo" Reactive module that "shoots first and asks questions later" vs. a "Recon" Reactive module that surveys the scene and quietly passes observations up the hierarchy as long as it remains undetected)

  • Development of passive or interruptible logistical planners for the Deliberative layer that are suitable for real-time game environments

  • More powerful implementation of the open-ended extension module architecture available in the original FlexBot (e.g. for widely-dispersed, multi-modal monitoring and control capabilities)