В какую сторону копать, что бы написать ИИ для игры?
Есть игра, в ней есть бои. Для тех кто знает Disciples 2 дальше можно не читать, а переходить к основному вопросу.
Бои представляют собой сражение между двумя наборами юнитов - с одной стороны для ряда и с другой стороны два ряда. У каждого юнита есть определённый набор параметров ( инициатива, урон, защита, хп и т.д. ). Так же есть параметр точность, что вносит в игру элемент рандома. Это что касается боёв.
В самой игре есть ИИ, но он не знает, что такое защита ( урезание урона в 2 раза ), ожидание ( пропуск хода, что бы сходить в конце ) и вообще не очень.
И у меня появилось желание написать или внутренний мод, или что-то поверх, что будет проводить сражения вместо меня. То есть ИИ для себя, а не для того, что бы с ним сражаться. Список юнитов и их параметры конечны.
Это не биг-дата и не оверинженеринг, это скорее программа, которая прогнозирует лучший ход на текущий момент с текущими параметрами. Вот и сам вопрос - в какую сторону мне копать? Что мне нужно прочитать? Какой инструмент лучше выбрать? Можно просто список действий ( глобальных и не очень ) или статей или книг, которые помогут понять как писать.
Заранее спасибо.
P.S. Пишу на Python, но это не критично.
Ответы (1 шт):
Имеем:
- Это игра. Следовательно нужно/можно ознакомиться с https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%B8%D0%B3%D1%80
- В ней присутствуют состояния и переходы (действия, решения) между ними. Дерево/граф, в общем, или https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82
- На каждом шаге нужно принимать решения на основе ограниченного набора признаков. В простом виде подойдёт https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B8%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D0%B9
- Так как это игра последовательная, то можно ещё покопать в сторону https://en.wikipedia.org/wiki/Markov_decision_process (на русском, к сожалению, перевода особа нет), а так, в целом, находится по поиску "Принятие решений по Маркову".