ИИ для игр типа Lode Runner

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / ИИ для игр типа Lode Runner

Страницы: 1  новая тема

Автор Сообщение


Группа: Участники
Сообщений: 9
Добавлено: 05-03-2007 07:08
Подскажите алгоритм управления врагами.

мастер
Группа: Участники
Сообщений: 70
Добавлено: 05-03-2007 10:30
Я использовал следующий алгоритм:
В объекте MAIN, отвечающим за весь костяк игры, создавал три массива: один (map) отражал конструкцию уровня, другой (aimap) предназначался для ИИ и отображал конструкцию в более простом виде: 0-если на данной точке можно стоять (т.е. это все лестницы и все пустые клетки, под которыми земля), 1-в остальных случаях, а третий (aipath) показывал ближайший маршрут к игроку. Последний обновлялся раз в несколько кадров. Происходило это следующим образом:

1) Очистка: присвоение всему массиву значения 0. Местоположение игрока обозначалось как 1.
2) Вычисление оптимального пути. Сложный цикл. Вначале ищем в массиве единицу, и присваеваем соседним пустым клеткам (aimap=0) значение 2, затем соседним с двойкам клеткам значение 3 и т.д., пока не охватим всю карту.
3) Единственное, что остается монастрам, это двигаться в ту сторону, где aipath меньше (не считая нулевых значений).

Данный алгоритм помогает просчитывать путь любой сложности. Для ограничения "дальности обзора" можно ограничить количество шагов в основном цикле.


Группа: Участники
Сообщений: 9
Добавлено: 05-03-2007 10:40
Спасибо. Алгоритм интересный, попробую реализовать.
Но возник такой вопрос - а если у врага есть возможность
спрыгнуть, а не бежать к лестнице, которая может быть
в другом конце уровня? Или же делать разные массивы,
если просчитывается путь наверх или если просчитывается
путь вниз.

мастер
Группа: Участники
Сообщений: 70
Добавлено: 05-03-2007 10:56
Можно в aimap пустые клетки разделить на 0 "наземные" и 2 "для полетов", и при поиске пути у вторых приращивать путь только в направлении сверху вниз.

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 05-03-2007 12:14
я видел лодераннеры, где алгоритм врагов был похож на
(в объекте врага)

hspeed=sign(o_player.x-x)

И неплохо очень игралось:)

мастер
Группа: Участники
Сообщений: 70
Добавлено: 05-03-2007 12:51
Согласен,вариант неплохой, нормальный результат и на два порядка проще реализация, но уж слишком простой... Не для таких крутых программеров, как мы, верно?


Группа: Участники
Сообщений: 9
Добавлено: 05-03-2007 14:39
А то!

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / ИИ для игр типа Lode Runner

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU