Творческая работа: Искусственный интеллект в играх: алгоритмы, автоматическое обучение и создание интеллектуальных противников

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Министерство высшего образования, науки и инноваций

Республики Узбекистан

Ташкентский университет информационных технологий

имени Мухаммад Аль-Хоразмий

Самостоятельная работа

На тему: Искусственный интеллект в играх: алгоритмы, автоматическое обучение и создание интеллектуальных противников

по дисциплине «Введение в искусственный интеллект»

Выполнил: Студент Абдуллаев А.А.

Приняла: Абдуллаева М. И.

Ташкент - 2024

Оглавление

Введение

Как игровой ИИ получает информацию

Как ИИ принимает решение

Как ИИ передвигается в простаранстве

Ограничения разработки игрового ИИ

Заключение

Список литературы

Введение

Машинное обучение (англ. machine learning, ML) -- класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение за счёт применения решений множества сходных задач. Для построения таких методов используются средства математической статистики, численных методов, математического анализа, методов оптимизации, теории вероятностей, теории графов, различные техники работы с данными в цифровой форме.

Различают два типа обучения:

1. Обучение по прецедентам, или индуктивное обучение, основано на выявлении эмпирических закономерностей в данных.

2. Дедуктивное обучение предполагает формализацию знаний экспертов и их перенос в компьютер в виде базы знаний.

Дедуктивное обучение принято относить к области экспертных систем, поэтому термины машинное обучение и обучение по прецедентам можно считать синонимами.

Многие методы индуктивного обучения разрабатывались как альтернатива классическим статистическим подходам. Многие методы тесно связаны с извлечением информации (англ. information extraction, information retrieval), интеллектуальным анализом данных (data mining).[ (1, 2023)]

Сферы применения машинного обучения:

1. Медицина: Машинное обучение помогает в диагностике заболеваний, анализе медицинских изображений (например, рентгеновских снимков, МРТ), прогнозировании заболеваний и эффективности лечения, а также в разработке персонализированных лечебных схем.

2. Игровая индустрия: Машинное обучение применяется для создания более реалистичных и интеллектуальных компьютерных противников, улучшения графики и физики игровых миров, оптимизации процессов разработки игр и улучшения пользовательского опыта.

3. Интернет вещей (IoT): В области IoT машинное обучение применяется для анализа данных, собранных с датчиков и устройств, для оптимизации работы систем умного дома, управления энергопотреблением, улучшения производственных процессов и т. д.

4. Автомобильная промышленность: Машинное обучение используется для разработки автономных транспортных средств (автомобилей, дронов), повышения безопасности на дорогах, оптимизации транспортных потоков и предотвращения аварий.

5. Торговля и розничная торговля: Магазины и онлайн-платформы используют машинное обучение для персонализации рекомендаций, прогнозирования спроса, управления запасами, анализа цен и маркетинговых стратегий.

6. Производство и обработка материалов: Машинное обучение применяется для оптимизации производственных процессов, предотвращения дефектов, контроля качества и улучшения эффективности обработки материалов.

7. Естественные науки: В области биологии, экологии, астрономии и других наук машинное обучение используется для анализа и интерпретации данных, обнаружения закономерностей и паттернов, классификации объектов и прогнозирования событий.

Игровой ИИ в основном занимается выбором действий сущности в зависимости от текущих условий. В традиционной литературе по ИИ называет это управлением “интеллектуальными агентами”. Агентом обычно является персонаж игры, но это может быть и машина, робот или даже нечто более абстрактное -- целая группа сущностей, страна или цивилизация. В любом случае это объект, следящий за своим окружением, принимающий на основании него решения и действующий в соответствии с этими решениями. Иногда это называют циклом «восприятие-мышление-действие» (Sense/Think/Act):

· Восприятие: агент распознаёт -- или ему сообщают -- информацию об окружении, которая может влиять на его поведение (например, находящиеся поблизости опасности, собираемые предметы, важные точки и так далее)

· Мышление: агент принимает решение о том, как поступить в ответ (например, решает, достаточно ли безопасно собрать предметы, стоит ли ему сражаться или лучше сначала спрятаться)

· Действие: агент выполняет действия для реализации своих решений (например, начинает двигаться по маршруту к врагу или к предмету, и так далее)

