Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimPolEc

Симулятор экономики государства с живым рынком, сословиями и реальным временем.

Бунга Унга — крестьянская страна, в которой нет ни одного завода. Хлеб растят крестьяне, одежду и мебель шьют и строгают кустари, горожане живут торговлей и ремеслом. Ни рудников, ни металлургии, ни станков: инструментов и электроники в стране просто нет. Вы — промышленник, и первый завод здесь будет вашим.

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

Запуск

Зависимостей нет — нужен только Python 3.10 или новее.

python run.py

Откройте http://127.0.0.1:8000. Форма встречает двумя вкладками: Вход — для тех, кто уже играет, Регистрация — имя, пароль (не короче восьми символов) и государство, в котором открывать дело.

Для отладки удобно ускорить время:

SIMPOLEC_TICK=5 python run.py     # пейдей раз в 5 секунд

На Windows (PowerShell):

$env:SIMPOLEC_TICK=5; python run.py
Переменная Смысл По умолчанию
SIMPOLEC_TICK длина пейдея в секундах 900
SIMPOLEC_AUTOTICK 0 — не тикать по таймеру, только из админки 1
SIMPOLEC_DB файл базы simpolec.db
SIMPOLEC_ADMINS имена администраторов через запятую пусто
SIMPOLEC_PW_MIN минимальная длина пароля 8
SIMPOLEC_TLS_CERT сертификат .pem — включает HTTPS пусто
SIMPOLEC_TLS_KEY закрытый ключ к сертификату пусто
SIMPOLEC_HTTP_PORT порт, перенаправляющий на https (0 — не поднимать) 0
SIMPOLEC_TRUST_PROXY 1 — верить X-Forwarded-For (только за своим прокси) 0

Мир сохраняется в SQLite и переживает перезапуск. Чтобы начать заново — удалите simpolec.db.

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

Вход, пароли и HTTPS

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

Подбор пароля упирается в счётчик промахов (app/ratelimit.py). Считается по двум ключам сразу: по имени игрока — чтобы ботнет с тысячи адресов не перебирал пароль к одному аккаунту, и по адресу — чтобы с одной машины не перебирали имена. Пять промахов подряд по имени (двадцать по адресу) запирают вход на минуту, каждый следующий запор вдвое длиннее — до часа. Счётчики живут в памяти сервера. Пароль хешируется PBKDF2-SHA256 (120 000 итераций) с личной солью; когда имени в мире нет, хеш всё равно считается — по времени ответа не должно быть видно, есть такой игрок или нет.

HTTPS. Пароль ходит в теле запроса, поэтому наружу игру можно пускать только по TLS. Сертификат для локальной пробы:

python tools/make_cert.py
python run.py --cert cert.pem --key key.pem --http-port 80

Ключ --http-port поднимает рядом маленький сервер, который отвечает на http только перенаправлением на https (308). Под TLS ответы получают заголовок HSTS (SIMPOLEC_HSTS, по умолчанию 180 дней) — без TLS он не отправляется, иначе браузер запомнил бы обещание и перестал пускать на локальный http.

