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 ]