Бот боту рознь! Ни у кого, скорее всего, не возникнет сомнений, что создание ботов для шутера является одной из самых приоритетных задач. Конечно, все темы, рассмотренные нами до этого материала, также имеют грандиозное значение, но боты - быть может ещё важнее, чем дизайн уровней, физика.
Невозможно себе представить многопользовательскую игру "стрелялку", в которой противник (или противники) были бы никакими или крайне тупыми. Если такое случается, то игра сразу отправляется на полочку, где хранятся диски с надписью "Отстой!".
Учитывая ранимость геймеров, да и вообще наше желание сделать такую игру, которая будет затягивать, удивлять и радовать, мы решили подойти к созданию ботов с максимально возможной серьёзностью, зная, что в принципе, не каждый геймер обладает модемом и не факт, что он сможет играть в Hired Team: Trial в Глобальной Сети.
Перед тем, как взяться за разработку бота (да и вообще чего-либо, даже не обязательно, чтобы в области игр), необходимо определиться: какие цели мы должны преследовать при разработке AI. Первое, что приходит на ум - это честность бота. Так как "отцов" среди геймеров не так уж и много, поэтому необходимо равняться на более широкую аудиторию, которая играет на среднем уровне. По себе знаю, как противно, когда тебя валит бот, а ты в своё оправдание можешь только сказать: "Жульничество чистой воды!" Кроме честности бот должен обладать мозгами: какой толк от его честности, если он туп, как дерево.
В дефиниции честности проблем не возникает: бот должен управлять собой так же, как игрок управляет свои виртуальным "Я" в мире HTT. Добиться этого не сложно, хотя у бота всё равно будет явное преимущество: руки у него не затекают, по кнопкам он может бить со скоростью 10 ударов в секунду, но и скорость реакции у него будет составлять 0,1 секунды, а человеческая реакция ограничивается FrameRate. Помимо этого человеку легче запомнить уровень и более эффективно по нему перемещаться, используя всяческие световые укрытия, играя на неожиданности и пр.
Теперь непосредственно об искусственном интеллекте ботов. Боту, как и человеку, необходимо получать и обрабатывать информацию из внешнего мира. Этот процесс тесно связан с тем, как бот наблюдает за состоянием своего тела. Если здоровье компьютерного оппонента было подорвано, то он старается с максимально возможной скоростью "вспомнить", где он "видел" аптечку - здоровье оно одно, его надо беречь, хочешь ты этого или нет. Тоже самое можно сказать и о патронах - никому не доставляет особого удовольствия остаться без рокет для рокет-лаунчера.
Существует ряд потоков (конвейеров) информации, от которых питается бот. Один из них, как уже было отмечено, - наблюдение за своим телом. Другими двумя служат банки данных. В глобальном хранилище данных, в котором находится информация об объектах и действия совершаемых ими и над ними. Второе хранилище - "почтовый ящик" бота, куда из игрового мира скидывается персонифицированная информация, предназначенная только для этого бота.
Таким образом, мы можем заключить, что бот, как игрок, живёт в некотором игровом мире, в котором кроме своих законов есть и свои своеобразные правила, которых следует придерживаться.