VISAB-ORG / VISAB

VISAB is a standalone utility to visualize artificial intelligence agent behavior in games.
1 stars 0 forks source link

VISAB

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:

  1. 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.
  2. Headless Mode: This mode starts only VISABs HTTP-API.

Known issues

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.

Extending VISAB for a new game

  1. Create SessionListener by inheriting either SessionListenerBase or ReplaySessionListenerBase (if you also want a ReplayView)
  2. Create the Statistics POJO (and a Image POJO if you need a Replay View)
  3. Create a VISAB File by inheriting BasicVISABFile
  4. Create a MainView containing a Tabcontrol with the view types you want to implement as tabs.
  5. For each of your specific view types create a View + ViewModel pair with your ViewModel extending VisualizeViewModelBase. Call VisualizeViewModelBase 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());
    ...
    }
  6. 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.