Chapter 7. Analysis and Understanding
In any serious AI engineering process, the two first phases are analysis and understanding (or equivalents). Here, we lay the foundations for the rest of the AI development by describing what we already have, what we're trying to do, and how it's generally done. This is good software engineering practice generally, but it's especially important for the AI as the creation of behaviors is not as easily managed as software.
The analysis phase aims to investigate the game environment, the engine, and existing software used for the development (a.k.a. the platform). When the game engine is being developed in parallel with the AI, the analysis takes into account its design document instead—with little impact on the AI analysis. The understanding phase uses the high-level requirements and goals to analyze of the problem at hand, irrespective of the game engine and for the sake of the AI development only. Both stages are relatively informal, because we deal with English descriptions.
It's vital to spend some time on this for all problems tackled. Already at this stage of the development, we should have such thoughts on paper—or even in digital form. It's imperative to write them down somewhere (for instance, along with the development log) because they'll undoubtedly come in handy, and prevent us from forgetting them later—thereby wasting time revisiting closed issues.