Что нового

Город меняется каждую неделю: здесь всё, что появилось и что починили.

14 августа 2026

  • Панель мира показывает тот мир, в который вы попадёте

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

    Чудо в карточке было видно плохо — крошечная постройка в углу пустого поля. Кадр теперь наводится на неё саму, в любой эре и на любой стадии. И подпись перестала забегать вперёд: обещание Чуда («+8% производства») показывается по факту достройки, а до неё написано, что его ещё строят сообща.

  • Город переезжает на экран устройства

    Молвиум теперь ставится как обычное приложение: свой значок рядом с остальными, полный экран без адресной строки, вход в одно нажатие. Скачивать ничего не нужно — игра остаётся той же. Кнопка «Установить» появилась прямо в шапке и ведёт к развороту внизу страницы, а в шторке настроек — строка «Поставить на экран». Шаги показываются те, что сработают именно на вашем устройстве: в Chrome и Edge это одна кнопка, на iPhone — «Поделиться» → «На экран „Домой“», и рядом можно раскрыть инструкции для остальных устройств.

6 августа 2026

  • Город на телефоне держится крепче

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

5 августа 2026

  • Карта не тянется обратно после зума

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

  • Зум снова отзывается на один pinch

    Плавный зум в 1.7.3 оказался слишком слабым: мелкие тики трекпада и pinch давали крошечный шаг, и до нужного масштаба нужны десятки жестов. Вернули прежнюю чувствительность (±12% на тик), pinch на телефоне снова следует пальцам без демпфера, а плавность — через накопление цели и более быструю доводку.

4 августа 2026

  • Зум карты плавнее и менее резкий

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

  • Кнопка «Знаки»: светлая в покое, зелёная когда спрятаны

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

  • Знаки над зданиями можно выключить

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

  • Города вышли из эры, в которой застряли

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

    Заодно в празднике поправлены подписи: итог прошлого праздника больше не говорит «Ярмарка удались», а доли подготовки над заказом не путаются с самим заказом — рядом стояли два разных числа «60/60».

  • Новая эра приходит в город вместе с Чудом

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

  • Праздник стал событием: срок, решение и итог

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

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

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

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

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

    Угроза сезона переехала из праздника в «Мир»: она про сезон, а не про праздник, и в одном свитке они спорили за внимание.

3 августа 2026

  • Подписи на угодьях перестали налезать друг на друга

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

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

  • Угодья видно в любой момент, а не только со стройкой в руке

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

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

  • Мелкие правки: перенос, подписи и съезжающий экран

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

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

    Экран города временами уезжал вбок — виджет сезона и карточка указа обрезались краем.

  • Наряд собирает урожай сам, а межу теперь расчищают

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

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

  • Перенос постройки больше не пугает ценой, а экран не съезжает вбок

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

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

  • Достояния мира: перечень на всех и работа на клеймо

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

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

  • У игры появился журнал изменений

    Что нового в городе — теперь на виду: страница /changelog со всеми правками по дням и та же лента внутри игры. Нажмите на номер версии — в шапке на большом экране или в шторке настроек на телефоне.

  • Списки на телефоне снова прокручиваются, экраны не едут вбок

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

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

  • Помощь соседям засчитывается сразу, а кнопки сроков не врут про урок

    Указ «Помочь соседу» держал «0 из 1», сколько соседям ни помогай, — прогресс появлялся только после перезагрузки страницы. Помощь меняет город, но ответ сервера приносил один список соседей, и остальной экран оставался на прошлых числах. Теперь указ отмечается сразу.

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

  • Значки складов снова открывают сводку, а полоса стройки — текущий этап

    Нажатие на «Еду», «Материалы» или «Товары» в шапке открывало «Хозяйство» на том виде, где его оставили в прошлый раз, — на «Укладе» или «Мастерах». Отбор по группе при этом ставился, но виден он только в «Сводке», и казалось, что нажатие ничего не делает. Теперь значок склада всегда открывает «Сводку» с нужной группой.

    Полоса готовности стройки считала путь от закладки дома до конца текущего этапа: на втором и третьем этапе процент был бессмысленным. Теперь полоса меряет идущий этап и подписана «Готовность этапа».

  • Клеймо: у мастерских появились именные мастера

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

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

  • Сводка хозяйства перестала врать о сроках

    «Хозяйство» показывало игровые часы как реальные и расходилось с таймером на главном экране впятеро: до зимы оставалось 38 минут по сводке и 6 минут по часам мира. Теперь все сроки и ставки в сводке — реальные, те же, что и везде.

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

  • Третий век обрёл лицо

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

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

  • Глиняный карьер и другие простые постройки снова начинают стройку

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

2 августа 2026

  • Дворы передела перестали быть коробками

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

  • Город наконец показывает переработанные постройки

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

  • Житница снова выглядит житницей

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

  • Средневековые постройки перестали ломать загрузку

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

  • Вход в игру защищён от перебора

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

  • Природа вокруг города ожила

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

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

  • Служебные страницы закрыты

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

  • Город переживает смену сезона

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

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

  • Месяцы снова читаются

    Дата в шапке города называет месяц привычно: «Осень · 3 октября» вместо «3 вересня». Год остаётся городским — «3 октября 12-го года», так что с сегодняшним числом дату не спутать. Длина месяца, приезд купца и смена сезона прежние: поменялись только имена.

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

  • Белый экран перестал быть тихим

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

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

  • Работа называет, чьи руки займёт

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

  • Мостки через ручей, окно дома в углу

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

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

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

  • Совет по адресу, жители под рукой

    Летописец больше не советует стройку там, где строить нечего: указ «Скопить 60 кирпичей» или «Торгуйте на рынке» пропал из палитры — блок совета остаётся только в том разделе, где указ и выполняют. Прогресс указа теперь виден числами и на телефоне: под полосой стоит «12/60», а не одна закрашенная линия.

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

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

1 августа 2026

  • Зерно берегут житницы, а не голуби

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

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

  • Свой календарь: сутки по десять минут и старорусские месяцы

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

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

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

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

  • Утро города раздаёт наряд

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

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

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

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

  • Купец приезжает раз в месяц

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

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

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

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

  • Утро города: что случилось, пока тебя не было

    Вернувшись после перерыва, игрок встречает утро города — короткую страницу о том, что случилось в его отсутствие: сменившиеся сезоны, пришедшие угрозы, дошедшее до города Чудо. Голосом летописца, в порядке от свежего к давнему; длинный список уводит в летопись. Утро всегда одно, сколько бы ни длилось отсутствие, и ничего не требует: закрывается Esc и кликом вне, как летопись.

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

  • Разделы города открываются по мере развития

    Шесть вкладок с первой минуты создавали ощущение, что игру надо знать целиком: пустому городу «Хозяйство» показывало пустую сводку, а «Рынок» — прилавок без торга. Теперь разделы приходят по ходу дела. «Хозяйство» открывает первый передел — пекарня, гончарня, ткацкая: ровно тогда появляется цепочка и вопрос «откуда что берётся». «Рынок» открывает Торговый пост, «Праздник» — Праздничная площадь. «Стройка», «Наука» и «Мир» на месте с начала.

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

  • Стройка платит только за ближайший этап, зимнее поле не тревожит

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

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

  • Летопись не теряет новые записи, готовый указ виден свёрнутым

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

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

  • Средневековье: известь, черепица, стекло и всё, что из них

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

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

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

  • Летописец говорит правду о том, из чего строят

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

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

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

  • Награда за указ подталкивает, но не строит за игрока

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

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

  • Летопись перестала звать туда, куда ещё нельзя

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

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

    Счёт указов теперь идёт внутри главы: «Бронзовая эра · 12 из 44», а не «12 из 79». Номер говорит, сколько осталось до конца эры, а не до конца игры.

  • Испорченному нашлось применение

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

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

  • Праздник растёт вместе с городом, наука перестала жить прошлым

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

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

    Тех-дерево разведено на самостоятельные ветки. Раньше «Плавка» открывала двадцать построек Железа из двадцати семи — эра стояла за одним исследованием; теперь металл, зерно, камень и гражданская ветка растут независимо, а обжиг честно требует угля. В Бронзе ткачество и промысел больше не ждут гончарного дела.

  • Город строится не из брёвен, а из того, что сделал сам

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

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

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

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

  • Перестройка дома наконец выгоднее сноса

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

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

  • Сроки в игре теперь честные

    Кнопки выбора работы обещали «15 мин / 1 час / 4 часа / 8 часов», а на деле цикл шёл 3, 12, 48 и 96 минут: подписи показывали время медленного мира, тогда как игра идёт впятеро быстрее. Теперь везде — реальный срок, и он же стоит на таймере: 3 мин, 15 мин, 1 час, 2 часа. В реестре построек сроки были занижены в пять раз — исправлено.

    Заодно сроки стали круглыми: улучшения больше не показывают «28 мин 48 с», а первые постройки перестали заканчиваться быстрее, чем игрок успевает отпустить палец — поле 5 секунд, лесосека 15, хижина 30.

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