Самоподписанному сертификату браузер не поверит и покажет предупреждение — для локальной сети это нормально, пароль по проводу всё равно идёт зашифрованным. Для сервера в интернете берите настоящий сертификат (Let's Encrypt) или ставьте впереди обратный прокси, который делает TLS сам; во втором случае включите SIMPOLEC_TRUST_PROXY=1, иначе все игроки сольются для счётчика промахов в один адрес — адрес прокси.

Любой ответ несёт Content-Security-Policy, X-Content-Type-Options: nosniff, X-Frame-Options: DENY и Referrer-Policy: no-referrer. Inline-скрипты и стили политика разрешает — разметка держит обработчики в onclick, — но всё внешнее рубит.

Чат

Кружок в правом нижнем углу разворачивается в окно с тремя каналами: Мир — слышно всем, Государство — только гражданам своей страны, Личные — переписка один на один с любым игроком. Непрочитанное считается по каждому каналу и по каждому собеседнику отдельно и висит счётчиком на кружке. Переписка лежит не в снимке мира, а своей таблицей в SQLite, и хранится последними несколькими тысячами сообщений.

Админка

Раздел появляется в меню только у администратора. Первого взять неоткуда, кроме как снаружи игры:

$env:SIMPOLEC_ADMINS="ВашеИмя"; python run.py

Дальше права раздаются из самой админки. Что она умеет:

  • ход времени — остановить и запустить пейдеи, сменить их длину, прокрутить до пятидесяти пейдеев подряд (история для графиков пишется по каждому);
  • чат — лишить игрока слова на срок или навсегда, снять немоту, удалить отдельное сообщение или очистить канал целиком;
  • игроков — выдать или списать деньги, объявить банкротом и вернуть в дело (вместе со снятием замков с цехов), выдать права администратора;
  • государства — пополнить или обчистить казну (через роспись бюджета, поэтому отчёт лидера продолжает сходиться до червонца), посадить лидера или вернуть страну под управление AI.

Кнопки «Пейдей» в шапке больше нет: время двигает либо таймер, либо админка.

С чего начать играть

  1. Откройте вкладку Население. Там написано, сколько человек зарабатывает в деревне — это ваша планка. Платить меньше бессмысленно: никто не придёт.
  2. Вкладка Строительство. Смотрите не только на прибыль с работника, но и на столбцы «сырьё» и «сбыт». Завод, построенный раньше своей сырьевой базы, будет стоять и жечь деньги; завод, построенный на затоваренный рынок, будет работать и всё равно не приносить денег — товар просто ляжет на склад.
  3. Начинать почти всегда стоит с того, что деревня уже даёт: лес, зерно, хлопок лежат на рынке дёшево. Лесопилка и ткацкая фабрика окупаются сразу.
  4. Стройте цепочкой в одной отрасли: лесозаготовка → лесопилка → мебельная фабрика в одной области работают заметно лучше трёх случайных заводов (см. раздел «Отрасли и цепочки»). Заодно вы сами становитесь покупателем собственного сырья — а значит, сбыт не упирается в чужой спрос.
  5. Инструменты и электроника продаются втрое дороже расчётной себестоимости — но чтобы их делать, придётся поднять всю цепочку: рудник, шахту, металлургию. Это и есть главная партия.

Второго такого же завода в одной области не строят: вместо десятка одинаковых лесопилок во дворе поднимается одна, но уровнями. В соседней области — пожалуйста, там свой рынок и своя рабочая сила.

Сословия

Сословие Чем живёт Может уйти на завод
Крестьяне Земля и наём на фермы. Едят своё зерно, излишек несут на рынок да
Кустари Ремесло: еда, одежда, мебель — куда выгоднее да
Рабочие Зарплата на предприятиях
Городская беднота Услуги: мелкая торговля, подёнщина да
Средний класс Услуги: лавки, ремесло, контора да
Высший класс Услуги и земельная рента с деревни нет
Солдаты Жалованье из казны отдельной статьёй нет
Офицеры Жалованье из казны, вчетверо солдатского нет

Сколько и чего сословие потребляет, определяется его уровнем жизни — см. отдельный раздел ниже. Разбогатевшие крестьяне и кустари не откладывают деньги мёртвым грузом: они берут больше той же еды, а потом добавляют к столу мясо и вино.

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

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

Выгода при этом взвешивается на исполнимость: ремесло, для которого на прилавке нет сырья, не манит никого, сколько бы ни сулило. Без этой поправки кустари шли туда, где маржа лучше всего на бумаге, — в инструменты и оружие, которых без стали не сделать, а сталь не плавит никто. Цена такого товара стоит у потолка коридора, «прибыль» по ней выходит самой заманчивой в списке, и до 87% сословия простаивало впустую. Заодно поправка поднимает цепочку сама собой, снизу вверх: пока ткани нет, шить не из чего, и кустари берутся ткать; появилась ткань — открывается шитьё.

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

Разорённое ремесло уходит в деревню — и может пропасть совсем

Кустарь и крестьянин — одни и те же люди, и ходят они туда-сюда каждый пейдей. Тянет к верстаку заработок, гонит от него разорение и голод, и обе силы действуют разом: считаются оба потока, а движется разница. Ветвлением «или туда, или сюда» тут не обойтись — голод у кустаря не равен нулю почти никогда, и одна лишь ветка бегства выкосила бы сословие даже там, где ремесло прекрасно кормит.

Меры разорения и голода — разные, и доли у них отличаются на порядок:

Что случилось Как меряется Сколько уходит за пейдей
Забрали сбыт — завод перебил цену, и заказов нет денежный доход кустаря провалился ниже крестьянского до 45% сословия
Не кормит — живёт хуже деревни и бедствует уровень жизни против деревенского, помноженный на нужду до 5%

Разница не в строгости, а в том, есть ли кому заменить выпуск. Разорение означает, что товар кустаря делает кто-то ещё — тот самый завод; значит, уходящих есть кем заменить, и страна без одежды не останется. Голод не означает ничего подобного: он у кустаря — не поломка, а устройство хозяйства, ведь хлеб он покупает, а крестьянин ест свой. Прогон с одинаковыми долями это и показал: сословие уходило в деревню начисто по всему миру, включая страны без единого завода, одежда дорожала вчетверо, уровень жизни падал у всех с 0.41 до 0.25, области садились бунтовать — а бунт добивал те самые заводы, ради которых всё затевалось.

Само разорение меряется по двум пейдеям сразу и растёт квадратично: один неурожай или случайная просадка цены ничего не доказывают, а вот выручка, упавшая в ноль и вчера, и сегодня, — доказывает всё.

Пропасть совсем ремесло может только от разорения. Обезлюдевший (меньше 2% деревни) и потерявший сбыт остаток расходится по деревне целиком, и сословие исчезает из области. Обратный ход при этом остаётся: когда изделий не хватает и цены на них уходят вверх, деревню зовёт обратно уже не чужой доход, а расчётная маржа ремесла при нынешних ценах — кустарей-то нет, и сравнивать не с чем. Без этой ветки первый же завод убивал бы ремесло в стране навсегда, вместе с одеждой, мебелью и инструментом, которые до второго завода делать больше некому.

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

Горожане не производят ничего вещественного: они заняты торговлей, ремеслом и искусством, то есть производят «Услуги» — товар, который покупают все остальные. Отсюда у них постоянный, но плавающий доход, и при этом деньги не берутся из воздуха. Городские классы отличаются уровнем потребления: высший потребляет втрое с лишним больше низшего.

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

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

Офицер — не «солдат подороже». Штыков он армии не прибавляет: сколько бы офицеров ни было, воюют солдаты. Он прибавляет ей умения — см. «Качество командования» в разделе про фронты. Живёт офицер заметно лучше солдата (потребляет вдвое), содержание его вчетверо дороже и идёт из того же военного бюджета, поэтому каждый офицер — это несколько несодержанных солдат.

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

Лестница еды

Еда — не один товар, а три ступени, и в этом весь смысл: сытость покупается дёшево, а хорошая еда — дорого, и именно она двигает уровень жизни вверх.

Ступень Разряд Кто делает Из чего
Зерно — хлеб насущный 1, необходимое крестьяне со своих наделов, «Ферма» земля
Продовольствие — мука, крупа, масло, выпечка, копчёное 2, обиход «Пищевой завод» зерно ×3
Мясо роскошь «Скотоводческая ферма» зерно ×7

Зерно стоит в первой ступени потребности и почти не зависит от цены: голодным человек не остаётся, пока хлеб есть. Продовольствие — ступень выше, и стоит она намеренно невысоко и недорого, чтобы до неё дотягивалась и деревня: это первое, ради чего крестьянину есть смысл зарабатывать деньги, и первое, что растёт вместе с достатком. Мясо лежит в лестнице роскоши и открывается ожиданиями. Одна и та же сытость, купленная выше по лестнице, стоит дороже и даёт больший уровень жизни — это и есть то, ради чего игроку строить пищевой передел.

Ступеней было четыре: между зерном и продовольствием стояли «Продукты» со своей «Мельницей». Передел оказался лишним. Два цеха подряд на одно и то же зерно только задирали цену готовой еды — она уходила из бедных корзин в верхние и переставала быть тем, ради чего деревня зарабатывает, — а игроку добавляли постройку без собственного смысла.

Количества в корзине подобраны так, чтобы вся лестница стоила примерно столько же, сколько стоила прежняя одна «Еда». Иначе перемена вышла бы не переменой устройства, а простым подорожанием жизни: корзина потяжелела бы, уровень жизни у всех просел бы, и страна села бы бунтовать — при том, что ест человек ровно столько же.

Ферма нанимает деревню, а не разоряет её

Раньше «Ферма» была обычным заводом с рабочими, и получалась ловушка: стоило игроку её поставить, как зерно дешевело, деревня теряла единственный денежный доход, уровень жизни падал — промышленность разоряла село самим фактом своего появления. Строить ферму было вредно для страны, и это ломало всю агропромыш­ ленную ветку.

Теперь у деревни один хлеб на всё: она его ест и им же торгует, а «Ферма» — единственная отрасль, где работают крестьяне, а не рабочие:

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

Итог для игрока: ферма даёт крестьянину почти втрое больше зерна, чем его собственный надел, — значит есть из чего платить выше его альтернативы и всё равно оставаться в прибыли. Зерна в стране становится больше, оно дешевеет, а село живёт жалованьем и на сэкономленном впервые покупает продукты, продоволь­ ствие и мясо. Равновесие самонастраивающееся: фермы расширяются, пока зерно не подешевеет настолько, что маржа закроется.

Цена зерна считается по ВСЕМ, кто его растит

Это тот самый гвоздь, на котором держится всё вышеописанное. Себестоимость товара в области выводится из выпуска всех производителей: заводского — по его фактическим затратам, деревенского — по рецептурной оценке крестьянского труда, и обе складываются с весом своего выпуска.

Пока считалось иначе, ферма разоряла село самим фактом появления. Выпуск предприятий движок ведёт отдельно от деревенского, и стоило поставить ферму, как себестоимость зерна начинала считаться по ней одной — хотя на её долю приходилась пятая часть хлеба в области. Ферма втрое производительнее надела, значит её себестоимость втрое ниже: якорь зерна обваливался вслед за ней, а деревня, продававшая остальные четыре пятых, теряла половину выручки за один пейдей.

Малая ферма деревне во вред, большая — во благо

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

Хозяйство в области Нанято Доход крестьянина Уровень жизни: крестьяне / беднота / средний класс Зерно
нет ферм 2.86 ₡ 0.44 / 0.57 / 0.61 1.93 ₡
ферма ×3, пищ. завод ×2 60 тыс. 2.75 ₡ 0.39 / 0.44 / 0.47 1.47 ₡
ферма ×8, пищ. завод ×4 160 тыс. 3.17 ₡ 0.42 / 0.51 / 0.54 1.25 ₡
ферма ×14, пищ. завод ×7 280 тыс. 3.88 ₡ 0.48 / 0.60 / 0.64 1.35 ₡
ферма ×22, пищ. завод ×11 440 тыс. 4.97 ₡ 0.52 / 0.64 / 0.70 1.48 ₡

(140 пейдеев, столичная область Аркадии, ставка фермы — 1.35 от дохода с надела.)

Это не баг, а честная агротехническая яма: индустриализация села проходит через провал, и вытаскивает из него только масштаб. Пищевой завод рядом стоит ставить сразу — он выкупает зерно у фермы и не даёт цене провалиться.

Как устроены цены

Это главная механика, поэтому подробно.

У каждого товара есть якорь — сглаженная себестоимость производства (сырьё по текущим ценам плюс труд и содержание) с небольшой нормальной наценкой. Якорь не константа: подорожало сырьё — подорожал и якорь.

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

Порченое не считается. Всё съедобное теряет долю запаса за пейдей, и по лестнице еды неровно: зерно в амбаре подъедают мыши, продукты лежат лучше, готовое продовольствие — ещё лучше, а мясо портится быстрее всего. Переработка затем и нужна, чтобы хлеб дожил до весны. Списывается порча с самих лотов, а не только с тех складов, куда товар расходится. Иначе рынок каждый пейдей видел бы на 8% больше хлеба, чем его есть, и этим призраком питались бы сразу трое: цена, обозы и биржа.

Вокруг якоря цена гуляет в мягком коридоре от 55% до 400% себестоимости. Мягком — потому что вместо грубого обрезания используется насыщение в логарифмическом пространстве:

u = ln(цена / якорь)
u += эластичность × дисбаланс(спрос, предложение)
u  = u_max × tanh(u / u_max)

tanh даёт ровно то, что нужно от рыночной цены:

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

Поэтому хлеб в неурожай честно дорожает втрое, а залежавшаяся мебель падает ниже себестоимости — но ни один товар не может стоить ни 0.001, ни миллион.

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

Как читать полоску коридора. Серая риска ровно посередине — якорь, то есть нормальная цена; точка — текущая. Шкала логарифмическая и одинаковая в обе стороны: пол у левого края, потолок у правого, и отклонение вниз читается так же честно, как вверх. Линейная по деньгам шкала здесь врала грубо: границы стоят на 0.55 и 4.00 якоря, значит сам якорь оказывался на 13% ширины, у левого края, — товар, продающийся ровно как надо, выглядел лежащим на дне, а вся правая половина полосы доставалась ценам от двух себестоимостей и выше, которых в живой экономике почти не бывает.

Цвет говорит о наценке — глазами промышленника, а не покупателя. Раскраска однонаправленная: чем больше наценка, тем зеленее.

Наценка Цвет Что это значит
ниже ×1.00 красный торгуют ниже себестоимости, держать такой цех себе в убыток
до ×1.12 жёлтый тоньше обычной прибыли дела, цех сводит концы с концами
до ×1.60 зелёный обычная прибыль — столько платит рынок за налаженное
выше золотой дефицитная сверхприбыль: вот сюда и стоит строиться

Прежняя палитра красила высокую наценку красным (дорого покупателю), а низкую — зелёным, и понять по ней, куда вкладывать деньги, было решительно невозможно: цвет советовал прямо противоположное тому, ради чего игрок на эту таблицу смотрит. Пороги приходят с сервера вместе с ценами, поэтому легенда под таблицей не может разъехаться с раскраской.

Ключевые решения в движке

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

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

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

Выручка предприятия — это деньги, а не выпуск. Прибыль цеха считается по факту продаж: сколько его товара действительно купили, столько он и заработал. Считать «весь выпуск × цена» нельзя — на затоваренном рынке предприятие показывало бы бодрую прибыль, пока касса хозяина уходит в минус: продать он ничего не может, а зарплаты, содержание и налоги платит. Отсюда же и налог на прибыль берётся с полученных денег, а не с намерений.

Из этого следует порядок тика: итоги предприятий подводятся после обозов и биржи (settle_profits), потому что вывоз — такая же продажа, и завод, работающий на экспорт, не должен числиться убыточным. Если у хозяина в одной области два цеха одного товара, продажа делится между ними по выпуску этого пейдея; если цех стоит, а склад распродаётся, — по уровням.

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

Простой оплачивается не полностью. Не привезли сырьё — цех стоит, и людей отправляют по домам. Если платить полную зарплату за простой, завод, построенный раньше своей сырьевой базы, разоряет владельца за несколько пейдеев.

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

Своё съеденное засчитывается. Крестьянин, ни разу не зашедший в лавку, сыт — и в расчёте довольства это учитывается. Без такой поправки самое благополучное сословие числилось бы голодающим.

Эффект богатства. Норма потребления — минимум, а не потолок. Если этого не учесть, доходы сверх нормы копятся мёртвым грузом, выручка производителей оказывается меньше выплаченных доходов, и весь частный бизнес живёт в убыток. Отсюда вырос весь механизм уровня жизни (см. ниже).

Роскоши нужна бронь в бюджете. Строгий приоритет ступеней («сначала всё необходимое, роскошь на сдачу») означает, что роскошь не купят никогда: обычная корзина в этой экономике дороже, чем люди могут себе позволить, и сдачи не остаётся. Поэтому, когда роскошь уже вошла в привычку, под неё бронируется доля бюджета — но только после еды. От вина отказываются не в пользу хлеба, а в пользу новых инструментов.

Налоги возвращаются в оборот. Госрасходы отдают часть казны населению. Без этого канала налоги высасывают деньги из экономики и начинается дефляционная спираль.

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

Склад — по стране, а не по игроку. См. раздел про иностранные инвестиции: общий склад отнимал бы у иностранного завода непроданный товар каждый пейдей.

Себестоимость простоя ограничена рецептом. Цех, которому не подвезли сырьё, платит зарплату полностью, а выпускает почти ничего. Делить одно на другое буквально нельзя: при выпуске в сотые доли единицы «себестоимость» уходит в миллионы, за ней ползёт якорь, за якорем цена — и область улетает в гиперинфляцию на ровном месте. Рецептурная оценка от цен на сырьё и труд никуда не убегает и служит потолком здравого смысла. С переездом рынков в области это стало критично: рационирование сырья теперь идёт по каждой области отдельно, и почти нулевой выпуск случается куда чаще.

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

Уровень жизни

Потребление меряется не «наелся / не наелся», а одним комплексным показателем — уровнем жизни. Это безразмерная величина вокруг единицы: во сколько раз сословие позволило себе больше своей обычной корзины.

Уровень Как живут
ниже 0.30 настоящая нужда, копится озлобление, растут бунты
~0.6 обычная доиндустриальная страна: сыты, но и только
~1.0 живут как положено: еда, одежда, обстановка, услуги
1.05 и выше появляется выбор — и начинается роскошь

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

Эталон нарочно описывает ЭТОТ мир, а не развитую страну. Прежняя корзина была вдвое тяжелее того, что экономика способна выпустить: сколько бы страна ни работала, показатель упирался в 0.4, все сословия читались как нищие, роскошь не открывалась никогда — а с ростом населения уровень жизни ещё и падал, потому что едоки прибавлялись быстрее выпуска. Оттуда же росла и вечная убыточность цехов: покупателей больше, денег у них меньше.

Лестница еды и лестница роскоши — это одна лестница, разрезанная надвое. Последняя ступень обычной корзины — продовольствие; первая ступень роскоши — мясо, и порог у неё именно такой, чтобы между ними был шаг, а не яма: сословие, дожившее до готового продовольствия, ровно и есть то, что готово к мясу.

Мера относительная и потому самонастраивающаяся: эталон считается по якорным ценам текущего пейдея, так что от одной лишь инфляции уровень жизни не двигается — человек ест ровно то же самое.

Ожидания. У каждого сословия есть уровень, который оно считает для себя нормальным. Ожидания растит достаток: у кого на счетах лежит много корзин, тот начинает считать нормой жить лучше. Меняются они медленно и вниз идут ещё неохотнее, чем вверх — привычка к достатку въедается, отвыкать от неё больно.

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

Ожидания Что появляется на столе
1.05 Мясо — верх лестницы еды
1.25 Вино
1.40 Роскошная одежда
1.55 Роскошная мебель
1.70 Роскошные услуги — опера, салоны, галереи

Всё это — новые товары и новые отрасли: скотоводческая ферма, винодельня, ателье, мебельная мануфактура. Роскошные услуги производит оперный театр — административное здание, которое, в отличие от ратуши, ещё и выпускает товар. Строит его только государство, и это единственный их источник: оперу нельзя ни завезти из-за границы (услуга не хранится), ни сделать кустарно.

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

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

Отрасли и цепочки

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

Сектор — не только фильтр во вкладке «Строительство». Разрозненные заводы работают хуже связанных, и предприятия одного хозяина в одной области получают прибавку к выпуску за две разные вещи:

Что рядом Прибавка
Звено цепочки — сосед делает сырьё для этого цеха или пускает его выпуск в дело +7% за каждое
Сосед по отрасли — предприятие того же сектора +3% за каждое

Больше +45% цепочка не даёт. Одно и то же предприятие может дать обе прибавки сразу — в этом весь смысл: лесопилка между лесозаготовкой и мебельной фабрикой получает +20%, а поставленная сама по себе — ничего.

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

Мощность цеха

У каждого предприятия есть мощность — доля штатных мест, которые оно держит. Ставится она прямо в карточке цеха, полем рядом с зарплатой, ступенями от 100% до 10%, и работает сразу на три вещи: штат, расход сырья и выпуск. Половинная мощность — половина смены, половина закупок и половина товара.

Рычаг этот против затоваривания, и он тоньше кнопки «Стоп». Остановленный цех распускает людей совсем, а платить за содержание уровней всё равно приходится; цех на половинном ходу остаётся живым, работает под сбыт и не жжёт деньги на сырьё, которое ляжет на склад. Если карточка показывает «продано 40% выпуска» — вот вам и подсказка, какую мощность ставить.

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

Сокращённая смена — не недобор людей, поэтому «Рабочие» и полоска заполненности в карточке считаются от рабочей мощности, а не от штата по уровням. Иначе цех на половинном ходу вечно выглядел бы недоукомплектованным и пугал хозяина мнимой нехваткой рук. Полный штат по уровням виден подсказкой.

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

Банкротство

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

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

Так сделано намеренно. Раньше банкротство снималось само, стоило кассе всплыть, и экономика попадала в круг, из которого не выбиралась: рынок затоварен, продаж нет, налоги платить надо — касса проваливается; через пейдей склад распродаётся, дело оживает, снова выпускает на полную — и разоряется опять. Каждый оборот этого круга дёргал занятость целого города.

Теперь решение принимает государство, и оно состоит из двух шагов:

  1. Субсидия. Лидер видит всех промышленников страны в списке граждан — с кассой, капиталом, числом рабочих и подсказкой, сколько не хватает до порога выхода, — и выдаёт деньги прямо на счёт. Пока касса ниже порога выхода, снимать банкротство бессмысленно: дело провалится тем же пейдеем, и кнопка не даст этого сделать.
  2. Решение, что открывать. Либо всё дело разом, либо только прибыльное — те цеха, что в последний рабочий пейдей давали плюс. Убыточные остаются под замком: их можно открыть позже отдельной кнопкой или снести. Ради этого у предприятия и запоминается прибыль последнего рабочего пейдея — у остановленного все текущие показатели обнулены.

Снести своё хозяйство банкроту по-прежнему можно: распродажа имущества — это его собственный способ поднять кассу до порога выхода.

Вотум доверия

Между выборами граждане-промышленники в любой момент могут выразить лидеру доверие или недоверие — двумя кнопками. Как только недоверие набирает больше половины голосов (50% + 1 от всех граждан-игроков, а не от проголосовавших), лидер немедленно смещается и назначаются внеочередные выборы.

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

Иностранные инвестиции

Лидер может открыть страну для чужих промышленников. Дальше работает простое правило: товар идёт на местный рынок, прибыль — владельцу.

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

Технически это значит, что склад игрока хранится отдельно по каждой стране (Player.warehouses). Общий склад здесь не годится: рынок страны-хозяйки в конце пейдея переписывает остатки своих торговцев, и непроданный товар иностранного завода исчезал бы вместе с вложенными в него деньгами.

Во врага вкладываться нельзя: пока идёт война, стройка в стране противника запрещена.

Где это в игре. В «Строительстве» переключатель областей разделён на две полосы: свои области и иностранные инвестиции. Во второй — области всех государств, открывших экономику и не воюющих с вами; список собирает сервер (_foreign_regions), поэтому выбрать область, где стройка всё равно вернёт отказ, нельзя. Выбор чужой области меняет только строительство: рынок, население и казна остаются на своей области — вкладываться за границу вы можете, а хозяйничать там нет. Казна за границу не ходит вовсе, поэтому кнопка «казной» и карточка административных зданий при взгляде на чужую область пропадают.

Области: у каждой свой рынок

Государство — это набор областей, а не точка на карте. У каждой области свой рынок со своими ценами, своим складом и своим дефицитом, своё население, своя рабочая сила и своё довольство. На старте у каждой страны по две области — столичная и провинция.

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

Переключатель областей есть на всех витринах: рынок, население, строительство. Смотреть «среднюю температуру по стране» бессмысленно — в соседней области хлеб может стоить вдвое дороже, и это и есть повод туда что-нибудь построить. В строительстве к своим областям добавляется вторая полоса — чужие области, открытые для иностранных инвестиций.

Торговля

Доступность рынка

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

  • внутри страны — это интегрированность хозяйственного пространства: доля разрыва между своим складом и общестрановой нормой, которую область закрывает за пейдей. На 100% область выравнивается за один пейдей, и рынки страны практически сливаются в один; на базовых 10% в соседней области хлеб может стоить вдвое дороже;
  • с заграницей — это просто объём. Никакой «силы» тут нет: сколько позволяет доступность, столько товара и пройдёт через границу.

Поднимает её единственная постройка — казённая «Торговая палата». Без неё область доступна на 10%, каждый уровень палаты добавляет ещё 10%, девятый выводит на 100%. Палата стоит дорого нарочно (первый уровень — около 15 млн ₡, девятый — под две сотни): единый рынок страна строит десятилетиями, а не за пару пейдеев. Показатель виден на витрине рынка и в таблице областей.

Как идёт обмен

Обмен идёт на двух уровнях, и своя страна с заграницей на равных — никакой форы у обозов нет, разницу делают только пошлины.

  • Внутри страны — обозы развозят товар из областей, где его больше нормы, туда, где меньше. Норма считается от обеспеченности всей страны: на сколько пейдеев спроса хватает всего имеющегося товара, столько же положено каждой области. Поэтому завод, поставленный в столице, кормит и провинцию, а не только свой квартал, — а нехватка делится на всех поровну вместо того, чтобы провинция сидела с пустым прилавком. Казна выступает купцом: выкупает излишек по здешней цене за вычетом провозной платы и выкладывает товар там, где его ждут; провозная плата и есть её заработок.
  • Между странами — мировой рынок, где торгуют именно области, а не страны. Вывозить выгодно оттуда, где дёшево, даже если в соседней области той же страны дорого.

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

Пошлины — рычаг лидера

Обе ставки задаются в госрегулировании, потолок у каждой 60%:

  • вывозная — продавец получает мировую цену за её вычетом, разница оседает в казне. Кормит бюджет с каждой сделки, но чем выше ставка, тем меньше своим смысла вывозить вообще;
  • ввозная — защита своих производителей. Чужой товар обходится в мировую цену плюс пошлину, и пока дома дешевле этой цифры, ввозить незачем. Запретительная ставка отсекает дешёвый импорт совсем: свой завод сможет продавать дорого — но и покупателю дешевле не станет.

Почему рынки действительно сливаются

Развозить товар мало. Цена в области тянется к своему якорю, а якорь — к своей себестоимости: в столице она считается по работающему заводу, в провинции — по рецепту от здешних цен. Два разных якоря — две разных цены, сколько ни вози. Поэтому по мере роста доступности сливаются три вещи сразу:

  1. склады — обозы выравнивают обеспеченность областей;
  2. себестоимость — она подтягивается к общестрановой, взвешенной по выпуску;
  3. баланс спроса и предложения — важно, сколько товара в стране, а не в какой её точке он вышел из ворот.

На полной доступности разрыв цен между областями падает практически до нуля, на базовых 10% остаётся в десятки процентов. Цены при этом видят торговлю: привезённый товар сбивает цену там, где его ждали, а вывезенный поднимает её там, откуда увезли.

Международная биржа

Вкладка Биржа показывает мировой рынок целиком: мировую цену каждого товара, котировки всех двадцати государств, у кого дешевле и у кого дороже, и обе стороны каждой сделки прошлого пейдея — кто вывез, кто ввёз, сколько досталось казне пошлиной.

Мир замкнут: сорок областей и составляют его целиком, поэтому вывезенный товар обязан быть кем-то куплен — внешнего покупателя из ниоткуда нет. Продаёт область, где дома дешевле мировой цены, покупает та, где дороже и не хватает. Объём с обеих сторон ограничен доступностью рынка — той же, что выравнивает цены внутри страны, только здесь она означает не выравнивание, а просто объём вывоза и ввоза. На базовых 10% через границу проходит немного, с девятью уровнями «Торговых палат» — вдесятеро больше.

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

Оружейная промышленность

Отрасль Выпуск Сырьё
Серный рудник Сера
Оружейный завод Оружие сталь ×2, лес ×1
Снарядный завод Снаряды сталь ×1, сера ×2

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

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

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

Пополнение мгновенное — из того, что лежит на прилавках

Недостача оружия и снарядов закрывается за один пейдей целиком, и ограничителей у этого ровно два, оба честные: сколько товара лежит на прилавках страны и сколько денег в казне. Никакой разнарядки «не больше доли недостачи за пейдей» больше нет: армия, у которой склады рядом набиты, а солдат безоружен из-за квоты, — это не экономика, а бухгалтерия. Мобилизовали толпу, а оружие в стране есть — толпа вооружится тем же пейдеем; оружия нет — никакая квота дела не поправит, и придётся его сперва сделать или ввезти.

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

У денег есть предохранитель: больше 60% остатка казны за пейдей на закупку не уходит. Без него страна, спешно вооружающая армию, выгребала бы казну до нуля — и та же армия следующим пейдеем разошлась бы по домам, не получив жалованья (оно платится первой статьёй, из того же остатка).

Размер государства и заселение мира

Население — это не строчка в отчёте, а главный ресурс промышленника: и рабочие руки, и покупатели. Поэтому у страны есть ступень размера, видная сразу и в шапке, и на карте, и в рейтинге:

Население Ступень
до 10 млн Крошечная страна
10–25 млн Маленькая страна
25–50 млн Средняя страна
50–100 млн Большая страна
100 млн и выше Крупная страна

Одно слово говорит о стране больше, чем восьмизначное число: сразу видно, губерния перед тобой или держава — и стоит ли к ней лезть.

Заселение мира: первые шесть пейдеев

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

Стартовый размер страны определяется, таким образом, не жребием, а тем, скольких она сумела привлечь. Устроено это так:

  • приходят люди по всем сословиям сразу, в тех же пропорциях, что у стартовой страны: заводу нужны не только руки, но и покупатели, а покупает вся страна — от крестьян до высшего класса;
  • 350 тысяч — это основа, а не точное число: по каждому сословию она умножается на свой случайный множитель (±35%), поэтому одному игроку достанется больше деревни, другому — больше городской бедноты, и общий приток выходит примерно от 250 до 450 тысяч;
  • рабочих в притоке мало, и это не упущение: рабочих делает промышленность, переманивая людей из деревни зарплатой. Приходит именно рынок, а не готовая заводская смена;
  • записанные люди приезжают не разом, а за несколько пейдеев: иначе рынок получил бы ступеньку спроса, цены прыгнули бы, а половина новичков осталась бы без хлеба в тот же пейдей;
  • приезжают они не голыми — с теми же сбережениями на душу, что у их сословия на месте. Иначе приток размывал бы кассу сословия и делал страну беднее ровно тогда, когда она растёт.

Окно закрывается вместе с началом партии. Кто зарегистрировался на седьмом пейдее и позже, приводит с собой ноль человек: страна к тому времени растёт одной рождаемостью, а опоздавший приходит на готовый рынок — тот, что вырастили и застолбили первые. Так «крупная страна» означает не то, что через неё прошло много народу за всё время, а то, что её выбрали на старте.

Открыто ли окно и сколько пейдеев до его конца, видно прямо на экране входа и во вкладке «Страна».

Проверено прогоном на 150 пейдеев: страна, в которую на старте пришли десять промышленников, вырастает вдвое против той, где не зарегистрировался никто (7.0 млн против 3.4 млн), а довольство, уровень жизни и цена хлеба при этом не двигаются вовсе — спрос растёт ровно настолько, насколько прибавилось едоков.

Рождаемость идёт за достатком

Дальше страна растёт сама, и растёт по двум мерам сразу.

Довольство решает, растёт сословие или убывает: голод выкашивает, закрытые нужды позволяют прибавлять. Но у довольства есть потолок, и низкий: сытый человек без мебели набирает 0.6 и больше уже не наберёт, сколько ему ни продавай. Пока рождаемость висела на нём одном, население переставало прибавлять ровно там, где рынок упёрся в потребление и заводу отчаянно нужен новый едок.

Уровень жизни решает, насколько быстро прибавлять, и потолка не имеет. Обычная рождаемость — при 0.45; выше она разгоняется линейно вчетверо к единице, ниже так же линейно валится почти в ноль (society.birth_drive).

Отсюда и обратная связь, ради которой всё затевалось:

  • заводы догнали спрос → люди зажили лучше → рождаемость взлетела → спроса снова не хватает, есть куда строить;
  • заводы не поспевают → уровень жизни просел → рождаемость заглохла → спрос перестал убегать, и цеха успевают его нагнать.

Убыль достатком не правится намеренно: вымирают не от того, что живут небогато, а от того, что нечего есть, — это меряет довольство. Приложи сюда ту же поправку, и бедная, но сытая страна начала бы вымирать на ровном месте.

Фронты

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

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

Переброска не мгновенна. За пейдей с направления снимается не больше трети стоящих там людей. Резерв идёт первым — он ни от кого не прикрывает, — и только когда его не хватило, начинают оголять соседние фронты, начиная с самых многолюдных. Будь переброска мгновенной, фронты превратились бы в одну кнопку «весь кулак сюда», нажимаемую в последний момент, и никакого выбора направления не осталось бы.

Разведка. Сосед видит, сколько людей стоит на фронте против него — и только против него: что у вас на других границах, ему знать неоткуда. Число даётся грубым, с округлением: точной численности чужих полков не видит никто, и решение «лезть или не лезть» принимается с некоторой неуверенностью. Смотреть это можно на карте, в списке соседей и в таблице фронтов.

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

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

Качество командования

Мера умения армии, от 1% до 150%, — прямой множитель к боевой силе фронта. Полностью укомплектованный офицерами фронт стоит двух с половиной безофицерских.

Считается она по каждому фронту отдельно, и это главное в механике: офицеры, оставленные в тылу или расставленные по спокойным границам, не командуют никем. Полное качество даёт офицерский корпус в 5% от числа солдат, стоящих именно на этом фронте; нет ни одного офицера — остаётся один процент, то есть почти ничего.

Платить за это приходится вдвойне:

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

Найм офицеров из высшего общества

Устроен ровно как призыв солдат, и рычагов у лидера тоже два — жалованье офицеру и штат (сколько офицеров на солдата содержать). Отличий три:

  • откуда. Не из деревни и не из бедноты, а из высшего класса и, если его не хватило, из среднего: командовать учат. Порядок именно такой — сперва высшее общество;
  • почём. Сословие берёт патент, только если жалованье перебивает его привычный доход (с небольшой скидкой на чин и мундир: служба даёт положение, а не одни деньги). Высший класс живёт лучше всех в стране, поэтому его ставка и выходит кратной солдатской. Платите меньше — корпус наберётся из среднего класса; платите совсем мало — не наберётся вовсе, и армия останется вооружённой толпой при полной казне;
  • сколько. Не больше штата и не больше того, что тянет военный бюджет. Сословие отдаёт в офицеры лишь малую долю своих людей за пейдей, поэтому корпус нельзя восполнить одним приказом.

Отставной офицер уходит в средний класс, а не обратно в высшее общество: чин остался, состояние — нет. Дёргать штат туда-сюда поэтому невыгодно — качели «набрали — распустили» медленно размывают верхушку общества.

Офицеры гибнут на фронте

На войне офицеры гибнут чаще солдат — в полтора с лишним раза: командовать приходится с передовой, а не из тыла. Механика эта не про численность (офицеров и так немного), а про командование:

  • каждый бой сам собой роняет качество командования на следующем пейдее. Армия, которая вчера дралась в полную силу, сегодня дерётся хуже;
  • восполнить корпус быстро нельзя — новых офицеров нанимают понемногу за пейдей и за отдельное жалованье. Затяжная война обезглавливает армию раньше, чем обескровливает;
  • поэтому штат сверх уставных 5% на войне имеет смысл: лишние офицеры идут на смену выбитым раньше, чем успеет прийти новый набор.

Потери командиров видны отдельной строкой — и в сводке по армии, и в разборе каждого боя: по числу штыков обезглавленную армию не опознать.

Война

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

Каждый пейдей на каждом фронте идёт бой. Дерутся не армии стран, а войска, поставленные на этот фронт (см. раздел «Фронты» выше), и сила каждой стороны складывается из пяти множителей: люди, вооружённость, снаряды, дух и качество командования. Силы умножаются на военную удачу, и обе стороны несут потери в областях, где идут битвы:

  • армия — убыль тем больше, чем сильнее противник. Гибнут именно войска этого фронта: тыл и другие направления потерь не несут. Офицеры гибнут в той же доле, что и солдаты;
  • мирное население — гибнет вместе со своими сбережениями;
  • промышленность — уровни предприятий выбиваются из строя. Они не сносятся насовсем: разрушенный уровень не даёт ни рабочих мест, ни выпуска, пока его не починят. Кнопка «Починить» есть у каждого пострадавшего предприятия; казённое чинит казна, частное — сам владелец из своего кармана;
  • казна — часть её уничтожается и разграбляется.

Перевес в боях копится в оккупацию. Когда она доходит до конца, область переходит победителю вместе с населением и заводами. Государство, потерявшее все области, прекращает существование: его казна, склады и граждане отходят победителю, а границы на карте перестраиваются.

Судьба промышленников на занятой земле. Заводы вместе с землёй не отбирают — они остаются за своими хозяевами, которые оказываются иностранцами в чужой теперь стране. Что с ними делать, решает лидер-победитель: во вкладке «Война» он видит список этих промышленников с их предприятиями и числом рабочих и по каждому нажимает «Оставить» или «Снести». Есть и общие кнопки — оставить всех или снести всё разом.

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

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

Мобилизация. Лидер может собрать армию не деньгами, а приказом. Мобилизация выгребает людей случайными долями по сословиям и городам — в том числе рабочих прямо с заводов, отчего промышленность проседает, — и не смотрит, выгодна ли человеку служба. Платой служит падение довольства по всей стране на всё время мобилизации.

Мятежи и отделение областей

Не путать с революцией (см. ниже): бунтует голодная область и требований не выдвигает, восстаёт грамотная страна и требует законов. Лечатся они разным — первое хлебом, второе только законом.

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

Если бунт не унять достаточно долго, область откалывается: провозглашает собственное государство, забирает часть армии и казны — и метрополия немедленно оказывается с ней в состоянии войны. Отбивать её придётся так же, как чужую.

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

Дипломатия

  • Союз. Предложение, которое надо принять. Союзники автоматически втягиваются в войны друг друга. AI-государства соглашаются на союз, если не воюют с вами.
  • Сепаратный мир. Стороны войны — списки, а не пара стран, и мир заключается парой. Союзник, которому война надоела, перестаёт воевать со своим противником и выходит из войны, а его товарищи продолжают: фронт между ними никуда не делся. Из войны страна выпадает только тогда, когда помирилась со всеми своими противниками. AI соглашается на мир, если проигрывает или если война затянулась.

Налоги и казна

Почему одного подоходного мало

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

Поэтому у лидера есть четыре ставки, которые платит население, и каждая ложится на своих.

Налог На кого ложится Зачем нужен Чем плох
Подушная подать, ₡ с души На всех поровну, кто бы ты ни был Единственный доход, не зависящий от того, торгует ли кто-нибудь: казна получает его и в мёртвой экономике Самый злой: с бедняка берут столько же, сколько с богача, и по довольству низших сословий бьёт сильнее всего
Оброк, % выручки На крестьян и кустарей Закрывает ту дыру, ради которой всё и затевалось: деревня зарплаты не получает и подоходного не платит Растёт и падает вместе с урожаем — в хороший год кормит, в плохой не выручает
Налог на сбережения, % кассы На всех, но тяжелее всего — на высший класс, у которого на счетах сотни червонцев на душу Единственный, кто берёт с накопленного, а не с потока; гонит лежачие деньги обратно в оборот Съедает подушку безопасности сословий: чем он выше, тем хуже страна переносит неурожай
Акциз на роскошь, % к продажам Только на тех, кто покупает мясо, вино, дорогое платье, обстановку и оперу Собрать с богатых, не тронув хлеб бедняка Отбивает охоту к роскоши, а вместе с ней рушит сбыт винодельни, ателье и оперы

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

Прежние налоги никуда не делись: налог на прибыль платят предприятия по факту продаж, налог с продаж — всякий, кто что-то покупает, подоходный — рабочие и строители, пошлины — участники внешней торговли.

Все рычаги объяснены в самой игре. Во вкладке «Государство», прямо под полями курса, стоит таблица «что делает каждый рычаг и на кого ложится» — строка на каждую ставку, включая госрасходы, земельную ренту, МРОТ, порог банкротства и допуск иностранных денег. Тот же текст висит подсказкой при наведении на поле. Пояснения и подсказки берутся из одного списка в app/static/app.js: раньше они были инлайновыми title в разметке и дописывались по одному — у новых налогов подсказки были, у старых нет, а на телефоне наведения нет вовсе, и половина рычагов не объяснялась ничем.

Роспись казны

Каждое движение казны в движке помечено статьёй (Country.collect / Country.spend) — не прикидывается задним числом, а записывается там, где происходит. Поэтому доходы минус расходы в точности равны изменению остатка, и это отдельная проверка в balance_test.py. Вкладка «Государство» показывает всю роспись: десять статей дохода и девять статей расхода, суммой и на душу населения.

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

Хочется вывести казну в плюс — поднимайте налоги с населения либо срезайте госрасходы: именно они возвращают деньги людям и потому съедают бюджет первыми. Но обнулить их нельзя безнаказанно — без этого канала налоги высасывают деньги из экономики и начинается дефляционная спираль.

Законы государства

Экономика отвечает на вопрос «сколько», законы — на вопрос «кому позволено». Семь категорий, в каждой ровно один действующий закон. Мир начинается одинаково у всех: монархия, авторитаризм, крепостное право, образование для высшего общества, нет прав у рабочих, свободная торговля, идеологии нет. Всё остальное страна должна принять сама.

Закон — не прибавка к выпуску. Он переписывает правила: закрывает лидеру часть ползунков, меняет, из какого сословия берут офицеров, и решает, чей голос вообще считается. Все параметры лежат в config.LAWS, механика — в app/economy/politics.py.

Государственное устройство

Закон Что делает
Монархия Офицеров берут только из высшего общества. Дворянство кормится с казны и с деревни отдельной статьёй — «Крепостное право»: доля госрасходов сверх положенной по числу душ плюс часть оброка. Голос высшего общества весит за двоих с половиной. Качество командования — до 150%
Республика В офицеры идёт и средний класс, жалованье корпуса ниже на треть — но качество командования упирается в 100%: выслужившийся из мещан командир до дворянской школы не дотягивает. «Крепостного права» больше нет, дворянство теряет добавочный вес голоса, лоббирование дешевеет на треть. Нельзя объявить при авторитаризме

Идеология

Закон Что делает
Нет идеологии Все рычаги в руках лидера, скидок нет ни у кого
Либерализм Промышленник строит на 15% дешевле. Налог на прибыль — не выше 30%, с продаж — не выше 12%. Казна не строит предприятий вовсе (административные здания — по-прежнему только она)
Консерватизм Казённая постройка дешевле на 20%, зато налоги на прибыль, с продаж, подоходный и оброк подпёрты снизу десятью процентами
Социализм Голос рабочего весит за десятерых. Налог на прибыль — не ниже 45%, налог на сбережения — не ниже 6%, акциз — не ниже 40%. Для низших и средних слоёв налоги наглухо ограничены сверху шестью процентами, земельная рента отменена. Пятая часть казны раздаётся им отдельной статьёй — «Дополнительное распределение». Принимается только при всеобщем избирательном праве и не принимается при монархии — запрет двусторонний: престол при социализме тоже не восстановить
Национализм Голос солдата весит за четверых, офицера — за пятерых. Военные постройки дешевле на 30% для всех. Треть содержания армии оплачивают промышленники — статья «Военный сбор», раскладывается по капиталу

Избирательная система

Закон Кто голосует Лоббирование
Авторитаризм никто: парламента нет невозможно
Голосуют только богатые высшее общество в полную силу (85% купленного доходит до урны)
Имущественный ценз + средний класс и офицеры 75%, цена голоса выше на треть
Всеобщее избирательное право все сословия 25%, цена голоса вдвое выше; заметная скупка даёт модификатор «нечестное голосование»

Земельное устройство

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

Закон Свой надел Что делает ещё
Крепостное право (начальный) 80% Высший класс берёт 15% выручки деревни за зерно сверх обычной земельной ренты, а его голос умножается ещё на 1.5 (при монархии выходит 3.6× разом)
Крестьянское владение 70% Земельная рента отменена — все деньги с земли остаются деревне. Голос крестьян весит вдвое. Надел, нарезанный клочками, родит хуже барского поля
Коммерческое землевладение 35% Ферма вмещает втрое больше крестьян и снимает с работника на единицу зерна больше. Деревне, оставшейся не у дел, от своего клочка почти ничего не достаётся: кто не нанялся — тот и не ест. Преимуществ в голосовании нет ни у кого
Коллективное хозяйство 90% Только при социализме. Фермы отдают крестьянам 60% выручки сверх зарплаты, рента отменена, голос крестьян весит впятеро

Множитель приложен только к зерну: лес и хлопок крестьянин берёт промыслом, а не с пашни, и земельный передел их не касается. Он же входит в планку найма на ферму (society.peasant_alternative) — обкорнав деревенский надел, коммерческое землевладение тем самым опускает и цену крестьянских рук.

Торговая система

Задаёт только потолок пошлин — саму ставку внутри разрешённого лидер крутит по-прежнему сам. Протекционизм — до 100% (выгодно промышленнику и высшему обществу), свободная торговля — до 50%, открытая экономика — до 10% (дешёвый чужой хлеб выгоден бедным), закрытая экономика — внешней торговли нет совсем: страна выпадает из биржевого клиринга, внутренние обозы ходят по-прежнему.

Парламент

Пока в стране авторитаризм, палаты нет и лидер меняет любой закон указом — в тот же пейдей и ни у кого не спрашивая. Чтобы появились выборы, самодержцу надо самому отдать власть, переменив избирательную систему.

Партии не прописаны заранее. Они складываются на каждых выборах из заготовок (config.PARTY_ARCHETYPES) и по тому раскладу избирателей, который дают действующие законы: голосуют одни помещики — в палате монархисты, допустили всех — приходят рабочие и аграрии. Сверх этого каждые выборы бросается тяга к переменам — случайная величина, которая двигает расклад в обе стороны: при высокой даже дворянское собрание может проголосовать за реформы, которые ему прямо невыгодны.

Число кресел задаёт лидер, и решение это с двумя концами. Большая палата дорого обходится казне (статья «Содержание парламента», жалованье депутатов оседает в кошельках верхних сословий), зато её труднее перекупить: цена голоса растёт вместе с числом мест.

Голосование по закону устроено так: лидер ставит вопрос, мнение фракций снимается один раз — по своему вопросу партия стоит горой или насмерть, по чужому решает как придётся, — и дальше идёт торг за уже высказанные голоса.

Палата ходит и сама. Раз в 12 часов реального времени (48 пейдеев) избранный парламент выносит на голосование закон, за который в нём уже есть твёрдое большинство: расклад разыгрывается тут же, и если жребий по безразличным фракциям выдал меньшинство, предложение снимается и палата берётся за следующее. Поэтому собственный законопроект палаты проходит наверняка — сорвать его может только чужой кошелёк. Без этого законы менялись бы лишь там, где сидит живой игрок, а два десятка AI-государств так и жили бы при монархии до конца партии.

Лоббирование

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

Вкладываться можно тремя способами:

  • в партию перед выборами — купленные голоса лягут в её итог. Вкладывать можно и в ту, которой сейчас в палате нет: заявка ждёт следующих выборов;
  • в идущий законопроект — за или против. Считается не сумма, а разница вложений сторон: депутаты берут у обоих, а голосуют за того, кто дал больше;
  • в само рассмотрение — промышленник запускает голосование мимо лидера. Взнос идёт в казну и считается из двух вещей сразу: насколько закон и без того нравится палате (чем меньше поддержки, тем дороже даже постановка вопроса) и насколько богат заказчик.

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

Слишком заметная скупка мест при всеобщем избирательном праве не проходит бесследно: страна получает модификатор «нечестное голосование» — довольство всех сословий срезано на несколько пейдеев. Модификатор виден внизу карточки «Государство» во вкладке «Страна» и в заголовке вкладки «Законы».

Образование

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

Закон Школы Университеты Прочее
Образование для высшего общества строить нельзя вовсе только высшее общество голос высшего общества x1.4
Религиозные школы средним и низшим сословиям, эффективность 50% только высшее общество голос высшего общества x1.2
Государственные школы средним и низшим, эффективность 100% только высшее общество голос высшего общества x1.1
Право образования для всех всем, эффективность 100% всем преимуществ в голосовании нет ни у кого; бумаги вдвое больше

Университет всегда даёт больше очков образования, чем школа — он и стоит почти вдвое дороже, и бумаги ест больше всех. В том и горечь сословного образования: пока закон держит университет дворянским, вся его мощь бьёт по одному высшему обществу, а оно и мало, и грамотно без всякой учёбы, и упирается в потолок за считанные пейдеи. Дальше университет просто стоит и ест бумагу. «Право образования для всех» — не поблажка низшим сословиям, а единственный способ заставить уже построенный университет работать в полную силу.

Права рабочих

Что позволено тем, кого выучили. Категория работает в паре с образованием и только с ним: пока страна неграмотна, бесправие ей ничего не стоит — некому его осознать. Штраф всякий раз умножается на самосознание сословия, поэтому одна и та же строчка закона обходится тем дороже, чем больше в стране школ.

Закон Штраф за самосознание Обязательные расходы
Нет прав серьёзный — крестьянам и рабочим нет
Право собрания средний — всем сословиям, кроме высшего страховка работников не ниже 10% фонда оплаты
Профсоюзы малый — низшим и средним страховка 10%, МРОТ не ниже 15 ₡
Гражданское общество нет вовсе страховка 10%, МРОТ 15 ₡, госрасходы не ниже 35% казны

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

Просвещение: школы, университеты и бумага

У каждого сословия есть своя грамотность — доля выученных, от 0 до 1. Это вторая после уровня жизни пружина всей игры, и работает она сразу на два конца.

В хозяйстве. Крестьянин не становится фабричным рабочим просто потому, что на заводе больше платят: у станка надо уметь читать чертёж и считать. Грамотность и есть та доля деревни, из которой завод вообще может набирать людей. При полной неграмотности годными к станку остаются лишь 22% сословия — те, кто выучился у станка сам; это и позволяет первым цехам мира начаться вообще, но развернуть на них промышленность нельзя.

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

Отсюда вилка, в которую попадает всякий лидер: без школ страна остаётся крестьянской и небогатой, со школами — богатеет и требует прав.

Как это считается

  • учат школа и университет — оба строит только казна, работает в них средний класс (учитель и профессор — из мещан и разночинцев), поэтому школу можно открыть в стране, где рабочих ещё нет ни одного;
  • ёмкость заведения считается по занятым местам: школа без учителей не учит никого, сколько бы этажей в ней ни было;
  • кого именно им позволено учить — решает закон, а не чертёж здания. Одно и то же построенное здание при разных законах учит разных людей;
  • грамотность не наследуется: место выучившегося занимает новорождённый, и доля образованных тает на 1% за пейдей. Просвещение нельзя построить однажды — его приходится содержать.

Равновесие выводится из этой убыли: чтобы держать страну на три миллиона душ грамотной наполовину, надо выучивать 15 тысяч человек за пейдей — примерно два уровня школы. python tools/design_check.py считает эту таблицу для текущих настроек.

Бумага

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

Потребитель Бумаги за пейдей на уровень
Университет 3 400
Школа 2 600
Ратуша 600
Торговая палата 500
Оперный театр 300
Парламент 12 на кресло (120 мест — 1 440, предельные 400 — 4 800)
Уровень бумажной фабрики даёт 16 000

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

Революция

Бунт и революция — разные вещи, и держатся они на разном топливе.

Бунтует область, и бунтует от голода: озлобление копится от низкого довольства, выливается в погромы и уводит область из страны. Требований у бунта нет никаких — есть только отчаяние, и лечится оно хлебом (см. «Мятежи и гражданская война»).

Восстаёт страна, и восстаёт от грамотности. Школы выучили достаточно народу, чтобы он осознал себя сословием и увидел, что законы писаны не про него. У такого восстания есть список требований, срок на ответ и армия, если ответа не будет. Хлебом это не лечится вовсе — только законом.

Как она идёт

  1. Жар копится. Неудовлетворённое самосознание страны — грамотность, помноженная на бесправие, — накапливается пейдей за пейдеем. Полоса жара видна на вкладке «Законы»: это единственное предупреждение, которое лидер получит.
  2. Требования. Сословия выходят со списком законов — от одного до трёх. Требуют они разного в зависимости от того, кто восстал: деревня и завод — всеобщего права и профсоюзов, мещане и офицеры — всего лишь ценза и права собраний. Требования всегда исполнимы: закон, который нельзя принять при нынешнем порядке, восставшие не требуют.
  3. Четыре пейдея на ответ. Лидер может принять требования — тогда законы вводятся в тот же пейдей и на этом всё кончается. Может отказать. Может промолчать — это тоже ответ.
  4. Гражданская война. Отдельное сражение в столице, пейдей за пейдеем. Вся страна работает вполсилы, довольство падает у всех, границы стоят оголёнными: полки снимают с фронтов, не считаясь ни с каким соседом.
  5. Исход. Проиграло государство — требования вводятся силой. Победило — революция подавлена, но это затишье, а не мир: довольство восставших сословий падает ещё ниже, и через передышку они выйдут снова.

Перебежчики

Главная опасность для государства — не численность восставших, а армия. Ополчение вооружено вилами и стоит немного. А вот солдат идёт к мятежникам не за компанию, а по своему интересу: доля перебежчиков считается из его собственного неудовлетворённого самосознания, и уходит он со своим оружием, которое ему выдала казна.

Просвещённое самодержавие с большой, грамотной и бесправной армией — самая уязвимая конструкция в этой игре. Единственная защита, кроме уступок, — армия довольная и представленная во власти: держать её такой дешевле, чем потом отбивать у неё собственную столицу.

Почему уступать выгоднее

Победившая революция вводит ровно те законы, которые лидер мог подписать без единого выстрела. Разница не в законах, а в цене. В прогоне balance_test.py --school две одинаковые страны открывают школы и обе доходят до требований; лидер первой соглашается, второй молчит:

уступил упирался
боёв в столице 0 19
погибло 0 116 тыс.
население к концу прогона 89% от начального 67%
грамотность 95% 58%

Упрямый получил те же законы, но вместе с сожжённой столицей, разбежавшейся армией и месяцами работы вполсилы, из-за которых у него и школы стояли пустыми.

Государство

Первый зарегистрировавшийся игрок получает полномочия гос.деятеля. Ему доступны:

  • Налоги и курс — на прибыль, с продаж, подоходный, подушная подать, оброк с деревни, налог на сбережения, акциз на роскошь, доля госрасходов, земельная рента, МРОТ и порог банкротства (см. раздел «Налоги и казна»). Пределы самих ставок задают не настройки, а законы: ползунок, упёршийся в предел, — это повод переменить идеологию или торговую систему.
  • Законы и форма государства — устройство, идеология, избирательная система и торговая система (см. раздел «Законы государства»). При авторитаризме — указом, дальше — голосованием палаты.
  • Размер парламента — сколько кресел содержать. Больше кресел — дороже казне, но труднее перекупить промышленникам.
  • Роспись казны — сколько принесла каждая статья дохода и куда ушёл каждый червонец расхода за прошлый пейдей.
  • Субсидии промышленникам — список граждан с их кассой и состоянием дел; разорившихся можно вытащить прямой выплатой из казны.
  • Закрытие банкротств — разорившееся дело стоит, пока лидер его не откроет, целиком или одной прибыльной частью (см. раздел «Банкротство»).
  • Государственные предприятия — строятся за счёт казны, прибыль возвращается в казну, кассовые разрывы она закрывает сама. Зарплату можно задать всем казённым предприятиям страны одним полем, не обходя каждое.
  • Административные здания — ратуша, торговая палата, академия. Ничего не производят: содержат служащих и создают спрос на еду и мебель. Пока это задел: торговая палата предназначена под внешнюю торговлю, академия — под технологии.
  • Военный бюджет — твёрдая сумма из доходов казны за пейдей и ставка жалованья солдату. Численность армии из них и выводится: бюджет ÷ ставка, и ни человеком больше. Отдельного ползунка «сколько солдат» нет намеренно — иначе казну можно было бы увести в минус одним движением, призвав всех подряд. Солдаты сверх бюджета остаются без жалованья и расходятся сами.
  • Война, мобилизация и дипломатия — объявление войны соседям, предложения мира и союза (см. выше).

Проверка баланса

python balance_test.py 250 --player --trade --war --laws --school

Гоняет 250 пейдеев и проверяет два с лишним десятка условий: цены в коридоре, страна сыта, крестьяне не разорены, денежная масса сошлась, роспись казны сходится с остатком до червонца.

Флаг Что добавляет
--player бот-промышленник: может ли игрок нанять людей, построить цепочку и выйти в плюс, ни разу не провалившись в долги
--trade три государства поднимают «Торговые палаты» и торгуют: мировой рынок обязан быть замкнутым по товару и по деньгам, а рынки областей — сойтись ценами
--war два соседа поднимают оружейную цепочку и воюют, третий входит союзником и выходит сепаратным миром: проверяется, что бои идут, промышленность получает урон, области меняют хозяина и не теряются с карты
--laws четыре государства берут разные формы правления (республика со всеобщим правом, социализм, национализм, закрытая экономика), собирают парламенты и голосуют по законам, а лоббист скупает голоса: проверяется, что палаты собираются, законы проходят, статьи «крепостное право», «дополнительное распределение» и «содержание парламента» движутся и деньги лоббиста не исчезают из экономики
--school три государства отвечают на вопрос о грамотности по-разному: одно открывает школы и уступает восставшим, второе открывает школы и упирается, третье остаётся при сословном образовании. Проверяется вся цепочка разом — школы учат, бумага находит казённого покупателя, грамотность открывает деревне дорогу на завод, самосознание доводит до требований, а молчание лидера — до гражданской войны, которая обходится дороже уступок
python tools/design_check.py

Считает стартовое равновесие: хватает ли крестьян прокормить страну, сколько кустари дают одежды против спроса, сходятся ли доходы горожан с их потреблением. Пригодится при правках баланса — все «ручки» в app/config.py.

Структура

run.py                    запуск
balance_test.py           прогон экономики без сервера + проверки
tools/design_check.py     расчёт стартового равновесия
app/
    config.py             все параметры баланса
    models.py             состояние мира (dataclass-объекты)
    db.py                 SQLite: снимок мира + история для графиков
    auth.py               пароли (PBKDF2) и токены
    api.py                игровое API — чистые функции над миром
    main.py               HTTP-сервер и планировщик пейдеев
    economy/
        pricing.py        мягкий ценовой коридор
        society.py        сословия: деревня, ремесло, услуги, мобильность
        politics.py       законы, парламент, партии и лоббирование
        engine.py         тик: труд, производство, потребление, цены, общество
        seed.py           начальный доиндустриальный мир
    static/               интерфейс (HTML + CSS + ванильный JS)

Что дальше

  • Технологии. Университет уже учит людей, но не двигает науку: output_per_worker — параметр отрасли, и его естественно сделать растущим за вложения выученного общества.
  • Война по инициативе AI. Сейчас войну объявляет только живой лидер; AI-государства умеют лишь обороняться, соглашаться на мир и вступать в союзы.
  • Флот и укрепления. Бой считается по одному числу боевой силы — есть куда добавить роды войск и оборонительный бонус.
  • Кредиты под процент. Работа в долг и банкротство уже есть, спасают пока только субсидии из казны — не хватает банков и займов.
  • Забастовки. Профсоюзы и права рабочих уже есть, а между терпением и революцией не хватает средней ступени: остановки цеха, которая бьёт по хозяину, но не рушит государство.
  • Логистика. Обозы возят товар мгновенно и без потерь. Транспортное плечо, дороги и порча в пути сделали бы географию по-настоящему значимой.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages