Тема: I.D.S. MONSTERS
Показать сообщение отдельно
Старый 06.12.2020, 18:05   #152
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: I.D.S. MONSTERS

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

Выполняемые задачи:
1. ИИ распознаёт вражеских юнитов на поле боя.
2. Проверяет живы они или мертвы.
3. Считает расстояния до каждого живого врага в клетках,
учитывает кратчайший путь (с диагоналями),
при расчёте не используется многоцикловый волновой алгоритм,
вместо него используется моя формула расчёта.
4. Выбирает ближайшего противника, но при условии,
что до нескольких противников расстояние одинаково,
ИИ выбирает последнего из списка (и это всегда не персонаж игрока).
5. Загружает в себя информацию по скиллам монстра:
порядковый номер, радиус атаки, стоимость в ярости, позиция скилла (постановка на себя или на врага),
а также загружает количество доступной ярости монстра.
6. ИИ выбирает доступные к использованию скиллы монстра в соответствии с имеющимися очками ярости монстра.
7. Проверяется радиус атаки по клеткам каждого доступного скилла,
выбираются к использованию скиллы, в радиус атаки которых
попадает выбранный ранее ближайший противник.
8. Для атаки выбирается скилл с большей стоимостью в ярости.
При условии, что у всех доступных к атаке скиллов ярость одинаковая,
выбирается последний из списка. (Возможо нужно будет это
рандомизировать, ещё не решил).
9. Производится атака противника выбранным скиллом.
10. Если цель вне досягаемости атаки, проверяются свободные для ходьбы клетки в радиусе движения монстра.
11. Проверяется расстояние от доступных ходьбе клеток, до клетки ближайшего противника.
12. Создаётся массив самых ближних к противнику клеток в радиусе ходьбы монстра.
13. Случайно выбирается любая из массива (создаёт непредсказуемость траектории движения монстра).
14. Монстр перемещается в сторону противника.
15. Повторяются действия из пунктов: 7, 8, 9.
16. Если цель не была атакована, монстр завершает ход, если цель была атакована ход завершит скилл.

Если интересен билд, соберу и выложу по запросу.

Картинка просто чтобы была, никаких графических изменений:

__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (25.12.2020)