31 июля 2026

  • Указ не лезет поверх досье, летопись переехала в угол

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

    Свёрнутый указ ужался до значка со счётом вроде «18/44»; если награда уже ждёт, рядом стоит галочка. Раньше он и в свёрнутом виде занимал угол названием и главой, а игроку там нужно одно — далеко ли до награды.

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

  • Отбор по группам в «Хозяйстве»

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

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

  • Полоса ресурсов перестала расти вместе с городом

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

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

  • Спящие зимой поля больше не помечены как брошенные

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

  • «Зимовка обеспечена» больше не красная

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

  • Ветка потоков не закрывает город

    При включённых потоках окно постройки занимало больше половины экрана и заслоняло ровно те ручьи, которые описывало: у Ратуши с девятью входами список ресурсов разложился в четыре ряда. Теперь в окне остаётся строка-итог — значок главного ручья с числом и «берёт 9 ручьёв · отдаёт 1 ручей»; полный список раскрывается по тапу.

    Главный ручей ветки подписан числом прямо на сцене, поэтому свёрнутый вид ничего не теряет.

    Телеги на ручьях поехали медленнее: раньше груз пролетал путь за 2,6 секунды и читался как рябь, теперь — за 4,2, и глаз успевает проследить его от дома до дома.

  • Досье ресурса называет постройку, а не эру из будущего

    На вопрос «где взять камень» досье отвечало «не хватает: Каменоломня или Каменный карьер» и тут же добавляло «Каменный карьер: нужна эра „Железо“» — читалось так, будто камень открывается только в Железном веке, хотя бронзовая каменоломня ставится прямо сейчас. Теперь досье называет то, что можно построить сегодня: «Постройте: Каменоломня» — и название кликабельно: открывается «Стройка», список доматывается до нужной карточки и та на секунду берётся золотым кольцом. Искать постройку глазами среди двух десятков больше не нужно; так же теперь ведёт и клик по карточке указа. Замки показываются только когда строить действительно нечем. Тем же правилом убраны из досье склады и потребители чужой эры — совет поставить Каменный склад бронзовому городу вёл в никуда.

  • Лендинг: живая летопись, сословия, эврики и закладка города

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

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

  • Заставка главы не обрезает название эры

    При смене главы указа заголовок «Железная эра» сначала проявлялся целиком, а через секунду превращался в «ая эра»: анимация «чернил» оставляла на тексте маску, которая срезала начало строки. После прохода пера маска снимается — название остаётся читаемым до исчезновения заставки.

  • Переносить постройки можно с самого начала

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

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

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

  • Недостающий ресурс наконец кликается

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

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

  • Окно постройки на телефоне стало чище

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

    Ветка потоков читается с одного взгляда: вместо строки «Дерево 80/час · Глина 64,4/час · Хлеб 40,5/час», которая переносилась на две строки, — значки ресурсов с числами. «Подробнее» переехало из шапки вниз окна: рядом с крестиком оно выглядело вторым способом закрыть. Описание дома стало компактнее и больше не занимает больше места, чем все кнопки вместе.

  • Лендинг всегда открывается с начала

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

  • Тень путников больше не режется краем кадра

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

  • Сцена лендинга на телефоне: без мерцания, резче и спокойнее

    Три мобильных беды скролл-сцены вылечены разом. Сцена мигала в такт прячущейся адресной строке — теперь кадр перерисовывается сразу при смене высоты экрана, пустых кадров нет. Здания и трава были мыльными — спрайты готовятся в пикселях устройства, а плотность рендера на телефоне поднята с 1.5 до 2. Город «дрожал» при прокрутке — камера снапится к пиксельной сетке целиком, и все постройки едут строго в ногу. Заодно спрайт при смене масштаба больше не исчезает на мгновение, а кнопка «копировать» в отладочной панели работает и по локальному адресу.

  • Скролл-сцена лендинга перестала фризить на финале

    Убраны затыки по 200–400 мс на подходе к Чуду и финальному отъезду камеры. Спрайты города готовятся заранее, с опережением скролла, а не в тот момент, когда игрок на них смотрит; атласы держатся в памяти в раскодированном виде, и браузер больше не перечитывает их посреди прокрутки. Кэш подготовленных картинок теперь меряется мегабайтами, а не штуками — рабочий набор финальной панорамы влезает целиком и не выметается на обратном пути. На широких мониторах сцена рисуется в чуть меньшем разрешении с растяжкой — на мягком клей-арте это не видно, а кадру дешевле.

  • У города появились улицы

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

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

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

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

  • Работающую постройку можно переносить

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

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

  • Город перестал вздрагивать при стройке

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

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

  • Сцена лендинга стала плавной и на телефоне

    Скролл-сцена больше не подтормаживает: время кадра упало с ~50 до ~8 мс, включая мобильные. Здания теперь встают сразу готовыми — с подскоком и облачком пыли, без промежуточных стадий стройки, которые мерцали на смене. Дым и огонь построек убраны. У путников исчезла двойная тень, а тропа в разделителе стала шире — тень от фигурки ложится на землю, не на пергамент.

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

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

  • У игры появилось лицо: город строится под скролл

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

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

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

  • Ремесленникам нужно пиво, крестьянам — ткань, кожа пошла в дело

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

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

  • Русский язык подтянут, смена сезона больше не проходит мимо

    Пересмотрены все тексты игры — и в интерфейсе, и в конфиге. Убраны обороты, которые ломались на числах: «Лето через готово» на стыке сезонов, «1 ждут вас» в списке построек. Из текстов для игрока ушли внутренние слова — «тех», «слот», «цикл», «клик»: раздел зовётся «Наукой», работа — работой, место — местом, а нажать можно и пальцем. Подсказка эврики больше не показывает код категории («постройте 3 зданий категории production»). Срок теперь пишется одинаково везде — раньше на одном экране соседствовали «2,3 ч» и «3 часа».

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

  • Игра стала легче для машины

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

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

  • Заяц стал зайцем, олень — оленем, воробьи ушли

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

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

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

  • Живность вернулась в город: звери больше не пропадают

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

  • Ветка потоков включается из окна постройки

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

  • Потоки: своё имя и разбор по одной ветке

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

  • Заводь достаётся каждому городу

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

  • Перестройку видно наравне со стройкой

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

  • Указ о Чуде больше не заводит в тупик

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

  • Хозяйство стало видно: потоки, уклад и знаки беды

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

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

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

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

  • У игры появилась версия, а у птиц — крылья

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

  • Живность стало видно по-настоящему

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

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

  • Вторая волна живности и клин в небе

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

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

  • Небо ожило: тени облаков, дождь и ветер

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

  • Округа ожила: олени, зайцы, утки

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

    Звери расставлены не наугад: олени выбирают опушку, утки — воду. У соседа при визите округа выглядит точно так же, как у хозяина.

  • На западе течёт река

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

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

  • У мира появился горизонт

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

    Камера теперь держится внутри мира: отъехать в пустоту или уехать за край земли больше нельзя — предел отъезда сам подстраивается под размер участка и растёт вместе с ним.

  • Листание одинаковых построек

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

  • «Хозяйство» отвечает на главный вопрос зимы

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

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

  • Рыба и дичь наконец кормят город

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

  • Видно, что именно добывается

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

  • Голод виден там, где он мешает

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

  • Прокачка объясняет, чего не хватает

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

  • Перечень построек, перенос зданий и починка храма

    Появился список всех построек города: во вкладке «Стройка» переключатель «Построить / Постройки». Список показывает, чем занят каждый дом, и первым делом — то, что ждёт вас: готовый урожай, неоплаченный этап, план, простаивающее производство. Нажатие уводит к постройке на карте.

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

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

  • Железо дошло до ремесла, торга и парадных зданий

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

  • Жильё и хранилища получили железные версии

    Хижина крестьян улучшается в крестьянскую избу — 12 мест вместо 8 на том же пятне, с кирпичным подклетом и печной трубой. Двор ремесленника становится домом мастеров: 9 мест вместо 6, при доме мастерская с верстаком и точилом — оттуда и выходят руки для пильной рамы и ворота. Амбар и склад переходят в каменные: вдвое больше запаса, а каменный амбар вдобавок сам держит вредителей, мыши кладку не берут. Всё четыре открывает Кирпичное дело. Класс жильцов прокачка не меняет — город растёт вверх, а не вширь, и еда считается на жителя, так что содержание прибавляется само.

