Найти в Дзене
Александр Ю.

Игра под микроскопом. Производство RGO в Victory.Revolution

Я очень люблю игры Paradox и должен отметить, что они мастера в деле создания глобальных стратегических игр. Когда-то давно, когда у меня было обилие времени, я буквально заигрывался в Victory и ее аддон Revolution. Затем у меня появилось очень-очень много важных дел и игры отошли на другой план, но иногда я возвращался к этой игре и с любопытством прокатывал одну-две каточки (так как на мой дедовский взгляд - это лучшее, что у них получилось из всей линейки по XIX веку). В какой-то момент я внезапно вспомнил, что вообще-то я программист (хоть и с постфиксом “1С”:)) и реализовал парсер save-файлов этой замечательной игры. Вообще, это было задумано для того, чтобы написать классный AAR (after action report) с разными отсылками на экономическое состояние страны и мира, любопытными фактами из жизни армейских корпусов и изменения населения, но парсер и реализация расчета выпуска продукции RGO с анализом обошлись мне примерно в один месяц (или примерно 12-15 часов чистого времени), так что
Оглавление

Как найти задачу на ровном месте?

Я очень люблю игры Paradox и должен отметить, что они мастера в деле создания глобальных стратегических игр. Когда-то давно, когда у меня было обилие времени, я буквально заигрывался в Victory и ее аддон Revolution. Затем у меня появилось очень-очень много важных дел и игры отошли на другой план, но иногда я возвращался к этой игре и с любопытством прокатывал одну-две каточки (так как на мой дедовский взгляд - это лучшее, что у них получилось из всей линейки по XIX веку).

Потрясающая картинка...
Потрясающая картинка...

В какой-то момент я внезапно вспомнил, что вообще-то я программист (хоть и с постфиксом “1С”:)) и реализовал парсер save-файлов этой замечательной игры. Вообще, это было задумано для того, чтобы написать классный AAR (after action report) с разными отсылками на экономическое состояние страны и мира, любопытными фактами из жизни армейских корпусов и изменения населения, но парсер и реализация расчета выпуска продукции RGO с анализом обошлись мне примерно в один месяц (или примерно 12-15 часов чистого времени), так что я слегка устал. Однако, чтобы все это не пропало втуне, то решил сделать пару заметочек об этой воистину прекрасной игре.

Что в черном ящике?

