Всем привет, на связи Uveso! Добро пожаловать в журнал разработки ИИ для Sanctuary!
Этот блог для игроков которые любят играть против ИИ и моддеров, которые хотят возиться с ИИ, либо разработать свой собственный.
На каком языке говорит ИИ?
Основной фреймворк ИИ, где принимаются все решения, написан на Lua.
Здесь принимаются решения касательно текущих стратегий ИИ; выполняются поддерживаемые ИИ функции игроков и скрипты миссий.
Здесь также осуществляется управление работой баз.

После того, как ИИ выбрал стратегию, мы медленно покидаем программу на Lua.
Движения юнитов, поиск путей, постройка юнитов запускаются через Lua но реализованы с помощью функций C#.
Таким образом мы получаем легко модифицируемую среду для ИИ и все еще можем контролировать тысячи юнитов.
Как будет работать ИИ?
(Внимание, дальше мы углубляемся в код. )
Сперва запускается менеджер стратегии ИИ.
Это означает, что мы запускаем независимый поток Lua программы, который ничего не делает, кроме постоянного запуска таблицы и проверки, являются ли определенные условия истинными или ложными. Если все условия стратегии истины, стратегия сохраняется.
Несколько стратегий могут быть активны одновременно.
Как именно это работает?
Во-первых, давайте взглянем на составитель стратегий:

У нас здесь StrategyName (название стратегии) и StrategyDescription (описание), которые используются в пользовательском интерфейсе.
Тут появляется AIDifficulty (уровень сложности ИИ). В нашем примере, стратегия будет выполнена, только если сложность ИИ средняя и выше.
Все стратегии выполняются в порядке приоритета. Приоритет 100 выполнится раньше приоритета 50.
А сейчас, сердце нашего Составителя Стратегий, StrategyConditions (условия). Все перечисленные условия должны быть истинными, чтобы стратегия применялась.
Здесь могут быть условия для числа юнитов и вражеских построек; условия карты.
В нашем случае мы проверяем, производим ли мы энергии меньше в 10 раз, чем ресурсов ( энергия <= ресурсы * x = истина )
Если выражение истинно, стратегия станет активной и приведет к постройке большего количества энергопроизводящих строений.
Что случится дальше, вы узнаете в следующем журнале разработки.
Спасибо за внимание, надеюсь, вам было интересно.
С наилучшими пожеланиями, Uveso.
Comments