30 июля 2026

  • Свободные рабочие считаются честно, кнопки стройки молчат не зря

    Город показывал больше свободных рук, чем на деле: в занятых числились только те, кто стоит на производстве, а бригады строек — нет. Из-за этого «Закрыть этап» отвечал «не хватает рабочих» при шести якобы свободных крестьянах. Теперь счёт занятых у города и у сервера один и тот же, а кнопки «Закрыть этап» и «Оплатить» гаснут заранее и прямо пишут, кого и сколько не хватает: «Следующий этап некому вести: 3 крестьянина (свободно 2)».

  • Лесопильня и Каменный карьер: железо приходит на добычу

    У лесосеки и каменоломни появились железные наследники. Лесопильня даёт 36 дерева вместо 20, каменный карьер — 24 камня вместо 14, но к делу встаёт ремесленник: у пильной рамы и ворота нужен мастер, а не только руки. Обе открывает Кузнечное дело и обе просят инструмент в цену прокачки — железная пила и клинья сами себя не выкуют. Улучшаются на месте, размер участка не меняется.

  • Прокачка построек: эра приходит и к тому, что уже стоит

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

  • Окно «Хозяйство»: видно, куда всё уходит

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

  • Стройка по этапам, с настоящими строителями

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

  • Ген-план застройки и живой русский язык

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

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

    Числительные заговорили по-русски: «полон через 3 часа» вместо «полон 3ч», «1 этап» и «5 этапов», «занят 1 из 8» и «заняты 3 из 8».

  • Город ест всегда

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

  • Склад больше не съедает урожай молча

    Длинные работы стали менее выгодны в пересчёте на час (4 ч и 8 ч), чтобы один сбор не переполнял склад с запасом: короткие работы по-прежнему эффективнее всех. В выборе длительности теперь видно, сколько урожая сгорит при переполнении, а после сбора город прямо сообщает: «Склад полон — пропало: Зерно 40».

  • Зимний сон посевов (ADR-0013)

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

  • Честная экономика: квота завоза, порча и прогнозы

    Исправлены четыре бага экономики. Квота завоза теперь общая на группу товаров (150 еды за сезон — на всю еду, а не на каждый ресурс отдельно), как и было принято в ADR-0012. Порча дичи и рыбы учитывает скорость мира — на быстрых мирах скоропорт больше не живёт впятеро дольше положенного, а испортиться может только то, что реально легло на склад (излишки, срезанные переполнением, больше не превращаются в лишний корм). Прогнозы в досье ресурса («+N в час», «склад полон через X») показываются в реальных часах с учётом скорости мира.

  • Горизонт Чудес: три силуэта, дальше от участка, с парками

    У каждого Чуда теперь свой облик: к ротонде «Сводный Двор» добавились «Железный Мост» (виадук с каменной аркой над каналом, железными дугами и воротными башнями) и «Соборная Игла» (готический собор с самым высоким шпилем игры). Построенные Чудеса остаются стоять на горизонте в ряд — бронза слева, железо в центре, средневековье справа, — а не сменяют друг друга; весь ряд отодвинут дальше от участка, чтобы городу было куда расти. Достроенное Чудо получает парадный парк: газоны, дорожки, ограда с воротами, деревья, клумбы сезонного цвета, фонари и скамьи. Зимой арки и окна Чудес светятся тёплым светом.

  • Чудо «Сводный Двор» — новый облик

    Чудо перестало выглядеть бочкой с плоской красной крышкой. Теперь это ротонда со ступенчатым куполом из четырёх черепичных ярусов, бронзовой сферой и шпилем; вокруг стены — полуколонны, несущие карниз купола, между ними глухие арки с терракотовыми рамами и бронзовыми замковыми камнями. Вход — пантеонный портик: подиум, восемь колонн, фронтон, своя черепичная кровля. Вокруг здания — круговые ступени. Зимой арки светятся тёплым светом. Отрендерены все 12 спрайтов (4 сезона × 3 стадии).

  • Фон «Город» — нейтральный ambient-loop

    Генеративная пентатоника заменена на зацикленный CC0-трек (Calm Ambient 1, OpenGameArt) → public/audio/ambient/city.opus (~1.4 МБ). Дорожка «Город» в меню звука включает loop; «Действия» без изменений.

  • Деревья больше не растут из фундамента Чуда

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

  • Три Чуда мира вместо одного

    Раньше мир строил одно Чудо в три этапа. Теперь у каждой эры своё Чудо со своим именем и своим эффектом: Сводный Двор (бронза) делает рынок щедрее — спред ниже, завоз шире на позицию; Железный Мост (железо) поднимает склады всех городов мира на 15%; Соборная Игла (средневековье) даёт +8% производства и замыкает круг мира. Достроенное Чудо остаётся стоять, а его эффект действует до конца цикла — к финалу мир живёт сразу под несколькими. В разделе «Мир» видно все три: что уже стоит, что строится, что впереди.

  • Рынок торгует не всем и не всегда: сезонный завоз

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

  • Подпись указа называет эру, а не ресурс

    Строка «Железо · 46/68» под указом «Скопить 60 кирпича» читалась как прогресс железа. Теперь глава в карточке — название эры: «Бронзовая эра», «Железная эра»; заставка главы играет один раз — на входе в новую эру. Заодно поправлена грамматика: «60 кирпича» → «60 кирпичей».

  • Летопись продолжается в Железе

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

  • У корма, рыбы, дичи, шкур и кожи — свои иконки

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

  • Быстрый доступ: видно, чего не хватает

    В свёрнутом окне здания под кнопками 15/1/4/8 теперь написано, чего не хватает для работы — сырья или рабочих; раньше кнопки просто молчали серым, а причина пряталась в «Подробнее». Недостающий ресурс кликабельный: открывает его карточку.

  • Клик по пузырю сбора попадает в своё здание

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

  • Телефон: после выбора здания сцена больше не «залипает» в зуме

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

  • Дым и огонь встают на свои места

    У пекарни, гончарни, костровища и святилища поправлена геометрия: спрайты зданий и точки крепления эффектов уехали из-за ошибки в арт-пайплайне (пересчёт эффектов затирал геометрию основного рендера). Здания перерендерены и опубликованы; дым и пламя снова стоят там, где нарисованы, а не над ними.

  • One-shot: опушки во всех городах

    scripts/fix-forest-edges.sql — досыпает forest_edge при expansions ≥ ring_min и снимает чужие здания с опушки (промысел на месте не трогает). Прогнано локально и на проде.

  • Охотничья заимка: «нужно расширить», не «нет свободной»

    «Лесная опушка» появляется только после первого расширения участка (ring_min: 1). Карточка больше не пишет «Нет свободной…», когда угодья ещё нет — вместо этого «Нужно расширить участок». ensure_terrain_features досыпает недостающие кольца идемпотентно.

  • Живость зданий + сезонные частицы в городе

    Сезонные частицы (снег/листья/лепестки) подключены к /city (раньше только /exterior). Пилот живости A/B/C: пекарня, гончарня, костровище, святилище — дым/огонь по каскаду (per-model clip → общий atlas → процедурный Pixi); production при working, декор при active. Конфиг building_effects.json, слой building-life-layer.ts, арт render_effects.py / render_building_effects.py.

  • Палитра: счётчик лимита n/k на карточке

    У зданий с лимитом рядом с размером — «0/1», «1/1»; при заполнении — глиняный тон. Жильё/производство без лимита — без счётчика.

  • Палитра: иконки эр вместо букв

    Фильтр эр: «Все» + глифы (бронзовый слиток / железо / арка), как у ресурсов — не буквы Б/Ж.

  • Палитра: фильтр эр и лимиты построек

    В стройке при зданиях из 2+ эр — фильтр по эре. Лимиты (ADR-0010): дефолты категории civic/defense/decor/center = 1, limit_group для эра-линий, проверка в place_building и палитре.

  • Участок: строка расширения скрыта на потолке эры

    На максимальном размере участка для текущей эры панель «Стройка» не показывает «Больше не расширить» — нечего делать, строка только шумит.

  • Наука: досье постройки по клику на превью

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

  • prod:build: stdin не доходил до ssh

    stdio: 'inherit' глотал input — удалённый bash -s получал пустой скрипт и мгновенно выходил 0. Исправлено на stdio: ['pipe', 'inherit', 'inherit'].

  • Чудо: взнос не округляется выше склада

    contributeStep / _spend_amount: snap до 0.1 не может превышать фактический остаток — иначе кнопка «Внести» при 9.96 на складе слала 10 и сервер отвечал «Не хватает ресурсов». Та же логика в festival_deliver.

