При создании любой серьезной системы ИИ инженерам нужно пройти через два этапа: этап системного анализа (analysis) и этап разработки технических требований (understanding). Эти два этапа являются основополагающими для остальных работ по созданию системы ИИ, поскольку после их выполнения становится ясно, что мы имеем в распоряжении, какую систему нам нужно создать и как (в общих чертах) мы это намереваемся сделать. Такой подход можно (и нужно) применять при создании любых программных систем, однако для системы ИИ его использование особенно важно, поскольку получение необходимого поведения несобственного персонажа — это более сложная задача, чем создание обычной программной системы.
На этапе системного анализа изучается модель окружающей среды игрового мира, игровой машины, а также программных систем, которые будут использоваться в процессе разработки (все это в совокупности обычно называют платформой). Когда разработка игровой машины идет параллельно с разработкой системы ИИ, этап системного анализа выполняется на основе эскизного и (или) технического проекта игры. В таком случае все отраженные в проекте свойства и особенности разрабатываемого движка рассматриваются в контексте требований системы ИИ. На этапе разработки технических требований выполняется постановка задачи создания системы ИИ в терминах теории и практики ИИ и без привязки к особенностям игровой машины. В большинстве случаев оба этапа протекают неформально, поскольку после их завершения мы получаем словесные описания и формулировки требований к моделируемой системе.
Но несмотря на такую неформальность, очень важно не пренебрегать этими двумя этапами, поскольку ошибки и неверные предположения, допущенные из-за поверхностно проведенных этапов анализа и разработки технических требований, мо-гуг свести на нет все дальнейшие усилия. Обычно на этом этапе разработки все результаты сохраняются в письменном виде (лучше всего — в виде электронных документов на внутреннем Web-узле группы разработки). Создание формальной документации, в которой содержатся выводы, полученные в ходе системного анализа, а также формулируются технические требования, не обязательно (хотя и желательно). Главное, чтобы полученные результаты были зафиксированы хотя бы в какой-нибудь форме (например, в виде раздела в журнале разработки). Важность сохранения этих результатов в письменном виде трудно переоценить. Выполнив такую работу, вы сэкономите время (и деньги) в ходе дальнейшей разработки игры.