· затем из-за действий персонажей ситуация изменяется, поэтому цикл должен повториться с новыми данными.[ (Гончарук, 2018)]

Цель данной работы состоит в исследовании и анализе применения искусственного интеллекта в играх, с фокусом на алгоритмах, методах автоматического обучения и создании интеллектуальных противников. Работа будет охватывать обзор существующих технологий и методов, их преимущества и недостатки, а также исследование различных подходов к созданию игровых противников с различным уровнем искусственного интеллекта. Основной акцент будет сделан на анализе применения машинного обучения, глубокого обучения и других современных методов для создания более реалистичных, адаптивных и интересных игровых противников.

Как игровой ИИ получает информацию

Получение информации происходит примерно так же, как и в реальном мире -- у ИИ есть специальные сенсоры, при помощи которых он исследует окружение и следит за происходящим. Сенсоры бывают совершенно разными. Это может быть традиционный конус зрения, «уши», которые улавливают громкие звуки, или даже обонятельные рецепторы. Конечно, такие сенсоры -- всего лишь имитация реальных органов чувств, которая позволяет сделать игровые ситуации более правдоподобными и интересными. компьютер алгоритм интеллект игра

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

Виртуальные рецепторы устроены по-разному. В Metal Gear Solid у противников совсем простой конус зрения, отсутствует периферийное зрение, поэтому они видят только то, что происходит прямо перед ними.

Рис.1. Конус зрения в Metal Gear Solid

В Shadow Tactics: Blades of the Shogun тоже используется конус, но он сложнее. Конус поделён на зоны видимости, которые зависят от особенностей ландшафта. Если игрок попадёт в однородную зелёную зону, то его почти сразу увидят.

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

Рис. 2. Когда противник замечает игрока, конус зрения постепенно меняет цвет на жёлтый. Когда он заполнится, враг поднимет тревогу.

В Tom Clancy's Splinter Cell: Blacklist визуальный сенсор противников комплексный. У врагов есть основная зона видимости в форме вытянутого шестиугольника. Здесь моб видит лучше всего, поэтому в это пространство вообще лучше не заходить.

Есть и более крупный шестиугольник, который имитирует периферийное зрение -- там противник видит хуже. В такую же зону входят удалённые участки, которые недостаточно хорошо просматриваются. Но интереснее всего, что сзади противника тоже есть зоны, в которых он может заметить игрока. Эти зоны имитируют ощущение, что кто-то стоит за спиной, так что у игрока не получится долго красться вплотную к врагу.

Рис. 3. Схема визуального сенсора противников в Splinter Cell: Blacklist

Особенность противников в Splinter Cell: Blacklist в том, что они могут видеть игрока в частичном укрытии. Если несколько частей тела героя выглядывают из-за препятствия, то враг замечает его. Чтобы реализовать эту механику, разработчики использовали технологию рейкастинга -- из глаз врага кастуются лучи, и если они пересекают несколько частей тела героя, то противник поднимает тревогу.[ (Нетология, 2021)]

Как ИИ принимает решение

Вместо того чтобы узнать, как лучше всего победить игроков, ИИ в видеоиграх предназначен совсем для другого. Он необходим для улучшения игрового опыта геймеров. Самая распространённая роль ИИ в видеоиграх -- управление неигровыми персонажами, и разработчики часто используют различные трюки, чтобы NPC выглядели более умными. Один из широко используемых алгоритмов называется конечным автоматом (FSM или finite-state machine). Его ввели в разработку видеоигр в 1990-х годах. В FSM-алгоритме разработчик обобщает все возможные ситуации, с которыми может столкнуться ИИ, а затем программирует конкретную реакцию для каждой из них. Например, в шутерах искусственный интеллект атакует, когда появляется игрок, а затем отступает, когда его собственный уровень здоровья становится слишком низким.[ (Лебедов, 2021)]

Рис.4. Упрощенный алгоритм FSM

В примере алгоритма FSM NPC может выполнять четыре основных действия в ответ на возможные ситуации: поиск помощи, уклонение, блуждание и нападение. Многие известные игры, например Battlefield, Call of Duty и Tomb Raider, включают в себя успешные примеры искусственного интеллекта на основе FSM-алгоритма.