29 июля 2026

  • Чудо на горизонте города

    «Сводный Двор» (6×6) виден с основной сцены — по центру северной рамки мира, между горами; этап и сезон синхронны с вкладкой «Мир». ui:wonder в мосте, wonderHorizonPosition в wonder-art.ts.

  • Рынок: нельзя купить неоткрытый товар

    Сервер (market_trade + _resource_discovered) и клиент (openResourceCodes) — товары старших эр только после постройки цепочки или если ресурс уже на складе; бронзовый базовый набор всегда доступен.

  • Умные тропы: дом → работа → склад → [ратуша]

    Сеть дорог больше не плодит маршрут от каждой хижины и «возчиков» между звеньями цепочки. Рабочий ходит дом → предприятие → (якорь) → склад своей группы ресурсов; товары (tier=goods) заносят в ратушу, сырьё — сразу домой. Быт — один раз на город. A* сначала протоптывает артерии центр↔склады.

  • Чудо «Сводный Двор» в игре: вкладка «Мир»

    wonder_vaulted_court.py — этапы 1–3 (Основание / Стены / Венец). src/scene/wonder-art.ts, wonder-scene.tsx — рендер этапа и полноэкран; config/game/wonder.json — code, title, art_model. Арт: npm run art:publish wonder после render.py --model wonder_vaulted_court --stages 1,2,3.

  • Лоадер: случайные фразы летописца

    Вместо «Подготовка города…» — случайная flavor-строка на каждый вход (пул ~20, голос летописца).

  • Лоадер входа: без дёрганий + Casual UX

    Сезонная тема только после world (нет скачка лето→весна); world грузится вместе с городом. Спокойный casual-экран: логотип, город, пилюли, fade 450 ms. Canvas не монтируется до готовности данных.

  • Сезонный оверлей входа в город

    При заходе в город — полноэкранная вуаль; сцена открывается когда атласы зданий готовы, без вспышки цветных коробок. Desktop и mobile, кнопка «Войти в город» при долгой загрузке.

  • Железо: бронзовые здания снова со спрайтами

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

  • Чудо: пыль округления больше не блокирует этап

    Этап Чуда закрывается, если прогресс снапится до цены (как в UI: 259.97 → 260). Миграция 00022 чинит залипшие миры, heal_wonder подлечивает при чтении; взнос принимает остаток меньше 0.1 и не рисует ложное «закрыто» без перехода.

  • «Подробнее»: снова видно, почему нельзя запустить работу

    В раскрытом окне здания снова пишется причина блокировки цикла: нехватка крестьян/ремесленников (сколько нужно и свободно) или сырья с иконками ресурсов; если нужды класса не закрыты — предупреждение про работу вполсилы.

  • Фокус по клику: очередь и указы

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

  • Окно здания: летопись, чистое «Подробнее», снос с подтверждением

    В конфиг зданий добавлено поле lore (голос летописца). «Подробнее» показывает описание вместо координат и техразбора циклов; у производств сетка 15/1/4/8 скрывается при раскрытии, остаются «Принять» / «Собрать». Снос — иконка с подтверждением и точным списком возврата (половина стоимости).

  • Фикс дёрганья режима стройки (mobile)

    Камера при resize больше не сбрасывает зум (fitCameraOnResize); призрак ставится под указатель, а не в центр; убран каскад React-эффектов при выборе здания; оверлей угодий пульсирует через alpha без clear() каждый кадр; зоны соседства кешируются.

  • Арт Железа: полный рендер 4 сезонов, публикация

    Весна/осень/зима: 180 спрайтов (15×3×4). Итого 240/240. pack_atlas --era iron + art:publish iron — все 4 сезона в манифесте.

  • Арт Железа: храм на цельном стилобате

    iron_temple: убраны висящие пьедимент и ступени; цельный стилобат с каскадом ступеней, колоннада на общей площадке, пьедимент из mesh, accent-фриз. Лето перерендерено.

  • Арт Железа: мельница с нижнебойным колесом

    iron_mill: убрано «циферблатное» колесо; нижнебойное колесо с ковшами, каменная чаша и русло, пристройка над колесом, бункер на кровле, мешки по образцу амбара. Accent — обод колеса. Лето перерендерено, атласы обновлены.

  • Арт Железа: храм, ювелир и цистерна

    Модули iron_temple (3×3: колоннада, пьедимент, черепица, ступени, бронзовый фриз accent), iron_jeweler (2×2: витрина с accent-камнями, верстак, малый наковальня), iron_cistern (2×2: каменный резервуар, частичная кровля, акведук, вода и бронзовый кран). build_stage_rig из _iron_common.

  • Арт Железа: рудники, плавильня и кузница

    Модули iron_iron_mine (уступы как в каменоломне, крепь входа, вагонетка с accent-флагом), iron_smeltery (каменная мастерская + кирпичный горн, дым, шлак, слитки, ember у устья), iron_forge (наковальня, мехи, горн, инструменты на стене, accent-заготовка), iron_silver_mine (светлее камень, жила руды iron + accent). Плавильня и кузница — build_stage_rig из _iron_common.

  • Арт Железа: три декора 1×1

    Модули iron_dovecote (голубятня: каменный столб, гнёзда, черепичная шапка, птицы feather, терракотовые пояски), iron_fountain (каменный чаш, пьедестал, струя water/accent), iron_flag_arch (каменная арка, два флага accent). Все tiles=1, pad_tiles 1.08–1.15.

  • Арт Железа: все 15 зданий, лето отрендерено

    Полный набор моделей iron_* (15 шт.): _iron_common.py, палитра brick/tile/terracotta/iron. Аудит 0 находок. Лето × 4 стадии = 60 спрайтов в art/out/. Обзорный лист: art/dist/overview_iron_summer_s4.png. Весна/осень/зима и pack_atlas — следующий шаг.

  • Арт Железа: палитра и эталон кирпичной печи

    Старт трека Железной эры: в molva_kit.py — роли brick, tile, tile_deep, terracotta, iron; первая модель iron_brick_kiln (каменная мастерская, черепичная кровля, кирпичный клин, сушилка, штабель с accent). Аудит 0 находок, лето отрендерено (4 стадии).

  • Вклад в Чудо не морозит экран

    Вклад в Чудо больше не блокирует весь экран (pending на все действия) и не гоняет лишний запрос мира: ответ API сразу отдаёт прогресс Чуда. Push-события сгруппированы (450 мс), фоновое обновление города — без перезагрузки конфига.

  • Ошибки API: плашка над таб-баром и сама гаснет

    Сообщение вроде «Эта позиция этапа уже закрыта» залипало внизу под меню: стояло на bottom-3, а снималось через onAnimationEnd без анимации. Теперь — над таб-баром, исчезает через 4 с.

  • Чудо мира: прогресс этапа обновляется сразу после вклада

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

  • Телефон: крестьяне и ремесленники снова в углу

    После перехода склада в шторку из правого верхнего угла пропали счётчики классов. Вернули компактно: значок и число (сколько жителей класса в городе), рядом с иконкой склада. Подсказка — «заняты X из Y».

  • Постройка: снова только tap/click по клетке

    Откат drag призрака. Клетку намечает тап или клик (PlaceConfirm), сдвиг пальца — pan карты. После отмены (Escape / «передумать») призрак снова под центром экрана; повторный выбор постройки не оставляет застывший hover.

  • Деплой: сброс Docker-кэша web при смене коммита

    docker compose up --build мог не пересобирать public/ — favicon и brand отдавали 404 в контейнере. В Dockerfile — GIT_COMMIT build-arg; в prod:build — отдельный docker compose build web.

  • Логотип: ратуша из арта, не SVG-заглушка

    Иконки и favicon пересобраны из реального рендера bronze_town_hall + кольцо сезонов на пергаменте (scripts/assets/town-hall-summer.png). Раньше в прод ушла упрощённая геометрия вместо макета. Пересборка: npm run pwa:icons; обновить исходник из Blender: npm run pwa:icons:source.

  • Favicon: пергаментный фон вместо прозрачности

    Прозрачный PNG на тёмной вкладке читался как «пустота». favicon.png и .ico теперь на #f7f2e7, знак крупнее (84% кадра); рендер через rsvg-convert.

  • Favicon: только PNG, без SVG в public

    public/favicon.svg убран из выдачи. Вкладка и PWA — PNG (favicon.png, src/app/icon.png, src/app/favicon.ico). Исходник для пересборки — scripts/assets/logo-mark.svg, команда npm run pwa:icons.

  • favicon.svg: валидный XML

    Убрана кириллица из атрибутов SVG (парсер без UTF-8-пролога падал на aria-label); добавлен <?xml encoding="UTF-8"?>. Доступность — в React-компоненте MolviumLogoMark.

  • PWA manifest и иконки установки

    Web App Manifest (/manifest.webmanifest): standalone, пергаментный splash, ярлык «Мой город», maskable-иконки 192/512. PNG набор из npm run pwa:icons; в layout — theme-color, Apple Web App и apple-touch-icon.

  • Логотип: ратуша в кольце сезона

    Вместо заглушки с горой — знак из арта: упрощённая бронзовая ратуша в кольце четырёх сезонов (акценты из design.md). SVG в шапке десктопа и favicon.svg во вкладке браузера.

  • Карта и списки: мягкий «пластилиновый» скролл

    Pan карты после отпускания пальца докатывается с экспоненциальным затуханием, а не обрывается. Скролл-порты панелей — класс scroll-port с плавным колесом и без жёсткого overscroll.

  • Мобильная стройка: pan карты и drag призрака разделены

    На телефоне в режиме постройки жест зависит от цели касания: drag по призраку двигает его, drag по пустому месту — карту; tap по земле больше не переставляет клетку. Легенда угодий остаётся на экране и на шаге подтверждения. Схват призрака — по экранному полигону (не по клетке сетки), чтобы после pan drag не ломался. Угодья на карте и в легенде — только если постройке они нужны (хижина и прочее жильё без бонуса земли — без подсветки).

  • Деплой на прод: `/prod build`

    npm run prod:build и slash-команда /prod build: preflight (lint, typecheck, test, проверка что main запушен), на Molva — pull, dbmate status/up, пересборка web, health-check.

  • Нехватка ресурса видна прямо в карточке

    В карточках построек и техов нехватка подсвечивается плашкой; тап по такому ресурсу открывает его досье (на телефоне — шторка склада, на десктопе — карточка в полосе ресурсов).

  • Режим постройки: снова двигается призрак

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

  • Ручка шторки: тонкая пилюля, зона закрытия на всю ширину

    Сброшены дефолтные стили vaul на ручке: визуально — узкая полоска 40×5 по центру, свайп и тап для закрытия — по всей верхней полосе шторки.

  • Праздник: нормальные числа во взносе

    Кнопка «Внести» и счётчик заказа больше не показывают 15.719999999999999: суммы снапятся до одной десятой и форматируются как в остальном интерфейсе. То же для взноса в Чудо.

  • Советник летописца: стройка и исследование в процессе

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

  • Арт: скелет охотничьей заимки (промысел)

    Первая модель промысла — bronze_hunting_lodge: низкий сруб, сушилка со шкурами и жёлтый полог-акцент, капканы, лук, плетень по опушке. Кадр посчитан fit_frame.py, аудит земли — 0 находок. Быстрый рендер лета (стадия 4) в art/out/bronze_hunting_lodge/summer_s4.png. Остальные три постройки промысла и полный рендер сезонов — следующий шаг.

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

  • Арт: три постройки промысла (помост, коптильня, кожевня)

    Модели bronze_fishing_pier, bronze_smokehouse, bronze_tannery — в том же качестве, что заимка: свайный помост с сетью и сушняком, коптильня с камерой/трубой/крюками, кожевня с чанами и рамами. Кадры через fit_frame.py, аудит земли — 0 находок. Быстрые рендеры лета в art/out/*/summer_s4.png. Следующий шаг: полный рендер сезонов и pack_atlas + art:publish.

    Опубликовано: полный рендер 4×16 спрайтов, pack_atlas (27 моделей), npm run art:publish bronze → public/art/bronze/.

  • Город снова открывается: угодья догенерируются на входе

    getCitySnapshot вызывал приватный _apply_spoilage от роли app — 500 на /api/v1/cities/:id. Добавлены публичные RPC apply_spoilage и ensure_terrain_features (SECURITY DEFINER); угодья для старых городов догенерируются при первом заходе.

28 июля 2026

  • Угодья: оверлей как в Civ + легенда в стройке

    Пятна угодий видны только с выбранной постройкой в палитре: мягкая пульсация, свечение, при наведении призрака на подходящую клетку — вспышка «+22%» / «Сюда» на угодье и на призраке. Слева — легенда «цвет → название → бонус».

  • Угодья и промысел (9.1.5)

    На участке появились угодья: тучная земля, опушка, берег, жила, родник, курган. Здания могут требовать угодье или получать бонус при полном накрытии footprint'ом. Четыре новых производства: заимка, причал, коптильня, кожевня; три теха: ловушки, копчение, дубление. Нужды классов — группами (bread или smoked). Дичь и рыба портятся в корм; курган раскапывается разово с таймером. Клиент: подсветка угодий, scatter, подсказки при размещении, досье свежести.

  • Мобильная шторка: высота по контенту, без snap-point'ов

    Шторка панелей больше не переключается вручную между «половиной» и «почти весь экран»: палитра стройки, наука и список склада — 85dvh со скроллом внутри; компактно только досье ресурса или класса. Закрывается свайпом или тапом по верхней полосе (вся ширина, не только пилюля); при открытой шторке нижняя навигация уезжает вниз. Списки внутри прокручиваются отдельно.

  • Карточки науки и панелей: перенос вместо обрезки

    В тех-дереве и соседних карточках убран truncate: длинные названия (открываемые постройки, эврика, блокировки) переносятся на следующую строку; иконки открытий — отдельным рядом над списком названий.

  • Рендер дорог: мощение, сезонность (9.1.8)

    Зрелые тропы показывают возраст города: на Бронзе — утоптанная земля, на Железе — гравий, в Средневековье — камень (новые текстуры gravel / paving). На stage 3 — лёгкая сердцевина по оси; у крылец лента расширяется раскатом. Весной — влажная обочина и тонкое кольцо по краю полотна (не коричневая лента шире дороги), зимой — накатанный снег. Проверка мощения — переключатель эры на /exterior.

  • Запрет контекстного меню на сцене и картинках

    Правый клик и долгий тап больше не открывают системное меню «Сохранить изображение» / «Исследовать» на canvas и картинках; перетаскивание спрайтов тоже заблокировано. В полях ввода меню браузера сохранено.

  • Долгий тап по сцене больше не выделяет текст

    Глобально отключено выделение и iOS callout по долгому тапу; в полях ввода и contenteditable выделение сохранено.

  • Телефон: город на весь кадр, склад и настройки по углам

    На телефоне город занимает весь кадр. Слева вверху — сезон и столбик занятий в одной колонке, раскрытие сезона сдвигает очередь вниз; справа — склад (шторка ресурсов с досье) и настройки (сеть, звук, сводка, выход). Нижняя навигация — все пять разделов. Полоса ресурсов сверху убрана. Шторка одна на панели и склад; верхний HUD выше ленты занятий. Подтверждение постройки и отмена — над таб-баром, крестик снимает весь режим постройки; повторный тап «Стройка» тоже отменяет. Жесты сцены: в режиме постройки один палец двигает призрак (DnD), карта — двумя или после подтверждения клетки; pinch-zoom двумя пальцами.

  • У каждой эры свой глагол

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

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

    Записано правило для будущих эр: новая эра обязана принести глагол; если она приносит только здания и ресурсы — это контент-патч, а не эра.

  • Пул механик: что берём, что откладываем и почему

    Разобранные идеи собраны в docs/Mechanics_Backlog_v0.1.md — не план, а память о причинах: критерий отбора (механика ценна, если решение возникает снова), лестница эр «земля → люди → мир», где у каждой эры появляется свой глагол вместо ещё десяти зданий, и пул механик с оценками «берём / позже / не рекомендую».

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

    Спека Бронзы переписана: угодья урезаны до шести типов с конфликтом претендентов (иначе это справочник, а не выбор), добавлены наряд на работу и скоропортящаяся дичь, у путников появился выбор и память. Бонус обжитости помечен как спорный: ADR-0009 остаётся в силе в части «как считать», вопрос «вводить ли» открыт и записан отдельно.

  • У земли появился характер, а у Бронзы — промысел (на бумаге)

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

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

    Спека — docs/Bronze_Depth_v0.1.md, решения — ADR-0008 (угодья) и ADR-0009 (обжитость вместо переноса графа троп на сервер). Кода пока нет.

  • Место постройки стало решением, а участок — тесным

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

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

    Решения записаны в ADR-0007, доки дизайна и архитектуры обновлены.

  • Глиняный карьер: копание из Mixkit #1917

    Удар лопаты (~0.76 с, 0.44 с) из mixkit-garden-digging-1917.wav → public/sfx/gestures/dig.opus (~2 КБ).

  • Поля: шелест листвы из Mixkit #1222

    Шаг по сухой листве (~3.92 с, 0.48 с) из mixkit-walking-through-dry-forest-leaves-1222.wav → public/sfx/gestures/harvest.opus (~2.4 КБ). Зерновые, ячменное и льняное поле.

  • Карьер: осыпание камней из Mixkit #400

    Удар по камню (~0.28 с, 0.38 с) из mixkit-stones-and-rocks-falling-400.wav → public/sfx/gestures/quarry.opus (~2 КБ). Повторная обработка: npm run sfx:process -- quarry <source.wav>.

  • Промысел звучит, пока открыта панель

    У построек с подписным жестом (лесосека, карьер, поле…) рубка/копка/жернов повторяются, пока панель активна — как пила на стройплощадке. Одиночный стук при клике убран.

  • Лесосека звучит настоящей рубкой (2.4 КБ вместо 5.9 МБ)

    Из полевой записи Mixkit вырезан один удар топора (~0.42 с): моно, highpass, компрессия, fade, Opus 48 kHz. Файл public/sfx/gestures/chop.opus; повторная обработка — npm run sfx:process -- chop <source.wav>. Сэмпл подхватывается при старте звука, синтез остаётся запасным.

  • У построек свои звуки: лесосека рубит, карьер долбит

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

  • Летопись: дата больше не наезжает на текст

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

  • Одна команда: проверки и docker build

    npm run web:build прогоняет lint, typecheck и тесты на хосте, затем собирает web-образ в Docker — тот же Dockerfile, что поедет в прод. Контейнер не поднимается. Флаги: --skip-checks (только образ), --no-cache (пересборка с нуля).

  • Иконки сбора у всех полей, не только у первого

    Когда несколько зданий одновременно ждали сбор, иконка ресурса в пузыре появлялась только у одного: пока SVG грузился, остальные запросы терялись. Теперь все ожидающие получают callback после одной загрузки; при следующем sync пузыри без иконки дорисовываются, если текстура уже в кэше. web:build собирает образ, для применения нужен web:up.

  • Идущее дело видно с закрытыми глазами

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

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

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

  • «Подробнее» раскрывается прямо над домом, а время пошло быстрее

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

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

  • Стройка зелёная, наука синяя, превью влезают в кадр

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

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

  • Окно постройки открывается над самим домом, а картинки вернулись

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

    Исправлены пропавшие превью построек: картинка схлопывалась в точку, потому что строчный элемент игнорировал заданный размер. Миниатюры вернулись и в палитру стройки, и в окно постройки.

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

  • Молвиум открылся по адресу molvium.ru

    Игра больше не живёт только на ноутбуке: она развёрнута на сервере и доступна по https://molvium.ru — с сертификатом, шифрованным соединением и работающим real-time. Мир открыт в обычном темпе (скорость ×1), город создаётся при первом входе.

    Ночью база сама сохраняется в резервную копию, недельной давности копии удаляются; восстановление из копии проверено.

  • Звук разделён на две дорожки

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

  • Панель разделов больше не занимает экран постоянно

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

    Клик по зданию больше не распахивает панель ни на телефоне, ни на десктопе: появляется полоса быстрых действий над сценой, а полная карточка открывается кнопкой «Подробнее». Назначенная работа, снос и закрытие карточки возвращают город.

  • Указ закрывается обрядом: печать, свиток в летопись, награда — в кошелёк

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

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

    Смена главы теперь отмечена: экран гаснет, название главы проявляется чернилами и растворяется — прервать можно кликом или Escape. Летопись открывается разворотом свитка, а свежая запись дописывается пером на глазах.

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

  • Жители получили свои значки, а советник перестал советовать построенное

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

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

  • Простаивающие постройки видно, а сезон показывает, сколько его осталось

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

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

  • Стройку слышно, а достроенное принимается кликом

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

    Заодно исправлены две вещи над достроенным домом. Вместо галочки в пузыре висел зелёный треугольник: ломаная замыкалась сама на себя. И клик по этому пузырю пытался собрать урожай там, где урожая нет, — отвечая «Цикл не запущен». Теперь клик по пузырю достроенного здания принимает стройку, как и должен.

  • Полосы прокрутки исчезли

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

  • Видно, что в городе происходит, и стройка ищется быстрее

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

    Палитра стройки получила ленту категорий: «Все», «Жильё», «Производство», «Склады», «Гражданские», «Защита», «Убранство» — с числом построек в каждой. Тап по категории оставляет на экране только её, повторный тап возвращает полный список группами. У категории, в которой лежит совет летописца, горит золотая точка — совет не теряется, даже если сейчас открыта другая группа.

  • Палитра стройки объясняет, зачем строить

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

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

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

  • Летопись ведёт игрока за руку

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

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

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

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

  • Игра теперь называется «Молвиум»

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

  • Клик попадает туда, куда целились

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

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

  • Наука по-человечески, лента занятий и сводка города

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

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

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

  • Дороги наконец взрослеют сами

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

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

  • Жители больше не сбрасываются на каждое действие

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

  • Постройка теперь ставится в два шага

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

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

  • Шторка и летопись перестали спорить друг с другом

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

  • Деревня перестала быть деревней клонов

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

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

  • Деревня с женщинами, детьми и ремёслами

    Жители перестали быть на одно лицо. По улицам ходят крестьяне и крестьянки в платках и юбках, ремесленники и ремесленницы в фартуках, у хижин играют дети. Пол выбирается жребием — работают и мужчины, и женщины.

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

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

  • Жители: классы, дети во дворах, сезонная одежда и правильный разворот

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

    Одежда меняется по сезону: весной, летом и осенью ткань выцветает по-своему, зимой все надевают тулупы и шапки. Раньше сезон на жителях не отражался вовсе.

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

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

  • Тропы стали землёй, а не нарисованной линией

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

  • Телефон: город во весь экран, панель — шторкой

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

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

  • У каждой постройки свой голос

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

    Голос выводится из того, что здание делает, а не из списка кодов: новая постройка в конфиге получает подходящий звук сама.

  • У города появился голос

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

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

  • Дороги из жизни города, природа в боевой сцене и жители в 8 ракурсах

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

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

    Жители перестали ходить только боком: у персонажа теперь 8 направлений (шаг 45°), на кривых тропах видно спину и лицо. Атлас пересобран, память выросла в пределах бюджета спеки.

  • Земля города стала гранёной, а не крашеной

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

  • Три мелких фикса: тексты, зависший прогресс, липкий выбор

    Полоса прогресса больше не зависает на 100%: как только стройка или цикл доигрывают по времени, здание само переключается на пузырь сбора (и меняет стадию спрайта стройки) без перезагрузки страницы. Числа с классами жителей склоняются по-русски («3 крестьянина», «5 крестьян»), а предупреждение в палитре стройки теперь честно говорит «После постройки некому будет работать» — сама стройка рабочих не требует. После успешной постановки здания выбор в палитре и призрак на карте гаснут сами.

  • Сцена перестала замирать

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

  • Город ожил: здания показывают, чем заняты

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

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

  • Прогресс стройки и работы

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

  • Превью зданий и досье ресурса

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

  • В палитре видно, хватает ли на постройку

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

  • Понятная карточка здания

    Числа в карточке здания перестали расходиться. Раньше было написано «производит 20 Дерево в час», а цикл на час обещал 9.6 — не хватало половины объяснения: зимой дерево идёт с множителем 0,8, а Мороз режет ещё до 0,6. Теперь показаны все множители и итог: «Зима ×0,8, Мороз ×0,6, итого ×0,48 от базовой».

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

  • Полоса ресурсов показывает только открытое

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

  • Интерфейс: свои шрифты, иконки ресурсов и игровая дата

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

    Виджет сезона теперь показывает игровую дату — «Лето 28 июля» вместо обратного отсчёта; сколько осталось до смены сезона, видно в подсказке при наведении.

  • Город больше не встаёт намертво

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

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

  • Ритм первых часов: стройки и техи разложены по кривой

    Время строительства и исследований перестало быть заглушкой. Первые минуты — каскад: хижина, поле и лесосека поднимаются за 20–60 секунд, и городу сразу есть чем заняться. Дальше сроки растут по дню: рядовая застройка — минуты, мастерские — часы, а переход в Железо и Храм требуют ночного ожидания в 8–9 часов, как и задумано для старших вех. Рынок сдвинут в начало игры: Торговый пост строится за 20 минут вместо часа, потому что до него монеты в городе взять негде.

    Стартовый запас монет увеличен с 800 до 1200 — путь до Торгового поста стоит около 1090, и прежнего запаса не хватало: город замирал на час, не в силах поставить ни пекарню, ни сам пост.

  • Жители вышли на тропы

    По протоптанным тропам ходят крестьяне: число ходящих пропорционально занятому населению (потолок 40 — бюджет спеки), маршруты и расстановка детерминированы городом, движение туда-обратно с индивидуальной скоростью и фазой шага. Зимой жители одеваются в тулупы — отрендерен зимний комплект мастер-модели, собраны атласы персонажей с общим манифестом (упаковщик art/pack_chars.py, origin меряется по силуэту, а не задаётся руками). При просадке ниже 30 fps жители отключаются и возвращаются на 45 — деградация из design.md.

  • Тропы вернулись в город

    Протаптываемые тропы (ADR-0006) снова рисуются в городской сцене — слой потерялся при переводе города на спрайты. Между зданиями и их целями протаптываются маршруты: примятая трава → тропа → утоптанная грунтовка, зимой — утоптанный снег. Геометрия детерминирована снапшотом и seed города: гость при визите видит те же тропы, что хозяин.

  • Клик по зданию снова работает, тени не «дырявят» землю

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

  • Город наконец показывает здания, а не коробки

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

27 июля 2026

  • Здания бронзы: сплошной проход по качеству

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

    Кадр спрайта теперь считается из геометрии вместе с проекцией тени, а не подбирается на глаз: длинные зимние тени перестали срезаться краем картинки (у ратуши срезалось 227 px), а у низких построек ушёл лишний воздух — суммарный объём пикселей вырос всего на 7 %.

  • Обжитая округа: поля, межа, телеги и сезонные частицы

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

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

  • Вода в окрестностях

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

  • Горы на горизонте

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

  • Земля стала глиняной, а не крашеной

    Трава, земля и снег больше не заливка двух оттенков в клетку: земля — материал из того же Blender-пайплайна, что здания, с фасетками, рельефом и мягкими пятнами дёрна. Тянется бесшовно, шахматки и клеточной ряби больше нет, поверх остаётся только крупный рисунок луга — пятна грунта и притенения. После первой версии убрана «пиксельность»: оттенки переведены на плавные градиенты, на отдалении текстура сглаживается мип-мапами. Рендер всех сезонов — 13 секунд, вес — 64 КБ.

  • Ателье перестало вешать вкладку

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

  • Тени природы больше не обрезаются

    Зимой у деревьев и камней тень уходила далеко за пределы своего спрайта и обрубалась прямоугольником — на снегу это бросалось в глаза. Солнце для природы поднято, тень стала короткой и контактной, а лёгкий серый налёт вокруг каждого объекта убран при сборке атласов. Заодно атлас похудел с 1.5 до 0.8 МБ.

  • Экстерьер: нагрузочная раскладка в песочнице

    В песочницу добавлен режим «Нагрузка» — участок 40×40 сплошной застройки: 169 зданий, 168 троп, 651 объект природы. Держит 120 fps, полная пересборка сцены — 28 мс. Панель показывает счётчики и время пересборки, чтобы замеры были видны прямо на экране.

  • Живой экстерьер: лес, поляны, гряды и овраги

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

  • Протаптываемые тропы вместо строимых дорог

    Дороги больше не строятся и не требуются для зданий: дорожная сеть города возникает сама — жители протаптывают маршруты между домами, работой, колодцем и складами, и со временем связка зреет от примятой травы до утоптанной грунтовки (ADR-0006). У каждого игрока рисунок дорожек свой, гость при визите видит тот же город, что хозяин. Здание «Дорога» удалено из игры, слот очереди и ресурсы на неё больше не тратятся.

  • Песочница экстерьера /exterior

    Новая служебная страница: три демо-города (хутор, село, город), переключатели сезона и «возраста города», слои тропы/здания/сетка. Здесь отрабатывается живой мир вокруг застройки — тропы уже в ней, дальше растительность, поляны и рамка мира (docs/Exterior_v0.1.md). Тропы рисуются не сплошной линией, а штампами вдоль кривой: цепочки следов в траве, земляная лента с рваными краями, грунтовка с тёмной сердцевиной и камешками по кромке; зимой — утоптанный снег.

  • Арт: производства и сырьё Бронзы — 5 моделей

    Готовы Ткацкая (вертикальный стан с нитями основы и грузиками под навесом, рама-сушило с крашеным полотном, корзины со льном, красильный чан), Гончарня (купольный горн с дымником и дымом, гончарный круг, стеллаж с обожжённой посудой, доски с сырцом, ларь с глиной) и три выработки — Глиняный карьер, Лесосека и Каменоломня. У выработок стадии показывают не стройку, а освоение: размеченная целина → первая выемка или вырубка → почти сведено → работающий участок с мостками, журавлём, козлами и краном. Все пять — в 4 сезонах и 4 стадиях.

  • Арт: Бронзовая эра целиком — 23 здания в спрайтах

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

  • Арт: жильё Бронзы — Хижина крестьян и Двор ремесленника

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

  • Арт: праздник, защита и убранство Бронзы — 6 моделей

    Готовы Праздничная площадь (помост со сценой и полотнищем цвета сезона, гирлянды по периметру, длинные столы на козлах, кострище), Зерновой погреб (дерновый холм с бревенчатым порталом и ступенями вниз) и Дровяной навес (соломенная односкатка над плотными поленницами), а также три декора праздника 1×1 — Гирлянда, Штандарт и Костровище. У площади и декоров цвет сезона взят щедро: весной розовый, летом золото, осенью оранж, зимой голубой; у построек защиты акцент один и маленький. Все — в 4 сезонах и 4 стадиях стройки.

  • Арт: production-рендер зданий, первая модель — Ратуша Бронзы

    Заработал арт-каталог art/: свет и камера по канону дизайна (солнце по сезону, тень запекается в альфу спрайта), сезонные палитры и стадии стройки — автоматикой. Готова Ратуша Бронзовой эры: соломенная вальмовая кровля с дымником, фахверк, крыльцо на резных столбах, звонница с бронзовым колоколом, доска указов; 4 сезона × 4 стадии стройки, зимой снег на кровле и тёплый свет в окнах.

  • Сцена города больше не пустая

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

  • Фаза 6: Чудо мира, соседи и полный цикл мира

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

  • Фаза 5: праздники, Молва и сезонные угрозы

    У каждого сезона теперь свой праздник — Ярмарка, Игры, Урожай, Солнцестояние. Подготовка идёт весь сезон и складывается из трёх частей: Заказ (товары на склад праздника), Убранство (декор своей эры) и Праздничная площадь, обязательная для сотни. Итог превращается в Молву I–III — бонус производству на весь следующий сезон; не успели — просто нет бонуса, штрафа за пропуск нет. Одновременно пришли угрозы: летом засуха, осенью вредители, зимой мороз. Без нужной постройки урожай и сырьё проседают, с ней — нет; в панели видно, стоит ли защита.

  • Фаза 4: тех-дерево с эвриками и эра Железа

    Появилась наука: ветвящееся дерево из 18 техов по эрам, у каждого — что он откроет и эврика (выполнил условие в игре — например, построил две лесосеки — и исследование дешевеет на 40%). Ключевые техи открывают следующую эру: пройдя Бронзу, город входит в Железо с 15 новыми зданиями, знатью, мукой, пивом, металлом и украшениями. В палитре стройки закрытые здания подписаны причиной: нужен тех или эра.

  • Фаза 3: рынок и сезоны — мир задышал

    Открылся NPC-рынок: Торговый пост даёт доступ к торговле, курсы общие на весь мир, покупка дороже продажи на спред, а цены двигаются от сделок всех игроков и обновляются в интерфейсе сами, без перезагрузки. Появились сезоны: весна → лето → осень → зима идут по расписанию мира, меняют урожайность (зима вдвое режет зерно, осень поднимает) и перекрашивают землю города. В шапке сцены — текущий сезон с таймером до смены и индикатор живой связи.

  • Фаза 2: город можно строить — дороги, здания, производство

    Появилась игровая петля Бронзы: 24 типа зданий из конфига, дороги с проверкой подключения, очередь строительства (второй слот за 500 монет), производственные циклы с выбором длительности (15 мин / 1 ч / 4 ч / 8 ч — короткий эффективнее в пересчёте на час), склады с потолком накопления, крестьяне и ремесленники с жильём и нуждами, снос с возвратом половины стоимости. Город основывается автоматически при первом входе.

  • Фаза 1: приложение запускается — регистрация, вход, сцена города

    Появилось само приложение: регистрация и вход по e-mail с паролем, шапка с именем игрока и кнопкой выхода, экран города с изометрической сеткой. Неавторизованных перенаправляет на вход. Локальный запуск — npm run dev после docker compose -f compose.dev.yaml up -d.

К началу