home

about

team

projects

papers

downloads

manual

messageboard

FlexMonitor

A system to dynamically load game-monitoring modules for FlexBot at run-time.


Summary

The monitoring of real-time game state information during a FlexBot game can be a powerful tool for bot developers and bot users alike. In the early pre-release versions of FlexBot, all game-monitoring functionality was hard-coded into the FlexBot system. While this approach allowed a game-monitoring tool to be created, it limited the user to using the provided monitoring tool. Additional features required modification of the FlexBot source code, forcing the developer to work with a non-standard build of the FlexBot system that was not easily upgradeable. No clean architecture existed for implementing custom monitoring capabilities.

FlexMonitor provides a framework for the user to create custom game-monitoring modules that can be loaded by FlexBot at run-time. Any number of FlexMonitor modules may be loaded simultaneously and all modules run in parallel. FlexBot updates each FlexMonitor module on every think cycle with the current state-information for the game's players (human or bot). Because modules are compiled into DLL's, their implementation is language-independent. FlexMonitor modules are simple to develop because they can easily be compiled in Microsoft Visual Studio using the provided template code.


Control Flow


Details

  • The FlexMonitor architecture is built into the FlexBot Beta 1 release.
  • Modules are compiled into DLL's.
  • C++ template code provides the framework for creating a simple module.
  • Compiled FlexMonitor module DLL's are placed in the FlexBot/dlls/FlexMonitor/ directory. All modules in this directory are loaded by FlexBot at run-time.
  • Modules can be easily distributed for use by other users without recompiling or reconfiguring any parts of the system. The module will work on a different FlexBot-equipped machine as soon as the user drops the file into the appropriate directory.
  • There is no limit to the number of FlexMonitor modules that may be running concurrently.
  • The FlexMonitor system is complete with a well-documented API.

Existing FlexMonitor Modules

BigBrother
The original game-monitoring tool for FlexBot, BigBrother displays a top-down strategic view of a FlexBot game within a Flash application. Games may be viewed locally or remotely. Features of BigBrother include representations of player positions, orientations, and health within a map-like view.
[ Homepage | Screenshots ]

Herodotus
Herodotus is a module that records FlexBot games in a standard file format for post-game processing by any custom utility.
[ Homepage ]

  gdunham@northwestern.edu