Что можно сделать, чтобы улучшить ИИ безумной стратегии в реальном времени?

12

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

Тем не менее, вопрос заключается в том, что нужно сделать, чтобы улучшить это, чтобы получить окончательный ИИ. Кроме того, если у вас есть пример игры, в которой использовалась определенная функция, это было бы здорово.

Редактировать: Есть небольшое разъяснение, которое я могу предоставить тем, кто не прочитал название или несколько параграфов, описывающих проблему. Речь идет о стратегических играх в реальном времени и об идеальном ИИ. Это означает Strarcraft, Warcraft, Generals, Red Alert, Age of Empires, AI War и т. Д. Игры, которые имеют более одного уровня сложности, но основное внимание здесь уделяется окончательному вызову.

У tenpn фантастический пост, наполненный большими ресурсами. Спасибо, тенпн! Я хотел бы, чтобы больше людей способствовало этому.

оборота альтвали
источник
6
На самом деле этот вопрос не имеет смысла без конкретного случая. Все игры имеют разные способы реализации ИИ, в зависимости от игровой механики, и «как их улучшить» будет сильно различаться. По крайней мере, это должна быть Community Wiki, поскольку здесь нет «правильного» ответа.
MrCranky
2
В дополнение к первому: учтите, что шахматы - стратегическая игра.
Rushyo
1
Почему ты хочешь? Создание идеального ИИ для игры в понг абсолютно тривиально, и с ним абсолютно не интересно играть. Цель игрового ИИ не состоит в том, чтобы побить игрока, поскольку предполагается, что это игрок (а не компьютер) должен развлекаться.
Ян Шрайбер
1
Йен: ОП говорит о чем-то очень отличном от понга. Легко сделать непобедимый ИИ понг или ИИ крестики-нолики. Шахматы могут быть переданы ИИ, которого могут победить только самые, самые, самые лучшие. Но РТС это другая игра в мяч.
Коммунистическая утка
2
Возможно, вас заинтересует алгоритм STRIPS .
user712092

Ответы:

12

На этот вопрос сложно ответить. Чтобы указать, что нужно улучшить, вам нужно иметь некоторый известный ИИ для работы. Однако вот несколько примеров RTS AI с сайта aigamedev.com (требуется регистрация):

К сожалению, большинство действительно хороших вещей находится за платным доступом.

Распространенным решением ИИ является ориентированный на цели план действий, который использует правила для составления планов для удовлетворения целей. Это было уже давно, но очень круто. На сайте Джеффа Оркина есть краткий обзор (pdf) о том, как он применяется к FPS, но тот же принцип (с разными правилами и целями) работает для RTS.

Многие RTS будут использовать иерархии GOAP, с различными уровнями, получающими цели с уровня выше, и связанные с различными уровнями детализации поля битвы. Я прочитал отличную статью об искусственном интеллекте в какой-то шестой мировой войне, который был структурирован подобным образом, но, несмотря на это, я не могу найти ссылку сейчас. Золотая звезда для тех, кто может мне помочь.

Конечно, эффективность GOAP и других планировщиков зависит от того, насколько хорошо вы анализируете свой игровой мир и насколько совершенны ваши действия и цели.

Другая распространенная технология включает служебные архитектуры (pdf) для подсчета очков и приоритетов, а также доски для анализа игрового мира.

tenpn
источник
6

Дело в том, если у вас есть ИИ

это может победить любого человека без обмана ресурсов в стратегии в реальном времени

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

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

Таким образом, речь идет не о создании сложного ИИ (что не сложно, в конце концов, ИИ может обрабатывать все в пределах своей игровой зоны одновременно, тогда как игрок может обрабатывать только то, что на экране), а скорее о создании сбалансированной игры.

Skizz
источник
1
Для пояснения, создание ИИ, способного побить любого человека, не так сложно, так как ИИ может контролировать свои юниты с большей степенью детализации, на которую может рассчитывать любой человек (из-за ограничений пользовательского интерфейса). Человеку требуются секунды, чтобы реагировать на события, выбирать и командовать юнитами, тогда как ИИ может обновлять приказы для каждого юнита индивидуально каждый «ход игры» в ответ на любое событие. Но на практике это не делается, так как это сделает игру утомительной. Самое сложное - сделать ИИ достаточно глупым, чтобы победить.
Skizz
3
Чтобы уточнить разъяснение - сделать непобедимый ИИ не так сложно; сделать победный, сложный и привлекательный ИИ гораздо, намного сложнее.
Skizz
3

Многое можно было сделать, но моей непосредственной реакцией на этот вопрос был контр-вопрос: зачем кому-то нужен конечный ИИ RTS? И почему этот человек просто не играет онлайн, против другого человека-оппонента?

Суть в том, что не проблема сделать ИИ непобедимым, это проблема заставить его мыслить достаточно быстро (например, он должен использовать ярлыки), чтобы иметь возможность играть против 3 или даже 7 противников ИИ на одной карте с обычный компьютер. Даже сегодня и завтра, и я ожидаю, что это не изменится даже через десять лет.

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

LearnCocos2D
источник
1

То, что вы определяете как «мошенничество с ресурсами», похоже на «усиление баланса» в гоночных играх. «Повышение» используется для того, чтобы попытаться удержать пакет в относительно близкой близости друг к другу, чтобы создать иллюзию напряженной гонки. Если игрок не в лидерах может держать игрока CPU в поле зрения, и если игрок находится в лидерах он держит давление на противников, поставив прямо на хвост, даже если сам процессор посредственный водитель.

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

Если вы - тот, кто создал таблицы и имеет доступную вам информацию, это просто вопрос количества данных, чтобы найти наилучшие соотношения для вывода.

Но насколько весело играть против врага, который всегда делает одно и то же в зависимости от контекста игрового поля?

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

Вы хотите, чтобы игрок чувствовал удовлетворение лицом к лицу со сложным противником, а не шлепал слабого ИИ или не был убит Hal9000. Совершенство противника процессора заключается в его несовершенстве. :)

Кейси Вагнер
источник
2
И разные, но связанные: хорошо, если ИИ иногда делает вещи, которые технически не являются наилучшим вариантом, но добавляют немного веселья в игру, например, используют необычные юниты или ходы (например, сбрасывание войск позади базы игрока). )
Барт ван Хейкелом
0

Одна большая вещь состоит в том, что вы должны идти в ногу со стратегическим развитием игры. Никакое развитие не позволит ИИ выиграть матч Starcraft 1 (в честной игре), если он думает, что основная армия морских пехотинцев - это способ играть в игру Терран против Террана.

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

Богатое дерево стратегий даже позволяет использовать ползунок сложности; Например, безумный ИИ Зергов будет стремиться использовать гибкие подходы, которые могут адаптироваться к врагу и быстро расширяться, когда предоставляется такая возможность, но на нормальном уровне сложности он может выбрать более жесткие построения и быть менее склонным к массовым расширениям.

user64554
источник