Следующая новость
Предыдущая новость

Дневник разработчиков Stellaris #239 - Улучшение ИИ

Дневник разработчиков Stellaris #239 - Улучшение ИИ

Всем привет, сегодня мы вновь поговорим об ИИ в Stellaris. На связи опять Guido. Со мной сегодня человеческий товарищ Offe, который любит заниматься своими органическими делами. Например, генерировать энергию, перерабатывая фотосинтезированный свет в форме материи посредством употребления в пищу. А мне нравятся бекон и мороженое. Всем нравятся бекон и мороженое. Итак, Offe, передаю слово тебе.

Привет, с вами Offe!

Я человек в возрасте 28 циклов, произведённый и работающий на севере. После двух лет работы в офисе Arctic я теперь являюсь частью команды хранителей на должности младшего программиста. Мы с Guido раньше работали над другими проектами, и он многое рассказал мне о разработке игр. Но самое главное, мне удалось улучшить свои протоколы дипломатического взаимодействия. Моему «это полная катастрофа» он предпочитал «Неплохо, но можно сделать ещё лучше!». В будущем это может пригодиться.

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

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

Изменения в системе должностей

Начну с этого изменения, поскольку оно напрямую затрагивает не только ИИ, но и игроков!

Что было раньше

Каждый раз, когда на планете происходило что-то важное, вроде роста поселения, возведения или улучшения района или сооружения, происходил пересчёт желания поселений (также известного как весовые коэффециенты) работать на доступных должностях. Затем все поселения покидали свои должности и занимали новые.

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

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

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

Как станет в 3.3

  • Все должности на планете обновляются во время ежемесячного обновления.
  • Во время обновления для каждой должности будет убираться или добавляться не более одного поселения.

Наверняка многие из вас уже в ярости сжимают кулаки, представляя, как плавится ваш бедный процессор, поскольку скриптовые подсчёты на большом количестве поселений в Stellaris могут очень сильно его нагружать. Но у меня есть хорошие новости: в 3.2 были лишние подсчёты приоритетов должностей. Удалив их где только можно, мы уже снизили количество рассчётов примерно на 75%.

Более того, приоритет должностей теперь одинаков для населения одного вида, занимающего одну и ту же должность. Это значит, что если на планете работают 40 шахтёров одного вида, то приоритет для них будет подсчитан только один раз вместо 40, как это было в 3.2. Однако не обошлось и без ограничений, поскольку больше нельзя подсчитать базовый приоритет должности на основе данных отдельного поселения, таких как принадлежность к фракции и счастье. В конце концов, большая часть всех подсчётов приоритета должностей была удалена, а должности обновляются ежемесячно.

Благодаря новой системе можно создать самостоятельный скрипт для подсчёта веса должности, который не вызывает постоянно переброса поселений. Например, приоритет производящих блага должностей может зависеть от количества благ на планете, а приоритет силовиков — от уровня преступности.

Задумка такова, что вы не заметите никаких отличий от системы из 3.2, кроме более осмысленного количества поселений на должностях, вроде силовиков и обслуживающих дронов.

Дневник разработчиков Stellaris #239 - Улучшение ИИ
https://forumcontent.paradoxplaza.com/public/786569/AYhCFhqM2Y.gif

Должности для населения

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

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

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

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

Масштабируемые экономические подпланы ИИ

Ранее мы упоминали о намерении добавить масштабируемые подпланы. Так вот, будущее уже наступило, пристегните ремни!

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

Когда я впервые увидел экономические планы Guido, я сразу подумал: «Ого, весьма неплохо, но может стать ещё лучше!». Поэтому я начал работать над масштабируемыми подпланами, целью которых является убрать верхние пределы производства (ранее упоминавшийся потолок в 500 сплавов в месяц в 3.2), оставляя ИИ гибкий план, адаптирующийся к текущей экономики.

Как эта система работает в 3.3

Базовый экономический план сейчас очень скромен, он выставляет минимальную цель для всех жизненно важных ресурсов, таких как минералы, энергокредиты и пища (+20 ежемесячного дохода). Когда эти цели достигнуты, он добавляет немного ТМС, сплавов и науки.

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

Помимо этого, мы добавили 3 условных подплана, доступных материалистам, милитаристам (и государствам с тотальной войной) и спиритуалистам, с большим упором на науку, сплавы и единство в качестве первого шага. Это разнообразит экономику ИИ, чтобы они не развивались под копирку.

Во время теста на сложности «Гросс-адмирал» разум улья достиг прироста в 3К сплавов и 22К науки в месяц к 2422 году (скриншот сделан до переработки единства).

Дневник разработчиков Stellaris #239 - Улучшение ИИ

ИИ и специализация районов и сооружений

Одним из главных преимуществ нас, людей, над ИИ является то, что нам хорошо удаётся продумывать долгосрочную стратегию, исходя из предположений и целей. Например, у нас может быть долгосрочная стратегия превратить ещё даже не колонизированную планету в производственный мир. Как мы уже упоминали в ответах к предыдущему дневнику, экономический ИИ не оперирует понятиями «прошлое» и «будущее», он смотрит лишь на текущую ситуацию и оценивает возможность реализовать свой экономический план. В результате этого ИИ хорошо адаптируется к ситуации, следит за состоянием экономики и быстро реагирует на нехватку любого ресурса, но ему не хватает свойственных нам способностей к долгосрочному планированию.

