- Теперь в карточке жителя видно, ПОЧЕМУ он делает то что делает
- «Голоден», «Бежит к ребёнку», «Убегает от врага», «Болтает с другом» — причина действия на виду
- 8 типов социального поведения теперь объяснены
- Новая кнопка 🔔 в верхней панели
- Все важные события сохраняются — больше ничего не пропустите
- Кликните на событие, чтобы перенестись к месту действия
- Красный значок показывает количество непрочитанных
- «Сейчас интересно» больше не перекрывает всю карту на мобильных
- На маленьких экранах показывает 3 карточки + кнопку «Ещё»
- Назначение работ ускорено — жители подбираются по специальности, а не перебором
- Маршруты больше не пересчитываются целиком при каждом строительстве — только затронутые пути
- Новые шаги обучения: теперь FTUE показывает кнопку 🔥 «Сейчас интересно» и 👁 «Режимы обзора»
- Новичок сразу узнаёт, где искать истории и как переключать визуализации
- Игроки, уже прошедшие обучение, не увидят повтора
- Мир быстрее реагирует на затишье — если долго ничего не происходит, драма придёт раньше
- Более точное определение «тихих» периодов
- Поиск жителей теперь мгновенный — используется кэш вместо полного перебора
- Проверка кланов ускорена в десятки раз
- Все системы используют общий кэш живых жителей
- Мир обрабатывается быстрее — оптимизирован поиск изменений на карте
- Устранены микро-подвисания при сохранении и проверке событий
- Рождение жителей и поиск жилья работает эффективнее
- Периодические проверки распределены равномерно — нет скачков нагрузки
- Когда в роду не остаётся молодых мужчин или женщин, старейшина получает шанс продолжить династию
- Шанс на спасение ~77%, но некоторые роды всё же уходят в историю
- В летописи появляется запись: "Род на грани вымирания — старейшина ищет наследника"
- Трудолюбивые жители иногда добывают двойной урожай
- Ленивые могут прогулять работу и ничего не сделать
- Шахтёр, нашедший подземное озеро, исцеляется и радуется находке
- В тяжёлые времена (набеги, голод, болезни) мир посылает помощь — странников и удачные находки
- Позитивные легенды (Феникс, многодетная мать) больше не считаются кризисами
- Мир теперь чувствует ритм: если долго ничего не происходит, назревает конфликт
- При кризисах мир не нагнетает новые беды — даёт разобраться с текущими
- Напряжённость мира отслеживается и влияет на частоту событий
- Жители в каменных домах и замках довольнее — настроение стремится выше
- Бездомные хронически грустят — настроение дрейфует ниже
- Тесные хижины (>3 жителей) снижают настроение
- Жадные вечно недовольны, щедрые — наоборот
- Шахтёры, погибшие от обвала, теперь корректно учитываются в статистике рода
- Подземные события используют детерминистичный генератор — мир воспроизводим
- Проклятие одинокого не дублируется при повторном срабатывании
- «Последний в роду» — единственный выживший из клана получает проклятие и горе
- «Феникс» — выживший на грани смерти становится живой легендой
- «Ромео и Джульетта» — любовь между враждующими родами
- «Великий странник» — кто побывал во всех землях, получает титул
- «Столетний мудрец» — долгожитель становится мудрецом племени
- «Многодетная мать» — мать пятерых детей — опора рода
- «Волкобой-легенда» — опытный охотник становится героем
- Жадные тайком едят запасы раньше других — соседи замечают и обижаются
- Щедрые поддерживают грустных соседей — настроение улучшается, дружба крепнет
- Трудолюбивые иногда работают вдвое усерднее
- Ленивые иногда отлынивают от работы
- Обвалы в глубоких шахтах — шахтёры получают ранения
- Ядовитый газ — отравление и болезнь
- Древние гробницы — сокровища и мудрость
- Подземные озёра — открытие новых территорий
- Мосты теперь строятся от берега до берега — прямая линия через воду
- Больше никакого хаотичного замощения озёр
- Строители планируют маршрут заранее и возводят мост по плану
- Выбирается кратчайшее направление через водоём
- Атаки волков, рейдеров и хищников теперь видны: диагональный слэш и брызги крови
- Направление крови зависит от позиции атакующего — удар чувствуется
- Гибель в бою: житель падает, лежит на земле, под ним растёт лужа крови
- Каждый бой теперь — маленькая драма, которую хочется наблюдать
- В мире появились четыре сезона: весна, лето, осень, зима — каждый по-своему влияет на жизнь
- Весной рождается больше детей, деревья растут быстрее, настроение выше
- Летом фермы дают щедрый урожай, но бывают засухи
- Осенью собирают вдвое больше ягод, караваны приходят чаще
- Зимой голод усиливается, болезни опаснее, жители двигаются медленнее
- Карта меняет палитру: яркая зелень весной, оранжевые краски осенью, снежные тона зимой
- Над миром кружат лепестки, листья или снежинки — по сезону
- Активные истории жителей теперь видны прямо на карте — маленькие иконки-значки вверху экрана
- По значку видно: кто влюблён, кто враждует, кто учит — и на каком этапе история
- Нажмите на значок, чтобы перейти к герою и следить за развитием
- Первый дом, первое открытие, рождение наследника — отмечены золотым уведомлением
- Можно нажать «Показать» и камера перелетит к месту события
- Редкие события: кометы, золотые века, великие штормы, кочевые племена и ещё 8 уникальных происшествий
- Новая кнопка «глаз» — переключает режимы обзора карты
- Видно кто голоден, где опасность, кто из какого клана, чем заняты жители, кто с кем дружит
- Нажмите V или тапните кнопку для переключения
- В первые минуты события происходят чаще — мир оживает быстрее
- Странники приходят раньше, помогая молодому племени выжить
- Жители теперь влюбляются по-настоящему — от первого взгляда до свадьбы проходит время
- Родители становятся наставниками для своих детей, обучая мастерству
- Отвергнутые поклонники могут затаить обиду и стать соперниками
- Жадные и трусливые жители винят друзей после гибели близких
- Соперники раздражают друг друга при встрече — вражда нарастает
- Бывшие друзья могут стать заклятыми врагами через цепочку обид
- Потеря супруга или ребёнка в бою вызывает эмоциональный срыв
- Затяжная тоска (плохое настроение) тоже приводит к срыву
- После срыва — путь героя: восстановление и новые достижения
- Восемь типов историй: любовь, наставничество, вражда, предательство, путь героя, кризис и восстановление, тихая жизнь, невосполнимая потеря
- Каждая история рождается органически из поступков жителей
- Иконки потребностей стали крупнее и чётче — видны на любом фоне
- Животные отмечены цветными точками: зелёная — мирные, красная — хищники, синяя — собаки
- Под жителями появилась полоска цвета их рода — сразу видно кто из какого клана
- Руда теперь серо-металлическая, ягоды — красные: не путаются с биомами
- Над выбранным жителем — цветная точка по типу задачи (зелёная = собирает, коричневая = строит, синяя = спит)
- Если племя застряло — подсказка «попробуйте божественное вмешательство»
- Кнопка 💬 в верхней панели — ссылка на Telegram для отзывов и предложений
- Если файл сохранения повреждён, сервер автоматически восстановит мир из резервной копии
- Защита от некорректных значений здоровья и настроения жителей
- Команды администратора не могут конфликтовать с расчётом хода
- Автосохранение не дублируется на одном и том же ходу
- При максимальном населении нельзя основать новый род — дождитесь освобождения
- Ошибки в браузере игрока теперь отправляются на сервер для диагностики
- Арки жителей теперь отображаются в «Сейчас интересно» с прогресс-барами — видно, как развивается история
- Наведи на ачивку — появится описание, за что она выдана
- Над головами появились иконки-мотиваторы: голод, усталость, работа, строительство
- Видно без клика, чем занят каждый житель
- Карта исследованных тайлов уменьшилась с 10 МБ до 23 КБ в памяти
- Стабильнее на слабых устройствах
- Сервер корректно сохраняет мир при неожиданных ошибках вместо потери данных
- Ограничение связей до 20 на жителя — предотвращает рост файла сохранения
- Новая кнопка 🔍 в верхней панели на мобильных устройствах
- Находи жителей по имени, роду или профессии без клавиатуры
- На дальнем зуме вокруг жителей появляется тёмный контур — больше не сливаются с травой и лесом
- Новый игрок теперь видит 5 шагов вместо 3: объяснение мира, приглашение кликнуть на жителя, наблюдение, управление, создание рода
- «Кликни на жителя» — попробуй прямо на экране, и вводка продолжится сама
- Первые минуты каждой новой эпохи стали динамичнее: жители быстрее осваиваются и исследуют
- После начальной фазы темп возвращается к обычному
Теперь можно посмотреть сводку мира в любой момент — нажмите 📋 рядом с 🔥. А за кулисами — полностью перестроен процесс разработки.
- Новая кнопка 📋 в верхней панели рядом с «Сейчас интересно»
- Нажмите — увидите что произошло за последнее время: ключевые истории, статистику, события
- Работает всегда, не только при возвращении после перерыва
- Повторное нажатие закрывает сводку
- Автоматическая проверка стиля кода при каждом коммите
- Покрытие тестами 79%, порог в CI не даёт опуститься ниже 75%
- 870 тестов + 13 интеграционных + 12 E2E + проверка производительности
- Автоматический откат при проблемах после обновления
- Отслеживание ошибок на сервере
Теперь каждый житель проживает настоящую сюжетную арку. Система находит и показывает драматические истории — путь героя, любовь, предательство, потери. Заходите и видите сразу что интересного происходит.
- 8 типов историй: путь героя, история любви, наставничество, вражда, предательство, кризис и восстановление, невосполнимая потеря, тихая жизнь
- Арки определяются автоматически из событий жизни
- На странице жителя записи группируются по аркам с цветными полосками
- Умершие жители сохраняются до конца эпохи — их летопись можно прочитать
- При входе в игру — карточки "Сейчас интересно" с самыми яркими историями
- Кнопка 🔥 в верхней панели — показать/скрыть список
- Незавершённые арки ("Мария в кризисе — переживёт ли?") как драма
- Завершённые арки ("Путь героя: от кризиса к мудрости") как истории
- Тосты с интересными событиями каждые 30-60 секунд
- Все 8 типов взаимодействий показываются (дружеский разговор, обучение, поиск супруга...)
- Разнообразие: максимум 2 карточки одного типа
- Исправлен горизонтальный скролл и чёрные полосы
- Плашки с прозрачным фоном заменены на плотные
- Return digest починен для приватного режима браузера
- Симуляция полностью детерминистична — один seed = один результат
- 154 точки случайности заменены на seeded генератор xoshiro128
- Состояние генератора сохраняется — после загрузки мир продолжается идентично
- 829 тестов (было 793)
- 12 интеграционных тестов Phase 1+2
- 4 новых инварианта для системы отношений
- sim:bench проверяет что арки, триггеры и перехваты срабатывают
- Скорость тика улучшена в 3-8 раз (было 80-440мс, стало 50-70мс)
- Патфайндинг: лимит 4000 узлов, кэш 2000 путей
- Социальная близость: O(n) вместо O(n²)
- Сервер: swap 512МБ, лимит памяти Node 256МБ
- Обезьяны, олени и верблюды больше не уходят из своего биома
- Скорпион, белый медведь и ягуар респавнятся каждые 200 тиков
Жители теперь строят настоящие отношения. Дружба, любовь, соперничество, вражда — каждая связь влияет на поведение и создаёт уникальные истории.
- 8 типов: друг, супруг, наставник, соперник, враг, поклонник, родитель, ребёнок
- Отношения развиваются постепенно через совместное время и события
- Наставники обучают учеников, соперники работают быстрее, враги дерутся или убегают
- Предательство: друг становится врагом
- Примирение: враг снова становится другом
- Любовный треугольник: два поклонника одного — теперь соперники
- Месть: храбрый мстит за убитого друга
- Наставничество: ученик превосходит учителя
- 390 уникальных текстов для событий отношений
- Новые нарративные арки: любовная, наставническая, вражда и примирение
- Каждый житель — уникальная история
- Летопись заменила старую хронику жизни
- Трассировка обогащена событиями отношений
- Статистика эпох включает данные по отношениям
Каждый житель теперь уникален. У всех есть характер, потребности и своя история.
- У каждого жителя 2 черты характера из 12 возможных
- Трудолюбивые работают быстрее, ленивые — медленнее
- Стойкие выдерживают больше, нервные — ломаются быстрее
- Дети наследуют черты родителей
- Три потребности: сытость, отдых, общение
- Если потребность не удовлетворена — житель бросает работу
- При критическом уровне — срыв: житель садится и не двигается
- Иконки над головой показывают текущую проблему
- У каждого жителя своя история жизни
- Записи зависят от характера: стойкий молча терпит, нервный плачет
- 72 уникальных текста для разных ситуаций
- Истории складываются в нарративные арки
- Дайджест возвращения показывает срывы пока вас не было
- Трассировка обогащена событиями потребностей
Все спрайты перерисованы с 8×8 до 16×16 пикселей. Жители, животные, здания и биомы стали в два раза детальнее.
- Жители теперь с глазами, обувью и различимыми силуэтами профессий
- У зданий видны окна, двери и архитектурные детали
- Все 13 видов животных различаются по форме, а не только по цвету
- Деревья с ветками, кактусы с колючками, дюны с тенями
- Тёмный контур вокруг жителей и животных — силуэты читаются на любом фоне
- Тени под всеми живыми существами
- Поддержка Retina-экранов — пиксели чёткие на любом устройстве
- Приближение до ×4 для рассмотрения деталей
Теперь при возвращении после отсутствия игра встречает вас сводкой событий — что произошло, пока вас не было. Чем дольше не заходили, тем подробнее сводка.
- При возвращении через 30 минут и более появляется карточка с кратким отчётом: сколько родилось, сколько умерло, какие технологии открыли
- Кнопка «Перейти к набегу / каравану / технологии» сразу показывает самое интересное
- Для длительного отсутствия (3+ дня) — дополнительные карточки с историей изменений
- В дайджесте появляется случайная фраза-слух — маленькая деталь мира: «По ночам у стен слышен волчий вой» или «Собор возвышается над крышами». Слухи зависят от состояния мира — эпохи, зданий, животных, погоды
- При возвращении видно, как кланы соотносятся друг с другом: кто доминирует, кто борется за первенство, есть ли равновесие
- Если закреплённый житель сменил занятие, потерял здоровье или погиб — об этом будет в сводке
- Для погибших теперь показывается причина смерти и возраст
- Перед закрытием игры показывается карточка «Проверь исход набега» или «Скоро новая технология» — чтобы было зачем вернуться
- Повторяющиеся однотипные события (сбор ягод, строительство дорог) теперь сворачиваются в одну строку — лента стала читабельнее
- Важные события (набеги, смерти, технологии) всегда показываются полностью
Мир стал в два раза больше (192×192) и разнообразнее. На севере — заснеженная тундра с замёрзшими озёрами и оленями. На юге — жаркая пустыня с дюнами и скорпионами. На востоке — густые джунгли с ягуарами и обезьянами. Племя начинает в привычном центре и постепенно осваивает новые территории.
Снежные равнины, ледяные камни, редкие деревья. Замёрзшие озёра можно перейти пешком. Ягель растёт медленно — еда тут дефицит. Олени дают мех, а белые медведи очень опасны. Меховая мастерская позволяет племени двигаться по снегу без замедления.
Песчаные дюны, кактусы, редкие оазисы. Движение по песку медленнее. Скорпионы ядовиты — укус отравляет на несколько тиков. Верблюды помогают путешествовать быстрее. Колодец создаёт оазис вокруг себя — там появляются ягоды и исчезает штраф к скорости.
Густая растительность замедляет движение сильнее всего, зато еды в изобилии — экзотические фрукты, бамбук, лианы. Ягуар — самый опасный хищник в игре. Обезьяны воруют еду со складов, но с приручением животных начинают приносить фрукты. Хижина на сваях — дешёвое жильё из бамбука.
- 🦂 Скорпион — быстрый, ядовитый, обитает в пустыне
- 🐫 Верблюд — мирный, ускоряет передвижение в пустыне
- 🐻❄️ Белый медведь — медленный, но очень сильный хищник тундры
- 🦌 Олень — пугливый, даёт мех; одомашнивается
- 🐆 Ягуар — быстрый хищник джунглей, нападает из засады
- 🐒 Обезьяна — ворует еду или приносит фрукты (с приручением)
- 💧 Колодец (пустыня) — создаёт оазис, убирает штраф скорости
- 🧊 Меховая мастерская (тундра) — снимает замедление в снегу для всего племени
- 🏡 Хижина на сваях (джунгли) — жильё на 4 человека из бамбука
- Карта выросла с 128×128 до 192×192
- Зоны определяются направлением от центра с плавными переходами
- 8 новых ресурсов: кактус, песчаник, ягель, ледяной камень, бамбук, экзотические фрукты, лианы, мех
- Система наблюдения за здоровьем симуляции: проверки целостности, замеры производительности, ежедневные отчёты
- Склады больше не переполняются впустую — жители не собирают ресурсы когда некуда класть
Админ-команда «Новый мир» создавала свежую карту с теми же номерами жителей (e1, e2...), и сохранённые закладки начинали тихо следить за другими людьми — с тем же номером, но из нового рода. Теперь закладки привязаны к «сиду» мира: при смене мира они очищаются, следящий за кланом или жителем получает чистое состояние.
Пины хранят номер мира, в котором были поставлены. Когда сервер создаёт новый мир, клиенты получают сигнал `world-reset` и стирают старые закладки, выбранного жителя, режим слежения камеры — чтобы не путать с новыми одноимёнцами.
История сидов и панель с кнопкой «Новый мир» переехала в админ-команду (`POST /api/new-run`). На клиенте больше нет дублирующей боковой панели — меньше визуального шума в интерфейсе.
После релиза v0.18.2 длинная трассировка показала: собиратели часто приходят на куст, который только что обобрали другие, и теряют целый тик «ничего не делаю». Строители без работы не могли определиться — то собирать ягоды, то работать на ферме — и метались между ними. Оба случая починены.
Собиратель больше не стоит столбом у обобранного куста. Если на целевой клетке ресурса уже нет — он сразу находит ближайший живой куст/дерево/камень того же типа и идёт туда. Раньше тратился тик на возврат в job-board и новый поиск. В метриках трассировки появилось событие `retarget`.
Если строить нечего, строитель помогает собирателям или фермерам. Раньше он каждый тик выбирал занятие заново — и бегал туда-сюда между несколькими типами работ. Теперь житель, уже занятый своим делом, получает приоритет продолжать его — не меняет род занятий без веской причины.
Трассировка 10 жителей за 120 тиков на проде вскрыла четыре бага AI, из-за которых часть населения годами ничего не делала. Все исправлены.
Если камень, ягоды или руда находились за водой/горой и путь к ним не строился, житель всё равно получал эту задачу каждый тик, «выполнял» её на своей клетке (где ничего нет) и сбрасывался. В итоге — 160 тиков впустую, ноль ресурсов, ноль опыта. Теперь первый же неудачный путь помечает цель как недостижимую на 20 тиков, житель получает другую цель или уходит бродить.
На карте с несколькими фермами житель-фермер выбирал «ближайшую», но из-за движения «ближайшая» менялась каждый тик — и он бегал туда-сюда, не успевая ни разу поработать. Теперь: если уже идёт к цели — доходит до неё и собирает урожай.
После сохранения и загрузки мира новорождённые дети получали те же номера, что у живых жителей из сейва (e1, e2...). Это ломало статистику — в трассе один и тот же номер оказывался в двух местах одновременно. Нумерация теперь продолжается корректно после рестарта.
Случай «житель уже на целевой клетке» теперь правильно считается успехом, а не ошибкой pathfinding. В трассировке появились события `job_sticky` (житель держит цель) и `target_blacklisted` (цель помечена недостижимой) — видно, почему житель не идёт за конкретным ресурсом.
Когда житель застревает — например, «Светлана фермерит, но ходит от клетки к клетке и ничего не собрала» — теперь можно включить трассировку её решений на несколько минут и увидеть каждый шаг: какая задача назначена, какую ферму нашёл алгоритм, построился ли путь, что сработало в executeAction, сработал ли анти-залипатель. Всё пишется в `data/traces/
API (admin-gated, X-Admin-Token):
- `POST /api/trace/start` — включить для entityId
- `POST /api/trace/stop` — выключить
- `GET /api/trace/list` — кто сейчас под трассировкой
- `GET /api/trace/file?id=X` — скачать jsonl
Нулевая нагрузка когда никто не трассируется — все хуки пустые.
Первый срез большого обновления наблюдательского режима. Главное для игрока: теперь можно мгновенно найти нужного жителя среди двухсот и плавно перемещаться между закладками — без мучительного вглядывания в пиксели.
Открывается модальное окно. Пиши имя — `Кира` — и в списке появятся совпадения. Хочешь найти всех из одного рода — пиши `/род Аркун`. Нужен кузнец — `/кузнец`. Работает на русском в любом регистре. Enter переносит камеру к выбранному.
- `Tab` — следующая закладка, `Shift+Tab` — предыдущая. Камера плавно едет к жителю.
- `1`–`9` — прыжок сразу к закладке под номером N.
- Погибших закладок теперь нельзя промахнуться — циклер пропускает их.
Перемещения камеры больше не мгновенные прыжки. Когда ты щёлкаешь по миникарте, по жителю в поиске или переключаешься между закладками — камера плавно «едет» за 0.4 секунды. Пространство остаётся понятным, глазам не больно.
Раньше: щёлкнул «Следить» за Кирой → зацепил мышкой карту в сторону → следить отменилось, Кира потеряна. Теперь drag — это «подсмотреть», отпустил мышку — камера возвращается к Кире.
Если житель, за которым ты следишь, спускается в подземелье — камера автоматически переключается на соответствующий уровень. Раньше следить тихо ломалось при первом спуске в шахту.
- Слой опасности (`D`) — пульсирующие точки где только что кто-то погиб / горит / атакуют.
- Фильтр по профессии (`S`) — показать только кузнецов, остальные притушены.
- Хроника рода — параграф-некролог для закреплённых жителей, когда они погибают (на сервере уже пишется, отображение в UI следующим шагом).
- «Где сейчас интересно?» — кнопка, которая сама найдёт самую драматичную историю на карте.
- Тайка горячих клавиш `?` — вся справка в одном месте.
После добавления трёх новых команд («Благословить», «Посеять страх», «Вдохновить») в панели появился горизонтальный скролл — кнопка «Приоритет» обрезалась. Теперь сетка кнопок адаптивная: переносит ряды по мере необходимости, всё помещается на любой ширине.
Раньше число справа сверху правилось вручную в HTML и за несколько спринтов отстало на 6 версий. Теперь оно подставляется автоматически при сборке — каждый деплой показывает актуальную версию без ручных правок.
Перед каждым деплоем проверяется: если для текущей версии нет раздела в changelog — деплой останавливается с понятной ошибкой. Гарантия, что игроки не пропустят описание релиза.
- Бейдж версии в углу был зашит вручную и устарел на много спринтов — обновлён до актуального.
- В changelog добавлены полные записи для v0.15.3, v0.16.0, v0.16.1, v0.17.0 — за два дня релизов они были пропущены.
Третий спринт после аудита. Главное для игрока: симуляция стала шустрее держать 200 жителей, а склады больше не «застревают» на половине заполнения.
При полной популяции (200 жителей) каждый тик мог растягиваться так, что движения становились рваными. Теперь тик уверенно укладывается в свой бюджет даже при максимальном населении и плотной застройке — поиск пути и распределение задач переписаны на более экономичные структуры данных.
Если члены вашего рода трижды доводят до конца работу, начатую вашим маркером бога (Строить / Добывать / Разведка) — род получает значок «Избранные» и попадает в Зал Славы с этой меткой. Закрывает обещание «ваше вмешательство меняет судьбу рода».
Раньше предел складов замирал на ~225 единиц независимо от размера племени, и любое лишнее зерно тут же уходило в «Склад переполнен». Теперь предел растёт вместе с населением: один дополнительный склад на каждых 20 жителей, до 10 складов на 200 человек.
Когда склад уже забит едой ≥95% — задачи «собрать еду» и «работать на ферме» больше не запускаются. Жители расходятся на стройку, лес, разведку. Раньше можно было видеть 60 человек на одной клетке-ферме, и каждый нёс зерно, которое сразу терялось.
- После загрузки сохранения поверхностные клетки больше не «расходятся» — изменения видны и в обычной отрисовке, и в подземке.
- При смерти жителя его место в доме реально освобождается, и бездомный сразу заселяется. Раньше «призраки» блокировали слоты.
На высоких/узких viewport'ах карточка-якорь к панели «Наблюдения» уезжала за нижний край экрана и обрезалась. Теперь позиция clamped к viewport, плюс `max-height: calc(100vh - 40px)` со скроллом как страховка.
Второй спринт — выполняем обещание лендинга «Наблюдай как бог или управляй. Основывай свою династию». На первом визите всё подсказано, наблюдатель может закреплять любимцев между сессиями, а ваши маркеры бога теперь оставляют след в летописи.
Открываете сайт впервые — видите 3-шаговый оверлей: «Наблюдай», «Управляй», «Основывай». Панели «Роды» и «Режим бога» развёрнуты по умолчанию для новичка. Каждая god-кнопка обзавелась подсказкой с эффектом, требованием клика по карте и откатом. Если нажать кнопку до «Взять управление» — всплывает подсказка «Сначала нажми «Взять управление (60 сек)»».
На карточке любого жителя появилась кнопка-кнопка 📍/📌. Закреплённые жители (до 10) сохраняются в `localStorage` и переживают перезагрузку браузера. Над лентой событий — панель «Наблюдения», по клику камера прыгает к жителю. Когда закреплённый житель умирает, запись остаётся как «<имя> — умер N тиков назад» со ссылкой на биографию.
Раньше: вы поставили маркер «Строить» — в логе ничего, через 50 тиков появилось безымянное «строитель начал дом». Теперь сразу: «Ваш маркер «Строить» принят в (x,y)» (notable-tier), и при завершении: «Маркер бога выполнен: <имя> выполнил «Строить» у (x,y)». Эффекты-стихии (Дождь / Засуха / Молния / Землетрясение) тоже подписываются: «Ваше воздействие «Дождь» вступило в силу».
- Благословить род (откат 120 т) — клик по жителю, +30 настроения всем членам его рода (cap 100).
- Посеять страх (откат 90 т) — клик по карте, призывает 2 волков рядом.
- Вдохнуть знание (мгновенно, 1 раз за эпоху) — +200 знаний.
Появилась панель «Сид мира» с текущим сидом и историей последних 20 уникальных сидов (`localStorage`), с кнопкой «📋 копировать». Админский endpoint `POST /api/new-run` (за `X-Admin-Token`) позволяет перезапустить мир с указанным сидом — `clans_permanent.json` бэкапится автоматически перед сбросом, чтобы Зал Славы пережил пересоздание.
Под полоской задачи теперь видно: текущий job, его приоритет, целевые координаты и состояние «застрял Nт» если житель не может пройти. Дизайнерам баланса больше не нужно лезть в код, чтобы понять, почему житель идёт туда.
Жёлтая аура голода (#ddcc44) больше не сливается с жёлтой пшеницей и фермами — добавлен тёмный 12×12 контур перед цветным кольцом. То же касается ауры болезни.
Никаких новых фич для игрока — релиз про надёжность. Под капотом усилены проверки, чтобы будущие изменения не ломали то, что уже работает.
Раньше тест на сохранение/загрузку проверял только два поля. Теперь — все 11, включая отношения между родами, исследованные подземные клетки, прогресс эпох, Зал Славы и отложенные таймеры. Если что-то отломается при будущих изменениях — заметим до релиза.
Названия технологий, зданий и профессий хранились в трёх копиях и иногда расходились — например, на странице рода значилось одно, а в логе игры другое. Теперь источник один; каждое новое название появляется везде сразу.
Любое изменение, отправленное в репозиторий, теперь автоматически прогоняет полный набор тестов и сборку клиента. Если что-то красное — это видно сразу, ещё до деплоя.
Если члены вашего рода трижды доводят до конца работу, начатую вашим маркером бога (Строить / Добывать / Разведка), род получает значок «Избранные». В летописи это отмечается событием: «Род «<имя>» отмечен богами — трижды боги направили их судьбу». Достижение даётся один раз и сохраняется в Зале Славы — это закрывает обещание «ваше вмешательство меняет судьбу рода».
Раньше племя могло построить максимум 3 склада, даже если в нём жили 200 человек. Ёмкость замирала на ~225 единиц, а съесть столько за раз было нельзя — любая лишняя пшеница и ягоды тут же пропадали в лог «Склад переполнен». Теперь предел складов масштабируется с населением: один дополнительный склад на каждых 20 жителей. На 200 человек племя может построить до 10 складов.
Пока еды «мало по нормативу» (`pop × 5`), job board раньше отправлял в сбор еды почти всё взрослое население — даже если склад физически забит пшеницей под завязку. Итог: 60 человек толкались на одной клетке-ферме, каждый нёс пшеницу, которая сразу терялась. Теперь при заполнении склада едой ≥95% сбор еды и работа на фермах не запускаются — люди расходятся по другим делам (стройка, дерево, исследование).
Если раньше на проде было видно «толпу из 59 душ на одной клетке и полный лог переполнений» — теперь племя разойдётся по карте, склад начнёт расти, а сообщения «Склад переполнен» в ленте событий почти исчезнут.
Первая волна фиксов по итогам полного аудита — закрывает два бага с активным вредом на проде и три «страховки», которые теперь не дадут таким багам повториться.
Взрослые давно умели «мгновенно съесть из общего склада» — ребёнок же шёл искать еду на карту. Если рядом нет свободной ягоды/пшеницы, ребёнок стоял и умирал, даже когда в сараях 500 единиц пшеницы. Теперь и дети, и взрослые ходят через один и тот же механизм: голоден → есть в складе → поел.
Фермы, шахты, караваны, подземная добыча и находки накапливались без ограничений — технология `storage_tech` (+50% ёмкости) была декоративной. Теперь любое поступление ресурса проверяет свободное место; «лишнее» не теряется бесшумно, а попадает в лог как «Склад переполнен: X ед. Y потеряно».
В `deploy.sh` встроен тест-гейт: перед билдом прогоняются все 274 теста. Если хоть один красный — деплой останавливается. Раньше можно было залить сломанное молча.
Смерть — красная, рождение — зелёная, технология — фиолетовая, даже если событие помечено как «заметное» или «эпическое». Раньше tier-классы перекрывали семантические цвета, и смерть отрисовывалась жёлтой.
Каждые ~25 минут `world.json` копируется в `data/backups/auto_
Невидимые улучшения под капотом — сервер стал надёжнее, реже зависает, быстрее обрабатывает большие племена:
- Застрявшие жители спасаются сами. Если житель 50 тиков стоит с активной задачей, но без пути — игра его автоматически разблокирует и job board переназначит. Больше никаких «замороженных» человечков на краю карты.
- Панель активных эффектов — единый источник истины. Раньше список бонусов от технологий дублировался в двух местах и мог расходиться при добавлении новых эффектов. Теперь он строится из реестра `tech-effects-registry`.
- Лента событий не переполняется. Старые события автоматически вытесняются (предел 1000), сервер не теряет память на долгих сессиях.
- Сохранения с версией. Save-файлы теперь маркируются `version: 2`; в будущем это позволит безопасно эволюционировать формат без потери старых миров. Старые сейвы автоматически мигрируют при загрузке.
- Быстрое заселение. Система расселения бездомных использует индекс зданий (O(1) вместо сканирования всей 128×128 карты), сервер держит больше жителей без лагов.
- Проверка целостности модулей. Автотест гарантирует, что внутренние подсистемы (RaiderAI, AnimalSystem, RandomEvents) всегда синхронизированы с текущим состоянием мира после смены эпохи или загрузки.
- Честные случайности в эпидемиях. Биас `sort(() => Math.random() - 0.5)` при выборе заражённых заменён на честный Fisher-Yates shuffle.
- Красная аура вокруг больного жителя
- Жёлтая аура когда житель голоден (>70)
- Маленькое «z» над спящим ночью
- Шрифт ленты событий крупнее (13px вместо 12px)
Рода теперь связаны отношениями — это видно в `/clan/:id`:
- 💍 Межклановые браки — когда житель женится на представителе другого рода, пара становится мостом между родами. Событие в ленте.
- 🤝 Дружбы между родами — когда двое из разных родов становятся друзьями, их рода побратались. Считается только первый раз.
- ⚔️ Совместная оборона — если в одном рейде атакуют жители из двух родов, записывается как общая защита (эпохальное событие).
- 🖤 Общие потери — если в одном рейде погибли члены разных родов, горе записывается как общее.
На `/clan/:id` теперь есть список топ-10 близких родов: цветной квадратик рода, счётчики событий и итоговая «близость». Клик по имени рода ведёт на его страницу — можно листать генеалогию племени.
Жители теперь получают пожизненные титулы за свершения:
- Волкобой ⚔ — убил 3 волков
- Первостроитель 🏛 — построил 10 зданий
- Герой 🏅 — защитил деревню от рейдеров 2 раза
- Скорбящий 🖤 — потерял 3 родственников
- Плодовитый 👶 — имеет 5 детей
- Мудрый 📜 — прожил 500+ и застал 10+ технологий
12 врождённых черт теперь реально меняют поведение:
- Смелый — двойной шанс убить волка, двойной урон рейдерам
- Трусливый — получает на 50% больше урона от волков
- Ленивый — чаще отлынивает от работы при плохом настроении
- Трудолюбивый — почти никогда не отлынивает
- Общительный — вдвое быстрее заводит друзей
- Замкнутый — редко сближается с другими
- Ловкий — +15% к скорости
- Медлительный — -15% к скорости
- Крепкий — голод медленнее на 15%
- Хрупкий — на 50% больше шансов пострадать от болезни
- События теперь в трёх уровнях важности: обычные (серые), примечательные (жёлтые с подсветкой), эпохальные (золотые, жирные)
- Переписаны ключевые события с контекстом: волк не просто «съел», а «унёс жизнь в схватке»; рейдеры получили драматичные описания; смерть — уважительные формулировки
- При основании рода можно выбрать цвет (8 вариантов)
- Все члены рода рендерятся в этом цвете — семью видно на карте одним взглядом
Когда племя переходит в новую эпоху, на весь экран показывается заставка с иконой, названием и описанием новой эры (2.5 секунды). Никаких больше тихих переходов.
Клик на имя рода в панели или Зале Славы открывает страницу `/clan/:id` — полная история рода:
- Цвет и герб (в будущем)
- Основатель, эпоха основания
- Статистика: пережито эпох, поколений, рождений, смертей
- Достижения
- Топ-10 известных членов рода с их титулами и вкладом
📜 У каждого жителя теперь есть личная страница-летопись. Кликни на человека на карте → в боковой панели рядом с именем появится иконка 📜, клик по ней открывает летопись в отдельной странице (как `/changelog` или `/tech-tree`).
Что можно увидеть на странице:
- Увеличенный портрет, возраст, пол, профессия, полоски здоровья/голода/настроения
- Врождённая черта характера (у ~половины жителей): Смелый, Трусливый, Жадный, Щедрый, Общительный, Замкнутый, Трудолюбивый, Ленивый, Крепкий, Хрупкий, Ловкий, Медлительный
- Семья: супруг, родители, дети, друзья — кликабельные имена, можно листать страницы родственников и возвращаться назад
- Хроника жизни: рождение, взросление, первая постройка, первая добыча ресурса, рождения детей, потери родственников, победы над волками, защита деревни от рейдеров, смерть с указанной причиной
- Последние мысли жителя
В этой фазе черты пока не влияют на поведение — они только украшают страницу. В следующих обновлениях черты начнут менять как живут жители, и будет добавлена система приобретаемых титулов (Волкобой, Первостроитель, Герой и другие).
- Быстрые поиски зданий (O(1) вместо O(n²)) — сервер тянет больше жителей
- Кэширование множителя знаний раз за тик (меньше работы при сборе ресурсов)
- Очистка памяти при смерти жителей (предотвращение утечек)
- Рефакторинг движка: выделены модули RaiderAI, AnimalSystem, RandomEvents, BuildingIndex
- Наследие поколений: дети не-кланов тоже наследуют поколение
- Удалён мёртвый код; синхронизированы константы
- Замок пользуется общей константой вместимости
- При открытии технологии теперь показывается её эффект прямо в логе (например, «📜 Открытие: Каменные орудия! +30% скорость сбора ресурсов»)
- Новая панель «Активные эффекты» — список всех работающих бонусов с цифрами
- Пережившие смену эпохи кланы дают бонус знаний в новой эпохе
- Бонус: 25 знаний × (1 + количество пережитых эпох) за каждый клан
- Древние династии становятся ценнее!
- Каменный век быстрее: знания накапливаются вдвое быстрее (2 вместо 1 за действие)
- Мельница доступна раньше (900 знаний вместо 1200)
- Стеклоделие эффективнее: +3 настроения каждые 30 тиков (было +2 за 50)
Раньше 15 технологий были просто «флажками» — теперь каждая реально влияет на игру:
Производство еды:- 🏺 Гончарное дело — еда теперь «сохраняется»: жители голодают на 15% медленнее
- 📅 Календарь — фермы дают на 30% больше пшеницы
- 🌾 Мельница — фермы рядом с мельницей производят в 3 раза больше пшеницы!
- ⛏️ Глубокие шахты — шахты удваивают пассивную добычу руды
Цивилизация:- 📦 Хранение — ёмкость складов увеличивается на 50%
- 💊 Медицина — болезнь длится вдвое меньше и наносит меньше урона
- ⚒️ Кузнечное дело — строители получают двойной опыт
- 🪟 Стеклоделие — жители с домом становятся счастливее (+2 настроения регулярно)
Эпоха открытий:- 🔭 Астрономия — жители видят мир на 50% дальше (дальше находят ресурсы)
- 💰 Банковское дело — караваны приносят вдвое больше товаров
- 💥 Порох — жители наносят рейдерам 40 урона вместо 20
- 🗺️ Навигация — вся карта раскрыта, больше нет неизведанных земель
- 🎨 Изящные искусства — настроение жителей никогда не падает слишком низко
- 👑 Феодализм — племя учится быстрее (+1 к множителю знаний)
- 💡 Просвещение — +500 знаний мгновенно, настроение восстанавливается вдвое быстрее
- Каменные → Бронзовые → Железные орудия ускоряют сбор ресурсов на 30% / 50% / 80%
- Чем выше уровень навыка жителя, тем эффективнее он собирает (+10% за уровень)
- 🛞 Колесо — жители двигаются быстрее, как по дороге
- Больные и пожилые жители теперь заметно медленнее
- Стены замедляют рейдеров в 2 раза
- Рейдеры сначала ломают стены, только потом идут в деревню
- Порох + стены = неприступная крепость
Раньше грустный житель оставался грустным навсегда. Теперь настроение плавно возвращается к нейтральному — больше нет «спирали депрессии».
- Технологии Ренессанса изучаются не так быстро (раньше был слишком резкий скачок в конце)
- Жители стареют медленнее (1 год = 3 тика), а значит, дольше живут и успевают больше
- На работу отправляются жители, которые ближе к месту работы
Ваш мир продолжит работать: карта раскрывается если уже была Навигация, склады расширяются если было Хранение.
- Каждая эра имеет квест: Камень (30 жителей + 5 зданий), Бронза (храм + 80 чел), Железо (3 набега), Средневековье (замок + собор + 150 чел), Ренессанс (Великий Монумент)
- Технологии следующей эры заблокированы до выполнения квеста текущей
- Полоска текущего квеста отображается над картой
- Уведомление при выполнении цели эры
- Только шахтёры спускаются в подземелья (не фермеры и строители)
- Шахтёры не засыпают под землёй — продолжают копать ночью
- Не-шахтёры принудительно поднимаются на поверхность
- Плавная смертность (deathChanceRate 0.001 вместо 0.003)
- Baby boom: при населении < 30 рождаемость ×3, < 60 — ×2
- Стартовые жители с разными возрастами (30-180) — нет синхронного вымирания
- Реалистичный репродуктивный возраст (30-280, ~45% жизни)
- Жители распределяются по разным ресурсным точкам (нет стадного поведения)
- Домашние животные: собаки (охраняют от волков), овцы, куры, коровы (производят еду)
- Анимированный огонь — мерцающие пламя с glow эффектом
- Глазик 👁 на событиях рейдеров/караванов — клик центрирует камеру на них
- Голодные жители едят из хранилища мгновенно (не ходят к далёким кустам)
- Гарантированный баланс полов (2М+2Ж на старте, аварийный странник)
- Пол отображается в topbar: M3 Ж2 Д1
- /history — полная история эпохи с фильтрами (род, рождения, смерти, техи, бои, торговля)
- /tech-tree — визуальное дерево технологий (39 техов, 5 эр, live-статус)
- /hall-of-fame — лидерборд кланов с ачивками
- /changelog — история версий
- Ссылки ↗ из панели в полные страницы (технологии, рейтинг, лента)
- requestAnimationFrame рендер (60fps) — плавный скролл и мгновенный клик
- Информация о животных при клике на тайл
- Версия v0.9 в topbar с ссылкой на changelog
- Быстрый WS reconnect (500ms вместо 2с)
- Исправлен чёрный экран при возврате из страниц
- Bronze/Iron стоимости снижены (70-200 / 250-550)
- Знания: 2 за действие, фермы: 2 еды за цикл
- Ребаланс рейдеров (3-7, каждые 100-250 тиков)
- Полная русская локализация всех событий
- Зал Славы кланов сохраняется между обновлениями мира
- Ускорена загрузка игры
- Исправлены зависания при большом населении
- 39 технологий в 5 эрах: Камень → Бронза → Железо → Средневековье → Ренессанс
- Эпохи длятся 1.5-2 часа (стоимости техов ×2.5)
- Мягкий лимит населения — рождения замедляются, а не блокируются
- Великий Монумент, Замок, Собор, Мельница, Стены — неразрушимы рейдерами
- Гарантированный баланс полов (2М+2Ж на старте, аварийный странник)
- Домашние животные: собаки (охрана), овцы, куры, коровы (еда)
- Караваны (торговля) и рейдеры (набеги) с краёв карты
- 5 z-уровней (поверхность + 4 подземных)
- 8 минералов: уголь, серебро, золото, рубин, сапфир, изумруд, алмаз, мифрил
- Шахтёры физически спускаются и копают стены (DF-стиль)
- Fog of war — подземелье раскрывается по мере копки
- Основание рода с фамилией (до 5 активных)
- Наследование фамилии через поколения
- 25 ачивок в 6 категориях (цветные бейджи)
- Зал Славы вымерших родов (постоянный, переживает сброс мира)
- Дубликаты имён: Морозовы → Морозовы II, III (римские цифры)
- Слежение за любым родом (подсветка на карте + авто-камера)
- Полная русская локализация
- Компактная панель бога (свёрнута по умолчанию)
- Все секции сворачиваемые
- Пол в topbar: M3 Ж2 Д1
- Тултипы на все элементы topbar
- Подсветка выбранного тайла (пульсирующая рамка)
- Мобильная адаптация (touch-управление, responsive layout)
- OG-метатеги для шаринга в соцсетях
- Система заданий (Job Board) вместо простого AI
- Демография с саморегуляцией через еду
- Фермы (пшеница) и шахты (руда) с пассивным производством
- Терраформинг: мосты, дороги, каналы, каменоломни, вырубка леса
- Случайные события: волки, странники, эпидемии, находки, пожары
- Семья: родители, дети, супруги, друзья
- Мысли и настроение (влияют на работу)
- Дикие животные: волки, кролики, рыба
- Нарративный лог событий с историями
- Индивидуальные цвета жителей, камера-следование
- 67 параметров баланса в runtime config (API)
- Структурированное логирование (JSONL)
- Сжатие тайлов в world.json (12MB → 4MB)
- Lazy-load подземных уровней (snapshot 2MB вместо 12MB)
- Русские имена из Википедии (84 мужских + 64 женских)
- Пиксельная карта 128×128 с 4 биомами
- 20 технологий в 3 эрах (Камень → Бронза → Железо)
- 5 стартовых жителей, рост до 50
- 8 типов зданий
- Система бога: маркеры, стихии, управление по очереди
- Эпохи с руинами прошлых цивилизаций
- WebSocket реалтайм, Canvas 2D рендер
- Деплой на VPS (Node.js + nginx + systemd)