Friday, May 2, 2008

On making editors

Making an editor or deciding how an editor would be made for the simulator you're making is a useful thing to do to clarify what it is that is important in your universe. Understanding more about the process of making an editor and the role of the editor is vitally important in any development of artificial intelligence, physics or other simulations in other domains.

Edits in the editor ideally should result in a directly observable and understandable effect in the simulation. This means that the visualization should be designed to reflect the effect of the edit, or alternately, the only edits allowed should be the ones meaningful in the context of what is being visualized.

Suppose I'm looking at making an editor for the AI behavior of the soccer players in BallGame.

Something I may wish to edit in this world is the decision logic of the AI team when assigning roles.

If I don't make any changes to the way the game is presented, it will not be very apparent at all what the effect of my changes are. Conversely, where there are changes in the behavior of the players, it will be unclear how and why the edit I just made is responsible.

One visualization that may illuminate the effects of the edit may be to visualize how frequently some decision paths are taken versus others. The decision tree can be rendered as a graph, and proportionally bolder connections can be drawn for the paths that are taken more frequently. Another is to contrive simple situations to exhibit the new designed behavior, and see if it works as intended.

The goal of the visualization is to reveal causal relationships among events that have emerged as a result of the edit. The author of the edit already knows the causal relationships the author has explicitly designed, however the author won't know what other causal relationships have also hitched a ride as the side effects of the edit.

If we see that an edit causes oscillating behavior, we want to see explicitly what the causal chain was, so we can take some steps to repairing it. If we see that an edit causes interesting maneuvers to happen, we want to see explicitly what the causal chain was, so that we can learn something new about the emergent behavior of the soccer players.

Particularly, we want to see that the causal chain we found wouldn't have been possible or logically valid before the edit. In this way, we can make new discoveries.

Set up the same world without the edit, reveal that the causal chain cannot occur as before.

Sometimes, we want to study the behavior of a complex system over the course of a long period of time. Basic statistical analysis is ideally suited to this, because it can provide a brief summary of a large body of data.

How many times did the event occur?
How long between events?
Are the delays between events evenly spaced, or randomly spaced?
Were there periods of even spacing?
What else tended to happen during these times?
Are there any soccer players that always had posession?
Are there any soccer players that almost never did?

Thats enough rambling for one post.

0 comments:

Post a Comment