Я не геймдев, я просто любопытный программист не-игр. Интересно, как работает ИИ в популярных современных играх, скажем, FPS? Это основано на жестко закодированных правилах? Насколько он похож на другие виды искусственного интеллекта (например, тот, который питает автономные машины и т. Д.)? Как разработчики гарантируют, что ИИ ведет себя естественно и с ним интересно играть?
Вещи, которые я погуглил, упомянули различные производные MinMax, но не смогли ответить, как ИИ работает с непрерывным, изменчивым миром, за какие действия / состояния ИИ вознаграждается и как он выясняет свои шансы на успех различных действий. Я также видел машинное обучение, упомянутое здесь и там, но кажется, что оно не используется ни в одной серьезной игре?
Ответы:
Есть много методов. Я отвечу за FPS, потому что у каждого жанра есть свой собственный набор проблем, и подходы ИИ сильно зависят от проблемной области и того, как лучше всего ее представить.
Общие подходы FPS включают в себя:
И различные перестановки и вариации на выше.
Минимакс обычно не используется для игр с непрерывным состоянием, таких как FPS, больше для пошаговых игр в дискретных игровых пространствах, таких как шахматы и т. Д. Он может использоваться для планирования на высоком уровне, но, как правило, это не так, потому что существуют лучшие системы (т.е. . выше), когда сталкиваешься с множеством врагов, неполной информацией, но простыми планами.
Они гарантируют, что ИИ будет забавным, проходя тестирование. Если это слишком сложно, они могут внести ошибку в эвристику любого решения, или задержку в их реакциях, или применить случайный фактор к своему прицеливанию и т. Д. Если это не достаточно сложно, им просто нужно улучшить данные, предоставленные алгоритму. ,
источник
Там есть статьи о том, как работают различные ИИ, из которых я больше всего знаком - это FEAR.
источник
Еще два распространенных метода
UCT поиск. Существует формализм, но идея в основном заключается в том, чтобы сделать случайный матч до конца игры, с обратной связью, чтобы придать вес выигрышным играм больше, чем проигрышным. Хорошая вещь о чистой форме этого в том, что ИИ не нуждается в знании того, что может быть лучше или хуже.
Поиск Minmax, обычно в сочетании с сокращением альфа-бета-дерева, в основном выполняет полный поиск игрового пространства до некоторой глубины, оценивая каждый конечный узел с помощью статического оценщика, который присваивает числовое значение. Это хорошо работает для игр, где есть очевидные метрики, которые измеряют прогресс в достижении победы.
источник