Как стать автором
Обновить

Охотники, щелкуны и Элли: как устроен игровой искусственный интеллект в The Last of Us

Время на прочтение17 мин
Количество просмотров16K
Всего голосов 35: ↑33 и ↓2+31
Комментарии16

Комментарии 16

оффтоп о второй Геймплей вышел неплохим, но сюжет заставляет требовать рефанд (что не работает в случае покупки игры на носителе)

Забавно что такие базовые вещи как ИИ и поиск пути каждая команда решает самостоятельно. И иногда нехватка опыта или ошибки у разработчиков не дают получать удовольствие от игры, когда приходится бороться с тупым ИИ или вручную разбирать заторы юнитов в стратегии. Неплохо было-бы иметь какой-то общий пул решений, и не тратить на одно и тоже кучу времени, и при том с переменным успехом.
Ну вроде в статье упоминается что стандартным подходом для реализации ИИ являются конечные автоматы. А уж дальше детали разнятся — даже в рамках одной игры у разных типов врагов.
НЛО прилетело и опубликовало эту надпись здесь
люди платят только за «чтото новое», чтото новое делается всегда с нуля
Скажите это игрокам в мобильные и браузерные игры, где каждая успешная игра имеет сотни клонов, выглядящих как копии, но при этом вполне успешных, судя по тому, что они годами скупают рекламу.

А вообще, стоит посмотреть на развитие игровых движков. Времена когда каждая команда создавала игру с нуля закончились где-то в 00-х, сейчас только крупные студии могут себе позволить делать всё самостоятельно. Средние и мелкие — используют готовые движки и покупные решения, которые в себя включают всё больше инструментов, ускоряющих и удешевляющих разработку. Тот же поиск пути — уже несколько лет есть в Unity из коробки, не говоря о десятках других инструментов и магазине Asset Store с чужими решениями.

При этом готовые решения — это не всегда плохо, поскольку поверх них можно добавить свой собственный стиль, что добавит игре уникальности и узнавания. А сэкономленные ресурсы команды можно направить на полировку игры.

А насчёт Unity… Вот игры, которые написаны на нём, но я бы их не назвал выглядящими как любая другая игра, как минимум поскольку аналогов мало, они хуже или их вообще нет:
— Kerbal Space Program
— Tyranny
— Ori and the Blind Forest
— Wasteland 2
— Sunless sea
— Cities: Skylines
— Inside
— Superhot
— Firewatch
— Endless legend
— Hearthstone: Heroes of Warcraft

Проблема качества некоторых игр на Unity не в том, что он предлагает массу готовых решений, а в том что у него низкий порог входа, что позволяет клепать низкосортные продукты на нём вообще не имея никакого опыта. В то же время опытная команда может сделать качественный продукт на любом движке, и список выше — тому подтверждение, поскольку почти в каждом случае за проект бралась опытная команда, выбирающая Unity из-за его удобства / широкого коммьюнити / высокой скорости / разработки.
Магия талантливых игроделов, все так просто когда разложено по полочкам, но в игре помню этот простой ИИ местами давал жару )

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

Главное запрограммировать ему что это все не по настоящему )
Когда-то на Хабре была статья про разработку ИИ для игр, в которой была озвучена простая, но интересная мысль: цель ИИ в любой игре – проиграть. Соответственно, искусство – сделать так, чтобы этот проигрыш был как можно более зрелищным (увлекательным) для игрока. Поэтому, например, в Doom всегда только ограниченное количество юнитов, которые в данный конкретный момент времени имеют право нападать на игрока, независимо от общего количества юнитов, с которыми игрок борется. При этом то, кто именно будет нападать, определяется, по сути, зрелищностью. А если бы все юниты напали бы одновременно – никакой скилл бы не спас. А если бы они при этом ещё и действовали интеллектуально… :) А у Альфа Стар несколько иная специфика :) Он создаётся, чтобы побеждать.
Если сделать онлайн-игру со слишком хорошим интеллектом, который победить не удастся, то никто в это играть не будет. Ну, может быть полтора гика. Нужно будет создавать ИИ, который играет очень хорошо, достаточно хорошо, чтобы занять толпу народу, но который, тем не менее, должен проиграть. А это несколько иная задача, чем просто «написать лучший ИИ при заданных ограничениях»)
Ну так AI одна из самых простых подсистем движка и самой игры. Там даже математика не нужна. Только линейная алгебра и графы. Вторая (после UI) по простоте. Бегаешь шариками и стреляешь лучиками в сцену и в другие шарики. Поток для AI отдел движка сам напишет. Синхронизацию тоже.
Интересно, человек пересказывает книги на ютуб и зарабатывает на этом… Это вообще легально?)

К теме вот еще интересные статьи:

habr.com/ru/post/440922
habr.com/ru/post/416593
не путайте игровой интеллект с искусственным.)))
Игровой искусственный интеллект, не видим противоречия :)
Более того, игровой интеллект всегда искусственный. Масло масляное.)))
Но не каждый ИИ — игровой. Это просто устоявшийся термин.

Мало в жизни казусов, но в играх применение ИИ очень сомнительно. Точнее так: искусственный интеллект в реальном времени не может обучаться, так как игровой опыт одной партии незначителен. Например, Deep Blue во время игры с Каспаровым не обучался. Обучение ИИ до начала игры, конечно, полная лажа, всего лишь технология создания игрового интеллекта.
Поэтому игровой и искусственный интеллект несовместимы, так как игра несовместима с обучением. Ну если конечно как-то хитро не придумать игровой процесс...

Обучающиеся нейронные сети — лишь разновидность искусственного интеллекта, которую в геймдев для создания NPC потихоньку пытаются внедрять, но обычно получается довольно громоздко и не оправдывает себя, а потому успешных кейсов практически нет (об одной из попыток реализовать что-то подобное мы писали в своей прошлогодней статье).

Игровой же ИИ — это набор программных методик, предназначенный для создания иллюзии интеллекта, чтобы NPC реагировал на действия игрока определенным образом.
спасибо, занимательно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий