Сообщество Империал: Как и почему Аи набирает армии в Риме 2 - Сообщество Империал

  • Поиск
  • Законы
  • Сообщество
  • Репутация
  • Экономика
  • БольшеБольше
XX
Imperial

Савромат
Как и почему Аи набирает армии в Риме 2
Campaign AI Recruitment - туториал
Тема создана: 01 Ноябрь 2014, 11:10 · Автор: СавроматСообщений: 10 · Просмотров: 1 855

  • 2 Страниц
  • 1
  • 2
  • Как и почему Аи набирает армии в Риме 2 Вконтакте!
  • Как и почему Аи набирает армии в Риме 2 в Фейсбуке!
  • Как и почему Аи набирает армии в Риме 2 в Google+!
Библиотека

Савромат
    Imperial
    22 640
    Imperial
    364
    Imperial
    3 764
    Imperial
    26 606
    Imperial
    58

Дата: 01 Ноябрь 2014, 11:10

Какие армии набирает Аи - важнейший вопрос для интересной игры. Поскольку я занимаюсь в Дарк-моде основном этими вещами, я знаю как это модифицировать. Но т.к. мне лень писать свой собственный тутор с нуля и я приверженец принципа "Не умножай сущностей сверх необходимых" - я решил оттолкнуться от английского Для просмотра ссылки Зарегистрируйесь , переведя и прокомментировав только то, что я сам делаю и делал.

Набор войск в армии Аи в Риме 2 подчиняется строгим закономерностям и регулируется системой таблиц, доступных для моддинга. Его вполне можно настроить.

1. Система таблиц - cdir table
Связь от юнита до приоритета его набора Аи в игре осуществлена через систему таблиц по схеме:
Config_key -> Template_key -> Template_ratios -> Unit_Group_key -> Main_Unit

Config_key:
Каждая фракция имеет в игре свой Config_key, назначенный для нее в стартпозе.
Compressed_Data -> World -> Faction Array -> Faction Array - "Number" -> Faction, строка 17
Faction Array ID

Вы можете найти все config_key, используемые в игре, в таблице cdir_military_generator_configs_table

Template_key:
Config_key сам по себе не отвечает за структуру набора Аи-армий. Он связывается с template_key в таблице cdir_military_generator_template_priorities_table. А последний уже напрямую выводит Аи на композицию отрядов в армию в игре. Именно так игра распознает какая фракция (config_key) c какой композицией отрядов (template_key) в игре связана. Все template_key используемые в игре вы можете найти в cdir_military_generator_templates_table

Template_ratio:
После того как template_key прописан для фракции (confige_key), он попадает в Group_keys - группы ключей - по которым разные типы армий группируют свои юниты. Group_keys используются для того чтобы разделить юниты по группам - отделить слонов от копейщиков и т.д. Если template_key не входит в Group_keys, Аи не будет набирать отряды этой группы.
cdir_military_generator_template_ratios_table - одна из главных таблиц от которых зависит приоритет набора отрядов в армии Аи. В какую группу какая композиция имеет доступ - определяет что будет в армии Аи а чего нет. Не поставите вы римскую композицию в группу слонов - не будет римский Аи слонов набирать никогда. Уберете композицию номадов из группы тяжелой копейной пехоты - не будет Аи кочевников набирать тяжелых копейщиков.

Unit_group_key:
Связь каждого юнита игры с группой (Group_keys) осуществляется через cdir_military_generator_unit_qualities_table, где unit_key из main_units_table сопрягается с Group_key и этому сопряжению выставляется цифровое значение приоритетности (quality) - чем выше, тем в рамках одной группы Аи будет больше стремится такой юнит набрать
Все используемые игрой группы юнитов можно найти в cdir_military_generator_unit_groups_table.

2. Таблицы отвечающие за набор отрядов
cdir_military_generator_unit_qualities_tables
cdir_military_generator_template_ratios_tables
cdir_unit_balances_tables - некоторые считают что она не работает совсем, я же не могу этого подтвердить; в этой таблице задается идеальный баланс типов юнитов (group_keys) в армии в пропорции и по количеству отрядов в стеке из 20 юнитов. Имхо она работает так же как "идеальный тип политики" в Риме 1 (помните, эти "balanced caesar", "fortified napoleon"? - такие же рекомендательные - необязательные - ориентиры для Аи)

