This work shall act as a set of guidelines for plugin design decisions. It shall also give guidance in the visualizer core on what should be improved such that plugins may more easily achieve the goals set forth by this document.
There are several purposes that could be said that the visualizer holds, but above all the purpose of the visualizer is to convey as much artificial intelligence information in the most accurate, succinct way possible. Only when this goal is met, should other features and fluff be worked on.
Other purposes of the visualizer include (but are not limited to):
- PR fluff for attracting new competitors
- Tournament bracket visualization
- Human client for certain games
I’ll go into this more a little later, but the answer is emphatically, yes! In order to properly convey information, your visualizer has to have as few distractions as possible. An ugly visualizer is a distracting visualizer and takes away from giving competitors the ability to easily debug issues with their AI. Likewise, too many visuals can make the visualizer more attractive, but can also distract the competitor, so a balance between beauty and minimalism must be achieved.
Every action that a competitor can issue in their AI through the client must have a visual analogue. Everything from movements and attacks to talking and additional debugging information, if available. In almost every game, all of this information, if conveyed at once, would present information overload for the competitor or there simply isn’t enough screen real-estate to display it all at once. What you want to do, then is prioritize each of these things and maybe assign a time percentage associated with it, which approximates how much time you think a competitor will look at this information for a competition.
Attribute/Event Time Chunk Reasoning Move 95% For this game pathfinding is pivotal and issues with pathing is always critical Attack 90% Attacks are the secondary mechanic of this game Talk 60% Competitors will probably only display talk information when crucial. However, they may not always be looking for this info. Per-unit money 20% Not overly useful to know individual unit moniez constantly. Total money 80% Crucial to end-game winnar Score 80% Same as above, except includes number of bots Territory Control 20% Can be easily seen by just looking at the map, but takes so little space, no reason to not show it. Health 80% Crucial to determine unit deaths.
The above table tells us that we should almost constantly show, in order, moves, attacks, score/total money, and health. Talk is pretty important but could perhaps be toggle-able. Territory control is not hugely important, but takes up minimal screen real-estate. Per-unit money should not be a priority to show on the screen, but should be easily available when needed. Maybe we could make it visible when a unit is selected, or perhaps when it’s being hovered over.
There’s a lot of ways we can show information. You’ll have to rely on creativity for a lot of this, but some of the common ways are:
Visual inspection is priority.
What this means is that if there is something important that a competitor can only see by a click or series of clicks, then you need to redesign. If you have to sacrifice beauty to achieve this, then you should. The visualizer is a tool, not an emotionally driven experience for the competitor. All information that a competitor would want to see more than 60% of the time should be displayed in some way (perhaps even notifying them that something has changed, but no specifics, unless further inspection occurs).