Делаем проходимый 4х игровой ИИ

8

Я пишу довольно «простую» игру 4X (если игра 4X может быть простой). Это инди-сфера, и мне интересно, есть ли какой-нибудь способ создать сносный ИИ, не затрачивая на это месяцы.

В игре есть три основных этапа принятия решений; траты производственных точек, траты точек движения и траты технических очков (в основном есть 3 различных «валюты», неизрасходованная валюта в конце хода не сохраняется)

  • Потратьте очки производства
    • Обновить планету (увеличить ее технологии и производство)
    • Сборка кораблей (3 типа)
  • Переместить корабли с планет на планеты (стоимость очков движения)
    • Переместить в атаку
    • Переместить, чтобы укрепить
  • Исследовательская технология (может частично исследовать технологию, например, как в Master of Orion)

План для меня сейчас - это метод грубой силы. Есть в основном 4 широких варианта для игрока -

  1. Обновите планету (ы) до своего производства и технической продукции

  2. Покори как можно больше планет

  3. Обеспечить как можно больше планет

  4. Доберись до определенной технологии как можно скорее

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

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

Я впервые делаю искусственный интеллект в этом масштабе, поэтому я не осмелюсь попробовать что-то слишком грандиозное. Пока у меня есть опыт работы с FSM, DFS, BFS и A *

Extrakun
источник
2
Правильный способ решения этой проблемы - самостоятельно исследовать ее. Реализуйте то, что вы описываете, и посмотрите, насколько хорошо это работает. Тогда сделай это лучше. Как только вы думаете, что у вас есть хороший алгоритм, заново внедрите ИИ, чтобы использовать новую структуру. Я бы предложил построить это на языке сценариев, таком как Lua, чтобы было проще выбросить старый код.
Николь Болас
Чтобы уточнить, я мог бы попытаться реализовать то, что я имею в виду. Мне просто интересно, есть ли другие способы создания ИИ, кроме min-maxing или традиционного метода «iterate-and-compute-best-Score».
Extrakun

Ответы:

4

Похоже, вы могли бы попробовать Minimax, чтобы «смешать» ваши решения. В прошлом году на Green Corp. программисты говорили о Game AI Conf, и именно это они использовали для создания своего AI. Им потребовалось много времени, чтобы понять это правильно, но у них приличный результат.

Лоран Кувиду
источник
1

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

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

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

Это не только даст вам намного лучший ИИ, но и добавит много ценности самой игре!

о0' .
источник