Я пишу довольно «простую» игру 4X (если игра 4X может быть простой). Это инди-сфера, и мне интересно, есть ли какой-нибудь способ создать сносный ИИ, не затрачивая на это месяцы.
В игре есть три основных этапа принятия решений; траты производственных точек, траты точек движения и траты технических очков (в основном есть 3 различных «валюты», неизрасходованная валюта в конце хода не сохраняется)
- Потратьте очки производства
- Обновить планету (увеличить ее технологии и производство)
- Сборка кораблей (3 типа)
- Переместить корабли с планет на планеты (стоимость очков движения)
- Переместить в атаку
- Переместить, чтобы укрепить
- Исследовательская технология (может частично исследовать технологию, например, как в Master of Orion)
План для меня сейчас - это метод грубой силы. Есть в основном 4 широких варианта для игрока -
Обновите планету (ы) до своего производства и технической продукции
Покори как можно больше планет
Обеспечить как можно больше планет
Доберись до определенной технологии как можно скорее
Для каждого решения я буду перебирать возможные варианты и составлять счет; и тогда ИИ выберет решение с наибольшим количеством очков. Прямо сейчас я понятия не имею, как «смешивать решения». То есть, например, ИИ желает обновлять и покорять планеты одновременно. Я полагаю, у меня может быть другая логика, которая выполняет грубую оптимизацию комбинации этих четырех решений ....
По крайней мере, это мой план, если я не могу придумать ничего лучше. Есть ли более быстрый способ сделать сносный ИИ? Мне не нужен очень хороший, чтобы конкурировать с Deep Blue или что-то подобное, просто что-то, что имеет иллюзию интеллекта.
Я впервые делаю искусственный интеллект в этом масштабе, поэтому я не осмелюсь попробовать что-то слишком грандиозное. Пока у меня есть опыт работы с FSM, DFS, BFS и A *
Ответы:
Похоже, вы могли бы попробовать Minimax, чтобы «смешать» ваши решения. В прошлом году на Green Corp. программисты говорили о Game AI Conf, и именно это они использовали для создания своего AI. Им потребовалось много времени, чтобы понять это правильно, но у них приличный результат.
источник
Если он достаточно хорош, чтобы вызвать интерес (и вы должны будете предположить, что он будет, или вы можете бросить его прямо сейчас), и он поддерживает сетевое взаимодействие, лучший способ действий для такого рода вещей:
При этом сложная часть будет состоять в том, чтобы позволить ИИ писать сценарии и использовать их таким образом, и вы просто «передадите» фактическую оптимизацию ИИ игрокам.
Это не только даст вам намного лучший ИИ, но и добавит много ценности самой игре!
источник