Как я уже упомянул, я реализовал расчета выпуска продукции RGO на основании данных из save-файлов. Давайте, вспомним официальную позицию с wiki (https://vic1.paradoxwikis.com/Production_Output):

POP RGO output = province_value * (culture * size) * building_efficiencies * max_working_hours * work_hour_eff * production_efficiency * {aristocrat} * resource / 5

В ходе исследований выяснилось, что вообще-то описание параметров формулы с wiki несколько не соответствует действительности (возможно потому, что все-таки это аддон revolution, а не vanilla). Пройдемся по параметрам формулы:

  • province_value - 5 * коэффициент эффективности RGO, коэффициент эффективности указан в структурах province в свойстве amount в процентах (то есть цифра 25 означает коэффициент для формулы 0.25). ВАЖНО! В самой игре выводятся цифры с одним знаком после запятой, но для расчета судя по всему используется несколько больше знаков после запятой.
  • culture - для признанных культур -1, для остальных - 0.5.
  • size - как не трудно догадаться зависит от размера pop’а. До 499 - 0.33, до 20000 - 0.5, до 50000 - 0.75, после всегда равно 1.
  • literacy - коэффициент появляется абсолютно внезапно и равен значению (0.5 + literacy / 2).

Маленькая ремарка, фактически зависимость производства от населения выражена формулой: (culture*size*literacy).

  • building_efficiencies - эффективность производства данного строения (да, для целей игры RGO являются строениями, такие дела). Именно этот коэффициент чаще всего изменяется при выпадении каких-либо событий. Посмотреть можно в теле структуры country в свойстве building_efficiencies. Надо отметить, что на старте у большинства стран одинаковая эффективность строений. Например, эффективность grain_farm у 85 стран равна 0.25 (даже у РИ/ОИ), у 42 стран 1.05 и только у старушки Англии 1.65 (было бы, конечно, странно для игры с таким названием, если бы было наоборот).
  • max_working_hours - лимитированность рабочего дня по социальным реформам. Социализм - это очень дорого, товарищи, надо отметить. При неограниченном размере рабочего дня используется коэффициент 1, при 14-часовом - 0.9, при 12-часовом - 0.85, при 10-часовом - 0.8, при 8-часовом - 0.75. То есть, игроку предлагается в добровольной форме отказаться от 25% промышленного потенциала. Любопытно, что со старта у США стоит 12-часовый рабочий день, а Бельгии (такая вот история) - 14-часовой рабочий день.
  • work_hour_eff - эффективность рабочего часа, зависит от исследований в сфере промышленности. Посмотреть можно в теле структуры country в свойстве work_hour_eff. Интересно, что на старте 12 стран имеют эффективность 1.2 (угадайте кто). Все остальные, кроме ZUL имеющих на старте 1, имеют эффективность 1.1.
  • production_efficiency - зависит от развития инфраструктуры в области (в wiki описано, что считается от развития инфраструктуры в провинции) и рассчитывается по формуле: 0.4 + 0.5 railroad_level в провинции + 0.5 * Σ railroad_level в области / количество провинций. На практике это означает, что если у вас область состоит из 4 провинций и при этом в одной уровень железных дорог равен 1, то производственная эффективность в провинции с железной дорогой эффективность будет равна 0.4625, а в остальных 0.4125.
  • aristocrat - коэффициент считается по формуле: 1 + 0.1*size/100000*эффективность аристократов. Коэффициент применяется только для некоторых типов RGO. В wiki указано, что это зерно, фрукты, скот и рыба, но такое чувство, что аристократы также влияют на производство шерсти. В общем относительно этого коэффициента уверенности у меня нет, может быть когда-нибудь я проясню этот вопрос, но не сегодня. За значением коэффициента эффективности аристократов следует идти в save в тело структуры country за значением свойства aristocrat_bonus. Интересно, что на старте нет ни одной страны, которая имела бы этот коэффициент не равный единице.

Важно! Коэффициент рассчитывается от общего количества аристократов в области и влияет одинаково на каждую провинцию в области.

  • resource - по wiki написано, что этот коэффициент варьируется от 0.6 до 1.5 в зависимости от спроса и предложения, но мой 12-летний эксперимент (методика пониже) показал, что никаких вариаций нет. Возможно дело в том, что это addon или в сложности, но факт остается фактом. Строго говоря, такое влияние на собственное производство может обречь игрока постоянно переключать некоторые пограничные производства ресурсов требуемых для собственного производства с закупки на продажу и наоборот.

Маленькие радости любителя “Виктории”.

Топ - 10 областей с наибольшим количеством аристократов на 01.01.1836 года.
Топ - 10 областей с наибольшим количеством аристократов на 01.01.1836 года.
Building efficience по железодобывающей шахте на 01.01.1836 (жадная до индустриализации Пруссия не дремлет)
Building efficience по железодобывающей шахте на 01.01.1836 (жадная до индустриализации Пруссия не дремлет)

Какие ваши доказательства?

Для того, чтобы выглядеть человеком, который провел серьезное исследование (а не просто натырил кусочки из разных источников) я запустил Викусю за Японию, промотал 12 лет (с ежеквартальным сохранением), распарсил каждую полученную сохраненку и сравнил расчетный и фактический выпуск товаров RGO по Японии и, в целом, по миру для каждой сохраненки.

Что важно, у меня практически идеально сходилось японское производство, однако мировое сходиться абсолютно не хотело. В итоге, я обнулил производство шелка во всех странах, кроме Франции. Производство Франции увеличил в 10000 раз и увидел, что в летопись выводится удвоенное производство. Собственно, как только я применил для сторонних стран удваивающий коэффициент - у меня сразу цифры стали очень близкими. Как я подозреваю, этот коэффициент связан со сложностью. Для игрока это значит, что забирая себе чужие провинции он параллельно уменьшает мировое производство, что ведет к повышению цен. Такая вот двойная выгода от агрессивной политики.

Сравнение фактического и расчетного мирового производства шелка
Сравнение фактического и расчетного мирового производства шелка
Сравнение фактического и расчетного мирового производства зерна
Сравнение фактического и расчетного мирового производства зерна
Сравнение фактического и расчетного японского производства рыбы
Сравнение фактического и расчетного японского производства рыбы

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

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

Что в осадке?

Самые внезапные открытия связаны, конечно, с удвоенным производством у соперников и влиянием грамотности. Но я подозреваю, что так как я парсил савки целиком, то открытия далеко не последние.

К сожалению, все выявленные нюансы формулы в русскоязычном сегменте никто никогда не описывал, так что часть вопросов пришлось выявлять самому, что отняло время, а с другой стороны подарило мне удовольствие исследователя. Вообще, конечно, кого я обманываю, мне было классно от разгаданного секрета, а я подступался к нему не один год своей жизни (просто обычно побеждала лень:)).

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

  • #Victoria #Paradox #ИгровыеИсследования #ИгровыеМеханики #Геймдев #НостальгияПоИграм