cdir_military_generator_unit_qualities_tables

group_key: Этот ключ определяет к какой группе юнитов отряд принадлежит.
unit_key: Ключ юнита, отсылающий таблицу к main_units
quality: Цифры определяют приоритет набора отряда для Аи. Чем выше значение, тем больше Аи будет стремиться набрать этот отряд в рамках одной и той же группы (group_key)

cdir_military_generator_template_ratios_tables

template_key: Этот ключ определяет шаблон (композицию отрядов)
unit_group_key: Этот ключ определяет группу отрядов, которой соотносится шаблон (композиция).
ratio: Этот ключ определяет сколько отрядов указанной группы будет набирать Аи (в штуках в размерах фракции!). Чем больше значение - тем больше Аи наберет отрядов этой группы. Можно ставить от 1 до 99999. Х.з., я видел и больше отрядов одной группы у фракции. Имхо - он набирает в соотношении. Т.е. если Риму указано 15 отрядов штурмовой пехоты, 4 копейной пехоты, 4 стрелковой пехоты, 4 артиллерии, 5 штурмовой кавалерии, 1 верблюда, 1 слона, 1 ударной конницы и 1 стрелковой конницы - он такой набор и сделает, а потом начнет в рамках лимита армий по следующему кругу повторять.

3.Приоритетность набора для Аи

Этот сюжет проиллюстрирую на примере набора Аи египетских лучников (Egy_Archers) и египетских метателей дротиков (Egy_Favelinmen). В ваниле Аи Птолемеев набирает дротикометателей чаще чем лучников, хотя польза от последних по факту больше.

cdir_military_generator_unit_qualities_tables - table fragment

Ванила:
Default_land_infantry_missile Egy_Archers 500
Default_land_infantry_missile Egy_Javelinmen 534

Изменения:
Default_land_infantry_missile Egy_Archers 550
Default_land_infantry_missile Egy_Javelinmen 400

Итог:
Аи будет набирать египетских лучников охотнее чем египетских метателей дротиков.

Значение quality таблицы cdir_military_generator_unit_qualities_tables действительно только в рамках одной группы юнитов (group_key) и не имеет никакого отношения к величине guality юнитов других групп!