Так как же ИИ может создавать специализированные миры, не планируя наперёд? Самый простой способ — заменять ранее построенные районы. Допустим, у нас есть 2 мира, на каждом из которых по 5 добывающих и энергетических районов. Мы можем специализировать планету, постепенно заменяя районы по одному за раз, и в итоге получим один мир с 10 энергетическими районами или с 10 добывающими.

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

Дневник разработчиков Stellaris #239 - Улучшение ИИ

ИИ, товары массового спроса, сплавы и категории планет

В версии 3.3 мы добавляем систему, которая позволит ИИ самостоятельно определять категорию планеты, а не использовать заскриптованную систему, с которой сталкивается игрок, если не меняет категории самостоятельно.

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

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

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

Расходование сплавов ИИ

Раз теперь ИИ настраивает производство сплавов и товаров массового спроса по отдельности, то пришло время разобраться с тем, на что он тратит сплавы.

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

Более того, существовала такая проблема: ИИ не строил модули космической базы и не улучшал базу, если на ней существовала открытая ячейка, для которой не подходил ни один модуль в соответствии с шаблонами космических баз ИИ. Например, у ИИ есть шаблон базы типа «Верфь»; если на такой базе была незаполненная ячейка модулей, то ИИ очень стремился построить в ней сборочную верфь «Титанов». Но если соответствующая технология не была изучена, то ИИ застревал на этом этапе и не строил новые космические базы.

В 3.3 очередь приоритетов ИИ на расходы сплавов выглядит примерно таким образом:

  • Строить новые корабли, пока не достигнута максимальная вместимость флотилии.
  • Строить модули космических баз.
  • Строить новые космические базы.
  • Улучшать космические базы.
  • Улучшать корабль (и оборонительные платформы), если это даёт бонус в 30% к мощи флотилии. Улучшать всю флотилию, в которой состоит такой корабль, если она в этот момент находится на верфи. Это экономит сплавы и время!
  • На сдачу строить оборонительные платформы.

Выбор технологий ИИ

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

В 3.2 большинству технологий были приписаны модификаторы, которые увеличивали шанс выбора их ИИ. Однако, если приоритезировать всё, то ничего не оказывается в приоритете. В 3.3 мы прошлись по всем технологиям игры и переработали их приоритеты для ИИ, сделав упор на тех, которые помогут ИИ с расширением в середине и поздней игре. К примеру, технологии, улучшающие производство ресурсов, увеличивающие рост населения и открывающие доступ к ресурсным сооружениям, теперь будут чаще выбираться ИИ.

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

Удаление излишков ИИ

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

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

ИИ взбунтовавшихся служителей и биотрофеи

В этом дневнике разработчиков мы много говорили о способности ИИ соревноваться с игроком в плане экономики, но ещё одна цель переработки ИИ — улучшить ролевую составляющую.

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

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

Сравнение ИИ

Напоследок мы хотели бы показать вам несколько графиков, сопоставляющих ИИ версий 3.2 и 3.3. Обратите внимание, что графики построены на основе одной тестовой партии на сложности «Мичман» и одной тестовой партии на сложности «Гросс-адмирал». Такое сравнение не является неоспоримым доказательством, но отражает разницу между 3.2 и 3.3.

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

Настройки игры:

  • Крохотная галактика.
  • 1 государство ИИ.
  • В роли государства «Объединённые Нации Земли».
  • Середина игры в 2575, поздняя игра в 2600, чтобы соответствующие события не происходили.
  • Карта галактики одинакова при сравнении 3.2 и 3.3, но не совпадает между настройками сложности «Мичман» и «Гросс-адмирал».

Давайте сравним 3.2 и 3.3 на сложности «Мичман»:

Дневник разработчиков Stellaris #239 - Улучшение ИИ

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

Дневник разработчиков Stellaris #239 - Улучшение ИИ

1) Примерно к 150-му году в 3.3 («В разработке») ИИ достигает 32/32 лимита космических баз, исследовав все технологии в игре, что привело к замедлению развития военной мощи.

2) В 3.2, застряв в экономической мёртвой петле примерно на 30 лет после 100 года, ИИ всё-таки смог из неё выбраться, перешёл к бурному экономическому росту и смог быстро заполнить лимит 32 космических баз из-за того, что экономил сплавы на протяжении примерно 30 лет.

На 200-м году разрыв между военной мощью обоих ИИ становится всё меньше и меньше, поскольку они больше не строят кораблей, заполнив лимит космических баз и значительно превысив вместимость флота, что сильно увеличило затраты на его содержание. Разрыв в мощи в 200-м году в основном обусловлен тем, что у ИИ на 3.3 лучше технологии. Однако оказалось, что на сложности «Гросс-адмирал» ИИ некорректно применял повышенный бонус к объёму торговли. Теперь мы это исправили и ИИ становится всё более сильным соперником для игроков.

В общем тесты на сложности «Гросс-адмирал» и «Мичман» проходят по схожему сценарию: первые 100 лет проходят примерно одинаково, но затем разница становится существенной. Тем не менее на сложности «Гросс-адмирал» верхний предел масштабирования ИИ в 3.3 наблюдается примерно на 150–200 годах, поскольку кривая роста военной мощи выравнивается из-за лимита космических баз.

И на сегодня это всё. Если у вас есть вопросы касательно экономики ИИ, не стесняйтесь задавать их под постом на форуме, и я постараюсь ответить на них!

Источник

Последние новости