Пишем ИИ для врага в TDS. Часть 1 - Разработка игр - Каталог статей - Game Maker
Суббота, 03.12.2016, 22:43
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Файлы и ресурсы
Топ 5 участников
1. BRESS
Репутация: 221
Сообщений на форуме: 3239
2. Gracio001
Репутация: 181
Сообщений на форуме: 1370
3. Xomafok
Репутация: 164
Сообщений на форуме: 946
4. FarEastKmS
Репутация: 125
Сообщений на форуме: 359
5. aHDp
Репутация: 114
Сообщений на форуме: 755
Топ 5 игр
Agent Green 4.6 / 5.0
Wartime 4.3 / 5.0
FeDo 4.0 / 5.0
Adventures: ... 4.0 / 5.0
Secretive ha... 4.0 / 5.0

Топ игр составлен путем пользовательского голосования.

Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
Статистика



На сайте: 2
Гостей: 2
Пользователей: 0
GoodWin
Просмотров страницы:
1196

Рейтинг материала:

Другие работы автора:
- -

Поиск по сайту
Game Maker
Если вы только-только начали изучать игрострой и еще даже не успели скачать сам Game Maker, предлагаем вам на выбор следующие версии программы:

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Войти на сайт

Мини-чат
300

Так как чат открыт для всех, просьба отнестись с уважением к другим посетителям и не писать осознанно посты, оскорбляющие кого-либо, содержащие открытую рекламу/спам. Спасибо за понимание! :)
Опрос
Какой версией Game Maker вы пользуетесь?
Всего ответов: 460
Мы в Вконтакте
Главная » Статьи » Разработка игр

Пишем ИИ для врага в TDS. Часть 1
И так начнём.
Я хочу показать как реализовать 2 вида ИИ, собственно о них.

1. Мысль бота "Я крутой, поэтому просто буду стрейфиться и стрелять в тебя"

2. Мысль бота "Нее чувак, я ещё пожить хочу, у меня дома жена и дети, сяду ка я вот за тот ящик и буду переодически отстреливаться, авось попаду.."

Сегодня мы разберём первый вид.

Теория.

Первый вариант подразумевает, что бот должен отстреливаться и переодически выбирать рандомные координаты относительно себя.
Далее перемещаться в эти координаты.

Начнём практику.

Создаём в событии Create 2 переменные XX и YY и засекаем будильник.

XX=x
YY=x
alarm[0]=room_sped+random(100)

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

В событии будильника:

XX=x+choose(+random(60),-random(60));
YY=y+choose(+random(60),-random(60));

alarm[0]=room_speed+random(100)

Что здесь:

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

В степ:

mp_potential_step(XX,YY,1,0);
direction=point_direction(x,y,Игрок.x,Игрок.y)

Враг должен постоянно двигаться в координаты и быть направлен к игроку.

Конечно можно проверять достиг враг координат, или нет и только потом засекать аларм, но это уже сами.

И код стрельбы тоже сделаете сами (думаю руки прямые).

На этом всё, встретимся на следующем уроке.
Категория: Разработка игр | Добавил: GoodWin (14.07.2014)
Просмотров: 1196 | Комментарии: 4 | Рейтинг: 4.3/6
Всего комментариев: 4
4 baryhalive   (25.01.2016 21:29)
baryhalive Я лично делаю ИИ проще
просто беру кидаю чтобы скрипт чтобы следовал за игроком
чтобы если видел зомбака он бросал человека и убил зомби!

2 Анонимус   (30.08.2014 02:59)
Цитата
alarm[0]=room_sped+random(100)
Ошибка.
#room_speed

0
3 BRESS   (30.08.2014 08:12)
BRESS У всех бывает smile

0
1 BRESS   (21.07.2014 16:24)
BRESS Имхо, подход у большинства разработчиков к AI несколько неправильный. Система ветвлений с кучей рандома выглядит как-то неказисто, да и ожидать таким образом от бота интересных тактических решений просто не приходится. А ведь изначальная задача AI состоит не в натягивании игрока, а в красивом проигрыше.

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

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]