Diganostic ToolsWhy is he punching his friend?
This is a list of in game tools i have found useful to add to the game. The toggle and select this keys can be used for the most common ones and a in/out game console for the others.
Every AI programmer need to assert her/his domain over all keys to the right of the Return key as soon as possible. Try to get the F1-F12 keys to when no one is looking.
Inc/Dec game speed: Modify the game speed to make it more easy to see what is going on with the mobs.
Free Fly: A free fly camera that pause the game.
Immortality : Toggle the mobs to ignore damage so it's possible to fight them without them dying. Everything up until the loss of hit points should be done so that one can see all bleed effects when the enemy is hit.
Ghost: Toggle that all mobs ignore the player so it's possible to run around and study them.
Select: Make it possible to have a AI selected so other commands and visualizers can use it. Arrows work fine for that with Left/Right to select AI, up to deselect and down to select the player.
Visualizers display some form of state of the mobs. To support this one need the ability to draw text and lines. The display of the lines should be buffered so one does not have to redraw them every frame unless needed. Use flags to toggle this so more then one can be active at the same time.
Unit Id: Display the engine id of the selected mob so it is possible to know where to look to edit him.
AI State: Display the ai state info. Ex: For a state machine display the current state
Show Goals: Show the goal the mob is going to and the path he will use to get there.
Move History: Save down positions for mobs and make it possible to show where the mob has been in the past.
Show Target: Show the current selected target for mobs by drawing a line from it to it's target.
Show Search Space: Display the search space by drawing the navmesh or what else is used. Color code the areas or flags or make it possible to switch the ones drawn.
Show Search: Show the path finding searches. Useful to see what nodes have been checked.
AIGPW1: 2.1 Building an AI Diagnostic Toolset