Вот, собственно, и все. Можно ввести в игру дополнительные группы юнитов и композиции набора, но это уже тема другого разговора. :003:

    papeion
      Imperial
      1 898
      Imperial
      9
      Imperial
      172
      Imperial
      1 635
      Imperial
      0

    Дата: 25 Ноябрь 2014, 11:59

    Цитата: "Можно ввести в игру дополнительные группы юнитов и композиции набора, но это уже тема другого разговора".
    Хорошая тема для другого разговора. Хотелось бы знать, когда создаёшь дополнительную группу юнитов, то куда её необходимо прописывать.
    А то хотел разделить штурмовую пехоту римлян на три группы:
    - элита (преторианцы и преторианская гвардия, первая когорта и когорта орла)
    - ветераны (принципы, легионеры-ветераны, когорта эвокатов)
    - остальная штурмовая пехота (гастаты, легионеры, когорта легионеров). Тут подойдёт ванильная группа.

    А то если есть деньги, АИ нанимает стек элиты или ветеранов. Как бы неисторично получается и геймплей не тот.

    Общим я сделал так:
    В cdir_military_generator_unit_groups создал две дополнительные группы (для элиты и для ветеранов штурмовой пехоты)
    В cdir_military_generator_unit_qualities привязал к ним соответствующих юнитов
    В cdir_military_generator_template_ratios_tables привязал эти группы к фракции и выставил приоритет найма.
    Надеюсь будет работать.

      ZhoiYn
        Imperial
        723
        Imperial
        2
        Imperial
        24
        Imperial
        549
        Imperial
        0

      Дата: 15 Март 2016, 15:37

      А как это влияет на набор с сатрапий? Или, например, отказ от фаланги в поздней игре в ДМ? Целая группа ведь исчезла

        nnn900
        • Imperial
          Imperial
          2 485
          Imperial
          5
          Imperial
          327
          Imperial
          3 569
          Imperial
          1

        Дата: 15 Март 2016, 17:23

        Для просмотра ссылки Зарегистрируйесь ZhoiYn

        А как это влияет на набор с сатрапий? Или, например, отказ от фаланги в поздней игре в ДМ? Целая группа ведь исчезла

        На набор с сатрапий не знаю, а по группе - цифровые значения групп - это пропорция, к тому же в ванильном раскладе фалангиты находятся в одной группе с копейщиками - Default_land_infantry_spearmen и соответственно, если в ДМ это не изменено и им не обособлена группа, то исчезнувших фалангитов ИИ будет другими войсками из этой группы замещать. А если выделена, то просто изменится пропорциональное соотношение оставшихся типов войск.
        Кроме того ИИ принимает во внимание при наборе войск так же заданные в campaign_variables_tables приоритеты, указанные в шести строках cdir_unit_quality_

          rawhide
            Imperial
            9 486
            Imperial
            29
            Imperial
            653
            Imperial
            11 317
            Imperial
            2

          Дата: 15 Март 2016, 20:36

          Для просмотра ссылки Зарегистрируйесь nnn900

          Кроме того ИИ принимает во внимание при наборе войск так же заданные в campaign_variables_tables приоритеты, указанные в шести строках cdir_unit_quality_

          а не могли бы вы написать об этом чуть подробнее?
          к примеру, в ваниле TWA в этих строках у 5 из 6 параметров значится 100 (процентов?)
          и у одного - 50 (cdir_unit_quality_experience_value). что вообще это все означает?

          то, что эти строки могут влиять на приоритеты набора в зависимости от характеристик брони/чарджа/"убойности" оружия/морали отрядов, или что-то еще?
          если мое предположение верно, то получается, что при значении всех параметров в 100 они как бы деактивированы, не влияют на набор. а изменив их, можно подтолкнуть Аи нанимать больше высокоморальных отрядов или заставлять формировать армии из бронированных чарджеров (т.е. катафрактов).
          или я неправильно предположил?

          ps: еще одно предположение. может это дополнительные модификаторы авторасчета?

            nnn900
            • Imperial
              Imperial
              2 485
              Imperial
              5
              Imperial
              327
              Imperial
              3 569
              Imperial
              1

            Дата: 16 Март 2016, 06:00

            Для просмотра ссылки Зарегистрируйесь rawhide

            Для просмотра ссылки Зарегистрируйесь nnn900

            Кроме того ИИ принимает во внимание при наборе войск так же заданные в campaign_variables_tables приоритеты, указанные в шести строках cdir_unit_quality_

            чуть подробнее?
            к примеру, в ваниле TWA в этих строках у 5 из 6 параметров значится 100 (процентов?)
            и у одного - 50 (cdir_unit_quality_experience_value). что вообще это все означает?

            то, что эти строки могут влиять на приоритеты набора в зависимости от характеристик брони/чарджа/"убойности" оружия/морали отрядов, или что-то еще?
            если мое предположение верно, то получается, что при значении всех параметров в 100 они как бы деактивированы, не влияют на набор. а изменив их, можно подтолкнуть Аи нанимать больше высокоморальных отрядов или заставлять формировать армии из бронированных чарджеров (т.е. катафрактов).
            или я неправильно предположил?

            Эти модификаторы в РИМ 2, насколько позволяют судить мои эксперименты, весьма значимы для ИИ и вполне могут перебить значения приоритетов из cdir таблиц.
            Они задают ИИ приоритет набора по указанному параметру и между собой похоже напрямую не взаимодействуют, то есть выставив всем 100 они не обнуляются, а вот если их обнулить - ИИ начинает клепать войска практически полностью по заданным в СДИР шаблонам, при наличии у него средств и доступности видов войск конечно.
            Я из-за этого с сариссофорами намучился т.к. у них сделал статы оружия и чарджа низкими без абилки "фаланга" и броня от щита у них небольшая и ИИ при ванильных значениях в этих строках очень неохотно их набирал.

            Для просмотра ссылки Зарегистрируйесь rawhide

            ps: еще одно предположение. может это дополнительные модификаторы авторасчета?

            Интересно, нужно будет проверить.

              rawhide
                Imperial
                9 486
                Imperial
                29
                Imperial
                653
                Imperial
                11 317
                Imperial
                2

              Дата: 16 Март 2016, 09:06

              Для просмотра ссылки Зарегистрируйесь nnn900

              могут перебить значения приоритетов из cdir таблиц.
              Они задают ИИ приоритет набора по указанному параметру и между собой похоже напрямую не взаимодействуют, то есть выставив всем 100 они не обнуляются, а вот если их обнулить - ИИ начинает клепать войска практически полностью по заданным в СДИР шаблонам, при наличии у него средств и доступности видов войск конечно.
              о как. интересно, надо будет испытать - как отреагирует АИ на изменения такого рода.
              попробую какому-нибудь доступному со старта отряду задать высокий чардж одновременно сильно занизив его условную ценность в unit_qualities
              :046:

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

              Для просмотра ссылки Зарегистрируйесь rawhide

              ps: еще одно предположение. может это дополнительные модификаторы авторасчета?

              Для просмотра ссылки Зарегистрируйесь nnn900

              Интересно, нужно будет проверить.
              мне так показалось по двум причинам. первая - то, что при авторасчете имеет значение условная ценность отрядов из того же cdir_military_generator_unit_qualities_tables. а вторая - сам набор этих cdir-переменных в campaign_variables. то, что строчки, касающиеся базовых параметров имеют значение 100, а строчка опыта - 50. в таком сочетании (и с учетом п.1 ) может оказаться так, что при автосравнении силы армий опыт отрядов играет меньшую роль. это было бы логичным шагом СА для уравнивания шансов игрока и АИ (железка почти не умеет прокачивать опыт войскам)

                nnn900
                • Imperial
                  Imperial
                  2 485
                  Imperial
                  5
                  Imperial
                  327
                  Imperial
                  3 569
                  Imperial
                  1

                Дата: 16 Март 2016, 16:19

                Для просмотра ссылки Зарегистрируйесь rawhide

                то, что строчки, касающиеся базовых параметров имеют значение 100, а строчка опыта - 50. в таком сочетании (и с учетом п.1 ) может оказаться так, что при автосравнении силы армий опыт отрядов играет меньшую роль. это было бы логичным шагом СА для уравнивания шансов игрока и АИ (железка почти не умеет прокачивать опыт войскам)

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

                  rawhide
                    Imperial
                    9 486
                    Imperial
                    29
                    Imperial
                    653
                    Imperial
                    11 317
                    Imperial
                    2

                  Дата: 16 Март 2016, 16:33

                  Для просмотра ссылки Зарегистрируйесь , ага, значит это дело влияет на чувствительность авторасчета к параметрам юнитов. отлично, из этого можно многое вытащить в планировании кампании. :006:.

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

                  с этим можно обострить такие штуки, как противостояние Востока-Запада, Степи и оседлых краев, варваров и цивилизации (возможно вместе с соответствующим редактированием статов юнитов в разных культурных группах)

                  заодно ваши наблюдения подтвердили предположение о том, что влияние опыта на автобои искусственно занижено СА :008:
                  (в TWA против experience в этих строках в ваниле стоит 50, у прочих параметров - 100 единиц)

                    thrungpa
                    • Imperial
                      Imperial
                      58
                      Imperial
                      0
                      Imperial
                      0
                      Imperial
                      17
                      Imperial
                      0

                    Дата: 31 Март 2017, 02:17

                    Для просмотра ссылки Зарегистрируйесь rawhide

                    при авторасчете имеет значение условная ценность отрядов из того же cdir_military_generator_unit_qualities_tables

                    Совершенно точно, что не имеет. Случайно наткнулся на это сообщение, удивился, испугался :0142: и провел ряд тестов. И было бы странно, если бы приоритеты найма влияли на авторасчет.
                      • 2 Страниц
                      • 1
                      • 2
                      • Как и почему Аи набирает армии в Риме 2 Вконтакте!
                      • Как и почему Аи набирает армии в Риме 2 Фейсбуке!
                      • Как и почему Аи набирает армии в Риме 2 Google+!
                      Лента Новостей

                      Введите ваши имя форумчанина и пароль:

                      Введите Ваше имя  
                      [Регистрация нового аккаунта]
                      Введите Ваш пароль 
                      [Восстановить пароль]

                      Воспользуйтесь одной из социальных сетей для входа на форум:


                      Внимание: Реклама отключена для зарегистрированных посетителей

                      Стиль
                         21 Окт 2017, 08:10
                      © 2017 «Империал». Условия предоставления. Ответственность сторон. Декларация о Сотрудничестве. Лицензия зарегистрирована на: «Империал». Счётчики