Компьютерные и мобильные игры построены на различных конфликтах, возникающих в процессе игры между двумя, тремя и более игроками, где за одну из сторон может выступать искусственный интеллект самой игры. Поведение персонажей в игре обусловлено множеством различных факторов или событий, которые, как правило, изменяются каждую секунду. В этом ракурсе задача программиста игровой логики заключается в создании объектов умеющих адекватно реагировать на различные игровые события.
Особой необходимости писать в мобильных играх системы искусственного интеллекта, основанных на нейронных сетях, нечеткой логике или генетических алгоритмах человеческого мозга нет, все это применимо в других местах. Вместо этого в играх для мобильных телефонов используется набор различных алгоритмов позволяющих создавать вполне пригодный, а главное разумный игровой интеллект. Имитация разумности персонажей игры это и есть основная и главная цель, которую вам предстоит решать по мере создания приложений.
Искусственный интеллект – это очень сложная и широко освещаемая тема многих изданий, например, у издательства ДМК-Пресс есть хорошая книга по этой теме с названием: «Программирование искусственного интеллекта в приложениях». Я предлагаю в этом цикле статей рассмотреть основные приемы, используемые при формировании игровой логики. Для этого я разделил публикацию на несколько частей, где используются детерминированные и шаблонные алгоритмы искусственного интеллекта. Ниже представлен полный список будущих частей публикации.
• Движение в заданном направлении – одним из простейших способов движения объекта является его перемещение с определенной скоростью в заданном направлении. В этой обзорной части мы поговорим о простых игровых алгоритмах необходимых для реализации движения объекта в заданном направлении.
• Движение за объектом – эта часть будет содержать несколько расширенную информацию по перемещению объектов в пространстве, что позволит вам создавать более разумных персонажей игры, которые будут неотступно преследовать игрока на протяжении всего игрового процесса или заданного промежутка времени.
• Движение от объекта – не всегда нужно неотступно следовать за игроком, иногда следует убежать, спрятаться и накопить силы для дальнейшей атаки. Поэтому в этой части мы рассмотрим пример исходного кода, с помощью которого можно убегать от своего преследователя по мере его приближения.
• Случайное или хаотичное движение – одним из интересных видов движения персонажей в игре является их независимое и случайное перемещение. Эта часть познакомит вас с реализацией движения объекта в случайном направлении и случайной скоростью.
• Простые шаблоны – очевидно, что игровые шаблоны включают в себя уже более высокий уровень игрового интеллекта, поэтому эта часть публикации познакомит вас с парадигмой шаблонного программирования игровой логики, а представленный пример исходного кода покажет всю элегантность решения задач на базе шаблонов.
• Шаблоны с обработкой событий – шаблоны с возможностью обработки игровых событий – это одно из мощных средств создания игровой логики. В этой части мы изучим демонстрационный пример, реализующий шаблон с обработкой событий, которые возникают во время игры.
• Смена состояний игровых объектов – при рассмотрении этого вопроса, мы конкретном примере смоделируем смену состояний игрового объекта на основе распределенной логики и счетчика прошедших игровых циклов.