Главная » Документация » Практическое руководство по AI

RSS

Практическое руководство по AI

Прицеливание


Реализация прицеливания целиком зависит от того, что будет делать игрок. Возможно, юниты игрока сами по себе будут стрелять во врагов, которых они увидят, так, чтобы пользователь смог управлять большим количеством юнитов на больших пространствах. А может быть, атака юнитами врагов будет польностью под управлением пользователя.

В обоих случаях, враги должны быть всегда готовы напасть на умных юнитов пользователя.

В ситуации, когда существует восемь направлений для движения, чтобы один юнит попадал в поле зрения другого, они должны стоять либо напротив друг друга по прямой, либо в смежных линиях направления движения. Простой тест, определяющий, видит ли один юнит другого, состоит в оценке трех смежных линий направления, и проверке попадания одного юнита в эти смежные линии другого. Тест дает хорошие результаты, кроме того, он не занимает много времени.

Безусловно, потребуется добавить алгоритм для исследования ограждений, чтобы определить, закрывают ли они юнитов. Скорее всего этот же алгоритм можно будет использовать и для обхода препятствий, поскольку обычно путь либо свободен, либо нет. Проверка на видимость изменит природу всех тестов,но это уже материал для другой статьи.

Преследование

Враги обнаружили жертву. Нужно позаботиться о том, чтобы они не болтались бесцельно по карте в случае, если упустят ее из виду. Поэтому, прийдется выбрать алгоритм поиска. До сих пор мы говорили о том, как управлять врагами, если юниты находятся в зоне видимости. Алгоритм преследования может оказаться достаточно сложным. Можно поступить хитрее, присвоив конечную координату пути отслеживаемого юнита конечной координате пути врага, который производит это отслеживание.

Если хотите сделать все реалистичней, убрать такие «хитрости», тогда нужно будет сохранять координату последней позиции, где была видна цель, чтобы начать поиск в окресности того места. В нашем случае мы используем случайный поиск. Враг ищет свою жертву, начиная С места последней встречи. Он продолжает идти в том же направлении на произвольное расстояние от той позиции, где последний раз увидел юнита.

Тогда, если предположить, что цель скрылась, и мы поступили правильно, будем надеятся, что юнит настигнет цель, после того как немного пройдет. Если этого не произойдет, строится план, по которому юнит будет ходить на произвольные расстояния от места встречи. Следовательно юнит возвратиться на ту точку, где последний раз была видна его цель и будет ходить по некоторому заранее сформированному маршруту (шаблонные мысли, прим. пер.), чтобы найти его.

Хотя данный алгоритм упускает из виду много возможностей, все же это разумная ответная реакция в данной ситуации.

Заключение

Ключ для реализации искусственного интеллекта во всех играх заложен в понимании того, какие результаты должны быть достигнуты в той или иной ситуации. Если вы представляете себе, как реализовать тот или иной поступок и можете сформулировать рабочий алгоритм – это 90% всей работы. Однако оставшиеся 10% – заставить все это работать. Эти 10% можно пересматривать и до ста раз, до тех пор, пока не решить, как все это реализовать.

Страницы : 1 2 3 4 5