Более продвинутый метод, который используют разработчики для повышения персонализированного игрового опыта, -- алгоритм дерева поиска Монте-Карло (MCTS или Monte Carlo Tree Search). Алгоритм MCTS был создан для предотвращения аспекта повторяемости, который присутствует в FSM-алгоритме. MCTS-алгоритм сначала обрабатывает все возможные ходы, доступные NPC в конкретный момент времени. Затем для каждого из этих возможных ходов он анализирует все действия, которыми игрок мог бы ответить. А далее -- снова возвращается к оценке NPC уже на основе информации о поступках игрока.

Этот алгоритм искусственного интеллекта использовала компания IBM при создании Deep Blue -- первого шахматного суперкомпьютера, который 11 мая 1997 года вошёл в историю и выиграл матч из шести партий у чемпиона мира по шахматам Гарри Каспарова. Подобный алгоритм применяют и во многих стратегических играх. Но поскольку возможных ходов гораздо больше, чем в шахматах, рассмотреть их все попросту не получится. В таких играх алгоритм MCTS будет случайным образом выбирать некоторые из возможных ходов. Благодаря этому действия NPC становятся гораздо более непредсказуемыми для игроков.

Вспомним такую игру, как Civilization, в которой существует огромное количество вариантов событий, доступных для компьютерного противника. Постройка дерева для каждого возможного выбора и сценария заняла бы очень много времени. Именно поэтому, чтобы избежать столь огромных вычислений, алгоритм MCTS случайным образом выбирает несколько возможных вариантов. В итоге игра отнимает меньше ресурсов системы, при этом ИИ в ней всё ещё способен удивлять игроков.[ (Лебедов, 2021)]

Рис.5. Упрощенная блок-схема использования алгоритмов MCTS

Как ИИ передвигается в простаранстве

Действия ИИ напрямую связаны с его задачей: это может быть удар в ближнем бою, занятие более выгодной позиции для стрельбы, помощь союзнику. Независимо от задачи агент должен добраться до места выполнения действия -- для этого ему нужна информация об окружающей среде. Обычно такие данные содержатся в навигационной сетке (NavMesh) -- это особая карта, на которой обозначено, где NPC могут передвигаться. Поверх навигационной сетки может располагаться система узлов, которая применяется для того, чтобы NPC корректно выполняли сценарии поведения. К примеру, в Assassin's Creed Origins у всех NPC есть свой распорядок дня, который они соблюдают даже без участия игрока.

Рис.6. В Horizon Zero Dawn есть сразу шесть навигационных сеток: четыре для существ разного размера, одна для плавающих существ, одна, чтобы игрок мог корректно оседлать моба.

Чтобы персонажи следовали сценарию и не застревали в окружении, разработчики сделали специальную сеть узлов -- точки на плоскости, где NPC выполняют свою персональную задачу. Описанный метод подходит для заранее предопределённых сценариев. NPC словно перемещаются по рельсам от одной точки к другой.

Рис.7. Зелёным обозначена навигационная сетка, а поверх неё находится система узлов. Жёлтая стрелка указывает на ошибку -- кто-то поставил на узел игровой объект, чем перекрыл NavMesh.

В ситуациях, в которых нужно реагировать на действия игрока, используется другой подход. В Just Cause 3 существует система, выбирающая приоритетные позиции, на которых NPC сможет эффективнее всего выполнить свою задачу. Выбор той или иной позиции зависит от конкретных критериев: дальности от цели, наличия препятствий между мобом и его целью, удалённостью от союзников и так далее.

Рис.8. NPC будут стараться находиться у зелёных точек, так как это наиболее выгодные для них позиции.

Всё это применимо только к ИИ, которые передвигаются по горизонтальным плоскостям. А в Horizon Zero Dawn, например, есть ещё и летающие противники, для которых не работают стандартные навигационные сетки. Чтобы исправить это, разработчики использовали технологию MIP Mapping, которая позволяет быстро менять детализацию карт высот. Для расчёта траектории в полёте применяется один из самых популярных алгоритмов поиска пути -- А*.

Этот алгоритм позволяет найти оптимальный маршрут до цели -- он считает «стоимость» каждого варианта пути, а потом сравнивает их между собой. В результате ИИ использует самую «дешёвую» траекторию.[ (Нетология, 2021)].

Источник: https://otherreferats.allbest.ru/download/1487110/