Искусственный интеллект OpenCiv3
Слои принятия решений
В изученной реализации различаются стратегические приоритеты игрока, выбор производства города, назначения юнитов и поиск пути. Это обычный игровой AI на правилах и эвристиках; LLM или внешнего сервиса здесь не требуется.
PlayTurn проверяет старые договоры, пересматривает приоритеты, выбирает исследование, иногда пытается торговать, выполняет действия юнитов и корректирует бюджеты. Проверка торговли происходит с вероятностью 25% на ход, а не по строгому расписанию раз в четыре хода.
Стратегия и производство
Пересмотр стратегии задаёт таймер 15 + rng.Next(10), то есть значение от 15 до 24, затем таймер уменьшается. Это не точная гарантия одинакового интервала между решениями: важен порядок проверки нуля.
C7Engine/AI/StrategicPriorityArbitrator.cs оценивает веса возможных приоритетов и выбирает несколько. В дереве есть экспансия, исследование мира и война. Код допускает от двух до четырёх приоритетов, но фактический максимум также ограничен числом доступных вариантов.
C7Engine/AI/ChooseProducible.cs оценивает предметы по силе, сроку постройки, цене населения, обороне города, эскорту, экономике и доступным местам поселений. Выбирается максимальная оценка с небольшим случайным множителем. Производство юнитов и зданий использует общий список допустимости.
Роли юнитов
В коде есть SettlerAI, WorkerAI, ExplorerAI, DefenderAI, CombatAI, EscortAI. Текущая задача может продолжаться несколько ходов; число повторных попыток за один проход ограничено, чтобы избежать зацикливания. Для разведчиков существуют зарезервированные цели, позволяющие уменьшить дублирование.
Поселенец выбирает место и работает с эскортом; рабочий ищет полезное улучшение. Бой и оборона получают свои цели. Источники: C7Engine/AI/UnitAI/SettlerAI.cs, C7Engine/AI/UnitAI/SettlerLocationAI.cs, C7Engine/AI/UnitAI/WorkerAI.cs, C7Engine/AI/UnitAI/CombatAI.cs.
Ограничения
Назначение ролей местами проверяет имена Settler, Worker, Catapult. Исследование выбирается как первая доступная технология. При выборе кораблей код прямо говорит, что транспортные операции и морская война AI пока не обслуживаются; осадные юниты также ограничены.
Notes on AI полезна как история замысла, но содержит описания 2022 года. Например, заявления о ещё не действующих приоритетах и отсутствии атак на лагеря нельзя автоматически переносить на нынешнюю ветку.
Для нашей игры
Начать с ролей и одинаковых для человека и AI команд; сохранять цель и причину выбора для отладки. Убирать привязку к названиям в пользу способностей. До добавления сложной стратегии проверить, что AI завершает ход, не зацикливается, сохраняет хотя бы защитника и не тратит всю экономику на недоступную цель.