VISAB stands for VISualizing Agent Behaviour
VISAB is a standalone utility to visualize artificial intelligence agent behavior in video games.
It aims to providing generic utilization and easy modifiability to integrate further games with minimal effort in the respective games. VISAB can be used in two modes:
- GUI Mode: This mode starts VISABs HTTP-API such that data can be received and opens a window using which game data files can be visualized.
- Headless Mode: This mode starts only VISABs HTTP-API.
Nanohttpd is incapable of removing temporary files on windows and throws exception. This does not impact the functional reliability of VISAB, but the exception message will be seen in the console output.
- Create SessionListener by inheriting either
SessionListenerBase
orReplaySessionListenerBase
(if you also want a ReplayView) - Create the Statistics POJO (and a Image POJO if you need a Replay View)
- Create a VISAB File by inheriting
BasicVISABFile
- Create a MainView containing a Tabcontrol with the view types you want to implement as tabs.
- For each of your specific view types create a View + ViewModel pair with your ViewModel extending
VisualizeViewModelBase
. CallVisualizeViewModelBase
initialize
method to read in the concrete file you created in 3.
/**
* Called by mvvmFx / javafx after creating the ViewModel instance, but before calling initialize in the view.
*/
public void initialize() {
super.initialize(scope.getFile());
...
}
- Lastly add your created classes to the classMapping.json file.
Thats it. None of the existing code has to be touched, were just adding new stuff.
Since integration for new games is easy, the most time will likely be spend in implementing fitting visualizer views for your game. For examples check out the existing implmentation for Settlers of Catan or the CBRShooter.