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