Highrise Heist
Как играть

1. Кликайте на стойки чтобы ставить блоки (до 3 на 2 стойки)

2. Перенос — удержите стойку (long press) → тапните цель

3. Достройка — высотка с 11 блоками достроена. Цвет верхней группы = владелец

Золотая стойка решает при ничьей 5:5

Достройте 6+ высоток из 10 чтобы победить

Подробные правила — вкладка «Правила»
Моды:

Онлайн

Играй с другом по ссылке — без регистрации

Или введите код друга:

QR — открой с телефона

Отсканируй чтобы играть на телефоне

💬 Глобальный чат
Подключение…
Войдите чтобы написать

Живые партии

Ошибка загрузки — нажмите «Обновить»

Главная/Changelog
Открытая разработка · еженедельные обновления

Changelog

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

47
релизов
298
изменений
v5.10.0
2 дн. назад
РАСПРЕДЕЛЕНИЕ
Безопасность23
Новое121
Улучшение83
Исправлено43
Скорость9
Рефакторинг4
47 релизов
Свежий
01
v5.10.02 дн. назадСсылка

Меню перед игрой, фоновая музыка и английский по умолчанию

НовоеЭкран перед партией: при заходе во вкладку «Играть» теперь не сразу игровое поле, а меню — фон сцены, фирменный логотип и кнопки «Новая игра» / «Настройки» / «Стиль города». Можно спокойно рассмотреть фон, послушать музыку и выбрать стиль, и только потом начать партию. Онлайн, ежедневный челлендж и турнир запускаются сразу.
НовоеФоновая музыка: у каждой сцены — свой динамичный трек. Играет в меню перед партией и при выборе темы (меняешь тему — меняются и фон, и музыка). Во время партии музыка плавно затихает, чтобы не перебивать звуки эффектов — например, приятное закрытие высотки.
НовоеЗвуки в игре: процедурные эффекты на установку блока, перенос, закрытие стойки, победу и поражение. На iOS звук слышен даже при включённом «беззвучном» режиме телефона.
НовоеВ приложении по умолчанию теперь английский язык. Ваш выбор языка сохраняется, если переключаете вручную.
ИсправленоУстранены русские строки, протекавшие в английском интерфейсе: счёт (Player), окно результата (Moves, Rematch, Switch side, Play again), онлайн, реплеи, настройки таймера, экран ошибки и ещё десятки мест — добавлено 175 недостающих переводов и закрыты «зашитые» строки в 19 экранах.
УлучшениеВместо эмодзи по всему интерфейсу — аккуратные векторные SVG-иконки в едином стиле. Кнопки и разделы выглядят солиднее, интерфейс менее перегружен.
УлучшениеПолная адаптация под все ориентации на iPhone и iPad (портрет и ландшафт) — по требованиям App Store к универсальным приложениям.
УлучшениеИконка приложения — маскот-енот вместо текстового логотипа.
02
v5.9.243 нед. назадСсылка

Безопасность наград, стабильность iOS и адаптация под экраны

БезопасностьЗащита наград от накрутки: сложность AI фиксируется подписанным токеном до начала партии, rewarded-реклама проверяется на сервере (Google SSV), прогресс ежедневных миссий начисляется только сервером из проверенных действий. Подделка сложности и фарм наград закрыты.
БезопасностьОбновлён сетевой пакет ws до 8.21.0 (закрыты DoS и утечка памяти), полный аудит зависимостей — 0 известных уязвимостей. Добавлены SECURITY.md, CONTRIBUTING.md и документ аудита.
ИсправленоiOS: устранён краш приложения при запуске — инициализация рекламы вызывала запрос App Tracking Transparency без нужного ключа в Info.plist. Реклама на iOS включается только при настроенном AdMob.
ИсправленоAndroid: восстановлена сборка release-версии — потерянный блок release {} в build.gradle ломал минификацию R8. Подписанный AAB и APK снова собираются.
ИсправленоОкно результата партии на телефоне в горизонтальной ориентации больше не обрезает кнопки «Ещё игра»/«Реванш» — добавлены прокрутка и отступы под вырез экрана и home indicator.
ИсправленоВсплывающие уведомления (серия дней, ачивки, cookie-баннер) больше не заходят под чёлку/Dynamic Island и нижний индикатор — учтены безопасные зоны экрана.
УлучшениеДоступность: 9 модальных окон (шаринг, обучение, горячие клавиши, оценка и др.) получили корректные роли для скринридеров — role="dialog", aria-modal и подписи. Иконочные кнопки подписаны, декоративные иконки скрыты от озвучки.
УлучшениеАдаптация под разные экраны: тач-цели увеличены до 44px (по гайдлайнам Apple/Google), длинные имена в счёте аккуратно обрезаются, чипы доски на мобиле приведены к форме «кирпич», модалки не обрезаются в landscape.
УлучшениеКачество и стабильность сборки: блокирующий порог покрытия тестами + блокирующий typecheck в CI, +28 новых unit-тестов (806 проходящих). Воспроизводимая установка зависимостей (npm ci).
03
v5.9.232 мес. назадСсылка

Customization Rework Часть 2 + Snappy Block + Style Twin + Premium Blocks

НовоеSnappy Block: если у вас с соперником одинаковые блоки в онлайне, маскот через 1.5 секунды после старта пошутит "Меняй блоки!". 5 RU/EN фраз для skin_collision события.
УлучшениеdetectSkinCollision сравнивает blocks (новый ключ) и chipStyle (legacy) — игнорирует stands и background. Backward compat между старым и новым клиентом.
УлучшениеТриггер в обеих точках старта партии: findMatch (рейтинговый matchmaking) и join (приватная комната).
НовоеАчивка "Близнецы по стилю" / "Style Twin" — за первый онлайн матч с одинаковыми блоками. Rare, цвет diamond. Прогресс отображается в профиле.
УлучшениеКолонка users.style_twin_count добавлена миграцией 15. Инкремент происходит для обоих игроков при detectSkinCollision (если игроки залогинены).
УлучшениеstyleTwinCount теперь возвращается в формате profile API через formatUser/formatPublicUser.
НовоеPremium Blocks legendary tier: 4 новых скина блоков — Gold (800 кирпичей), Diamond (1200), Holographic (1500), Galaxy (2000). Долгосрочные grind-таргеты.
УлучшениеCSS-градиенты на 5 стопов с inset highlight + outer glow — premium-ощущение от материала. Каталог на сервере обновлён через INSERT OR IGNORE, миграция БД не требуется.
УлучшениеМиграция БД 14: рефанд кирпичей всем кто покупал платные стенды (после удаления вкладки Stands из UI). Транзакции записаны в brick_transactions с reason="refund_skin:stands_*".
НовоеUnit тесты для detectSkinCollision: 20+ кейсов (positive, negative, edge cases с null/undefined/empty, реалистичные сценарии classic-vs-classic). Защита от регрессии Snappy Block.
УлучшениеdetectSkinCollision вынесен в server/skin-helpers.js — единый источник истины, без дубля внутри ws.js (DRY).
УлучшениеСписок "Что нового" обновлён до v5.9.23 — описывает все 6 ключевых изменений из этой и предыдущей сессии.
04
v5.9.222 мес. назадСсылка

Customization Rework Часть 1 + Edge Swipe + Victory City

УлучшениеТемы и Фоны объединены в одну сущность: выбираешь тему — фон применяется автоматически. Каждая тема знает свой linkedBgId. В превью теперь видно тему вместе с фоном.
НовоеТемы расширены: "Парк днём" (Light + дневной фон) и "Город ночью" (Dark + ночной) — обе бесплатные. Остальные за кирпичи.
УлучшениеВкладка Backgrounds удалена из SkinShop — теперь это часть Themes.
УлучшениеВкладка Stands удалена из SkinShop — нет игровой логики у стендов. Купленные ранее стенды продолжают применяться через legacy settings.standStyle.
УлучшениеШапка игры переехала: режим (Online/AI/2P) — по центру, кнопки Settings и City Style — справа от New Game.
НовоеGameModeBar — отдельный компонент для переключения режима игры с понятными иконками.
НовоеGameActionsTop — Settings (⚙) и City Style (🎨) в одной строке справа от New Game.
УлучшениеГород Побед: цвет земли меняется в зависимости от времени суток (зелёная утром, оранжевая на закате, тёмно-синяя ночью).
НовоеСнаппи появляется в Городе Побед — комментит достижения.
УлучшениеSnappy variant 'anchored' — маскот закреплён в углу при показе на Victory City, не закрывает башни.
НовоеСвайп от левого края экрана возвращает в предыдущий раздел (Game → Profile → Online → Lobby и т.д.). Работает и в браузере, и в нативном приложении.
ИсправленоApp.jsx: typo removEventListener → removeEventListener (вызывало висящий слушатель при unmount).
ИсправленоProfileAnalytics: метки часов/минут и побед/поражений локализованы на русском (ч/м, П/П вместо h/m, W/L).
УлучшениеMobileGameBar превращён в null-стаб (deadcode cleanup) — функционал давно перенесён в GameActionsTop/Bottom.
05
v5.9.212 мес. назадСсылка

Android release pipeline + security hardening + observability

НовоеAndroid: release signing и AAB-workflow для Play Store. Keystore через GitHub Secrets, сборка подписанного AAB по кнопке в Actions.
НовоеAndroid: авто-синхронизация versionCode/versionName из package.json в build.gradle. Больше не нужно править версии в двух местах.
НовоеAndroid: если в Firebase Console настроен google-services.json, FCM push включается автоматически из секрета.
УлучшениеAndroid: ProGuard-правила для Capacitor, WebView JS-бриджа, Cordova плагинов и Google Ads (минификация пока отключена — включим после тестирования с logcat).
УлучшениеAndroid: AAB bundle splits по density/language/abi — меньший размер у пользователя при установке из Play.
УлучшениеAndroid: NN-веса (.bin) не сжимаются в APK — WebView мапит их напрямую, а не распаковывает в память.
БезопасностьМинимальная длина пароля поднята с 6 до 8 символов (NIST 800-63B). Касается только новых регистраций — старые аккаунты не затронуты.
БезопасностьAdMob ID-шники вынесены в env-переменные вместо хардкода в коде. В production подтягиваются из GH Secrets, в dev работают Google test IDs.
НовоеSentry-интеграция (опциональная): stack traces с source maps, breadcrumbs, replay при ошибке, release tracking. Активируется через VITE_SENTRY_DSN, без DSN продолжает работать собственный /api/error-report.
НовоеSnappy analytics: каждый показ маскота-комментатора трекается с event/pose/lang — в админке видно какие фразы срабатывают чаще, не спамим ли.
ИсправленоCI: исправлен битый yaml-синтаксис в deploy.yml из-за которого весь deploy-workflow не парсился GitHub Actions — сайт не обновлялся при push. secrets.X вынесены в job-level env.
ИсправленоCI: sync-android-version идемпотентен — не падает если версии уже синхронизированы.
ИсправленоCI: release-android.yml — тот же фикс secrets.X в if-условиях через env.HAS_FCM/HAS_ADMOB.
06
v5.9.202 мес. назадСсылка

Асфальт заметно светлее + emissive подсветка

УлучшениеАсфальт ещё светлее: #30303a → #4a4a55. Плюс добавлен emissive 0x0a0a12 @0.6 — асфальт виден даже вдали от фонарей.
УлучшениеБлоки кварталов светлее #1a1a22 → #28282f чтобы не сливались с новым более светлым асфальтом.
УлучшениеТротуары ещё светлее #7a7570 → #9a9590. Контраст тротуар (светло-серый) / асфальт (серый) / блоки (тёмно-серые) теперь 3 чётко различимых тона.
УлучшениеАсфальт: roughness 0.9 → 0.75, metalness 0.1 → 0.15 — чуть больше отражает свет, получает более яркие блики от фонарей.
07
v5.9.192 мес. назадСсылка

Усиленные дороги: контраст и видимость

УлучшениеАсфальт светлее: #1a1a22 → #30303a. Дороги чётко выделяются на фоне чёрной земли, а не сливаются.
УлучшениеТротуары светлее (#4a4540 → #7a7570) + выше (0.08 → 0.12м). Бордюры видны чётко как полосы вдоль каждой улицы.
УлучшениеЖёлтая разметка ярче (#ffcc40 → #ffdd50) и толще (0.05 → 0.08). Белые пунктиры чисто белые (#e0e0e0 → #ffffff) и толще (0.04 → 0.06).
УлучшениеМашины крупнее (front 0.5 → 0.9, back 0.4 → 0.75) и ярче (красный #ff2040 → #ff3050 opacity 0.9 → 1.0). Огни фар читаются издалека.
УлучшениеКамера стоит ниже (dist * 0.55 → 0.42) и дальше (0.7 → 0.75). Дороги занимают больше кадра, здания не «выстреливают» сверху.
УлучшениеЗемля и фон чёрнее (#05050a → #02020a). Усиление контраста с осветлёнными дорогами.
08
v5.9.182 мес. назадСсылка

Фикс крыш и разметки на перекрёстках

ИсправленоУбраны «кирпичики» на крышах промежуточных этажей. Раньше у каждого BoxGeometry этажа top/bottom грани использовали цветной capMat, и на изометрии верх промежуточных этажей был виден как цветной кирпичик. Теперь цветная крышка рисуется только у самого верхнего этажа здания, остальные этажи имеют тёмный internalCapMat на top/bottom.
ИсправленоРазметка больше не идёт сквозь перекрёстки. Жёлтая двойная и белые пунктиры теперь сегментированы — отдельные куски длиной segmentLength = SPACING − (ROAD_WIDTH + 2·SIDEWALK_WIDTH) между соседними перекрёстками. На самих перекрёстках разметка отсутствует, как на настоящих улицах.
УлучшениеБелые пунктиры реже (dashLen 0.5→0.6, gap 0.4→0.8) — меньше «забор»-эффекта. Жёлтая двойная чуть шире (offset 0.06→0.07).
09
v5.9.172 мес. назадСсылка

NY-style: реальные дороги, тротуары, светофоры

НовоеПолный редизайн уличной инфраструктуры под реалистичный ночной Нью-Йорк. Дороги теперь выглядят как настоящие улицы, а не как плиты или cyber-линии.
НовоеДороги: тёмно-серый асфальт #1a1a22 без текстур (никакого mipmap aliasing). Разметка отдельными mesh-ами поверх: жёлтая двойная #ffcc40 по центру + белые пунктиры по краям полос (dash 0.5 / gap 0.4). Всё как в настоящем Нью-Йорке.
НовоеТротуары — приподнятые BoxGeometry бордюры высотой 0.08м с обеих сторон каждой дороги. Бежевый #4a4540 (тёплый бетон). Реальные геометрические бордюры — видны отдельной высотой, не текстурой.
НовоеСветофоры на каждом внутреннем перекрёстке (4 штуки на 5×4 сетке). Столб + коробочка + 3 сферы (разные фазы: green 3с → yellow 1с → red 3с = 7с цикл). Каждый работает независимо со своей seeded-фазой.
НовоеБлоки-кварталы: каждое здание стоит на своём «квартальном» plane между дорогами. Чёткая геометрическая структура как в реальных городах.
УлучшениеНеоны уменьшены: 55% → 30% зданий, вертикальные вывески убраны (это был азиатский стиль, а не NY). Цветная подсветка стен всё ещё работает через PointLight.
ИсправленоУбраны: cyber-линии (не в стиле), дым над золотыми зданиями (отвлекал), beacons на крышах (лишнее), плита-площадь (заменена структурой из блоков+дорог+тротуаров).
10
v5.9.162 мес. назадСсылка

Cyber-улицы: тонкие неоновые линии

ИсправленоВ v5.9.15 убрали 8 road-stripe прямоугольников чтобы избавиться от «плиточного» эффекта, но дороги стали вообще не видны. Город казался стоящим на пустой чёрной плите.
НовоеДобавлены cyber-улицы — тонкие cyan-линии (#00d4ff) шириной 0.3 м с AdditiveBlending. Положены между рядами зданий и вдоль колонок — выглядят как hi-tech дорожки в стиле Tron/Cyberpunk.
УлучшениеШирина линии всего 0.3 единицы вместо 2.4 у старых stripe-в — слишком тонкие чтобы создавать «плиточный» эффект или mipmap aliasing.
УлучшениеЛинии медленно пульсируют (opacity 0.4 ± 0.1) для «живого» эффекта. Совместимы с PointLight-системой — фонари и неоны освещают плиту как раньше.
11
v5.9.152 мес. назадСсылка

Дороги → одна площадь-плита

ИсправленоРаньше дороги рендерились как 8 отдельных stripe-прямоугольников (rows+1 горизонтальных + cols+1 вертикальных), пересекающихся в кресты. Это и создавало визуальный «плиточный бордюр» вокруг города. Теперь это одна большая plane-плита под всем городом (как реальная городская площадь или парковка).
УлучшениеПлита из MeshStandardMaterial (раньше был MeshBasicMaterial) — реальный свет от фонарей/неонов теперь падает на асфальт круглыми бликами. Интенсивность фонарей 2.5 → 3.0 чтобы блики были чёткими.
УлучшениеДальняя земля вокруг плиты стала ещё темнее (#070710 → #040408) и матовой — чтобы визуально растворяться в fog и не отвлекать от города.
УлучшениеМашины сохранились — ездят по виртуальным полосам между рядами зданий (без визуальных дорожных планов). Движущиеся жёлтые/красные точки выглядят как фары на общей парковочной площади.
12
v5.9.142 мес. назадСсылка

Wow-пакет 3: реальный свет + трафик

ИсправленоУдалены puddle-ы под фонарями. Они давали светлые «плиты» на асфальте в виде бордюра вокруг города — это и воспринималось как «плохие дороги». Теперь освещение асфальта даёт реальный PointLight, не текстура.
НовоеУ каждого уличного фонаря теперь есть реальный THREE.PointLight тёпло-оранжевого цвета (intensity 2.5, range 14м). Свет реально падает на стены зданий, землю, другие объекты — это создает настоящую ночную атмосферу.
НовоеФонари увеличены: высота 3м → 4м, лампочка 0.16 → 0.28, хало 1.8 → 3.5. Предыдущей версии были микроскопичными на изометрическом ракурсе.
НовоеНеоновые вывески увеличены: 1.7×0.5 → 2.4×0.8 в горизонтальном варианте. Добавлены вертикальные вывески 0.7×2.5 (как в Токио/Гонконге). Частота неонов 40% → 55%.
НовоеК каждому неону прикреплён PointLight соответствующего цвета (intensity 1.8, range 5м). Розовый неон подсвечивает стену розовым, голубой — голубым, и т.д. Это главный вау-эффект — здания живут, цвета смешиваются.
НовоеОгни машин на улицах! 10 машин движутся по дорогам — каждая это пара sprite-ов (жёлтые фары впереди + красные стоп-огни сзади) с AdditiveBlending. Разная скорость, разные направления, смена полос (lane offset). При выходе за периметр — возвращаются с другой стороны.
УлучшениеОсвещение сцены пересобрано под реальную ночь: sun 0.9 → 0.55 с холодным цветом луны #aab0d8, ambient 0.5 → 0.35 с синеватым #3040a0, exposure 1.2 → 1.35. Низкий ambient пропускает все цветные акценты ярче.
УлучшениеЗемля сделана почти чёрной (#0a0a16 → #070710). Fog сокращён (40→140 → 28→110) — удалённые здания мягко растворяются в тумане. 500 звёзд вместо 400.
13
v5.9.132 мес. назадСсылка

Wow-пакет 2: фонари и неоны

УлучшениеДорога переписана как спокойный тёмный фон: асфальт #0e0e16, лёгкая зернистость, одна едва видная центральная полоса. Без толстых бордюров, без двойной разметки. Дорога больше не доминирует, теперь в фокусе — фонари и здания.
ИсправленоЗебры-переходы полностью удалены. На изометрическом ракурсе и таком масштабе они выглядели как яркие плиты, разрушая wow-эффект.
НовоеНовое: 6 уличных фонарей. Каждый — это тонкий cylinder-столб высотой 3м, sphere-лампочка на верхушке, sprite тёплого halo (128×128 с lens-flare лучами, additive blending) и большое световое пятно на асфальте (plane 4×4 с radial gradient оранжевым цветом). Это и даёт реальный ночной вайб.
НовоеНеоновые вывески на ~40% зданий (кроме золотых). 6 цветов (розовый, голубой, зелёный, оранжевый, фиолетовый, желтый), детерминированно размещены на случайной грани стены на высоте 35-70% здания. AdditiveBlending + синусоидальное мерцание + случайные glitch-моменты когда яркость падает.
УлучшениеЗемля стала ещё темнее (#0a0a16 вместо #16162a) для лучшего контраста со светящимися зданиями и световыми пятнами. Сцена fog тоже темнее #05050c.
УлучшениеЗвёзд на небе стало больше: 300 → 400. Sun intensity и ambient снижены чтобы emissive-элементы (фонари, окна, неоны) выражались сильнее.
14
v5.9.122 мес. назадСсылка

Дороги снова тёмные

ИсправленоПосле v5.9.11 асфальт на скринах выглядел как светло-серые бетонные плиты. Причина — слишком много тонких деталей в текстуре (плитка тротуара 0.5px, трещины 0.8px, edge lines 1px): на дистанции mipmap их усреднял в светлый tone вместе с белой разметкой и светлыми бордюрами. Итог: дороги казались серыми, а не тёмно-синим асфальтом.
УлучшениеРазмер canvas дороги 256×256 → 512×512. Mipmap начинается с детальнее базы — меньше размывания на расстоянии.
УлучшениеАсфальт стал плоско-тёмным #12121c (был vertical gradient с краями 0x0c→0x1c). Раньше эти краевые тёмные полосы превращались в светлые полосы при downsampling (contrast flip).
УлучшениеБордюры-тротуары расширены 5px → 16px. Толщина достаточная чтобы не исчезать при mipmap, цвет #252532 (тёмно-серый, не бетон). Добавлена чёрная разделительная полоса #08080f между бордюром и асфальтом — чёткий contour.
УлучшениеРазметка стала жирнее: толщина 2 → 4px, длина dash 24 → 48px, gap 28 → 40px. Большие участки = каждый dash остаётся чёрно-белым а не смешивается в серое.
УлучшениеAnisotropy 8 → 4. Убраны: плитка тротуара, трещины, edge lines, вертикальный градиент асфальта. Зернистость сделана крупнее (1.2–3.7px вместо 0.3–1.7px) и вынесена из зоны бордюров.
15
v5.9.112 мес. назадСсылка

Wow-апгрейд визуала Landing 3D

УлучшениеФасады зданий на главной странице переведены на canvas-текстуры с окнами, нарисованными прямо на стенах. Раньше были плоские кубы с маленькими спрайт-окнами поверх через AdditiveBlending (InstancedMesh). Теперь каждое окно — это часть map+emissiveMap материала: сетка 3×3 на этаж, рандомные состояния off (15%) / dim (25%) / bright (60%), рамки, mullions, градиентные highlights, reflection на тёмном стекле. Сцена сразу выглядит как реальные ночные небоскрёбы, а не крашеные коробки.
НовоеДобавлена луна в углу неба: sprite 10×10 с halo, 4 кратерами и фазей (terminator). AdditiveBlending — луна мягко светится сквозь fog.
НовоеДобавлены зебры-переходы на 4 перекрёстках дорог. Текстура с transparent фоном, полосы 12px с промежутком 8px.
УлучшениеНовые shared-текстуры в victoryCityTextures.js: makeFacadeTexture (фасады), makeCrosswalkTexture (зебры), makeMoonTexture (луна). Доступны для использования в VictoryCity.jsx в следующих итерациях.
УлучшениеДорога стала детальнее: 1400 зёрен вместо 900, добавлены 3 мелкие трещины, плитка тротуара (швы каждые 20px), anisotropy 4 → 8.
УлучшениеЗвезда над золотыми высотками теперь имеет 4 sparkle-луча (горизонтальный + вертикальный + две диагонали), эффект полноценного сияния.
16
v5.9.102 мес. назадСсылка

Landing: дороги в превью-городе тоже починены

ИсправленоВ 3D-превью Города побед на главной странице (highriseheist.com) дороги также были жёлто-золотыми — у компонента LandingCity3D была собственная копия текстур с ярко-жёлтой разметкой #ffe14a и emissive-подсветкой. Теперь компонент использует те же shared-текстуры из victoryCityTextures.js, что и основной город в профиле.
РефакторингУдалены 3 локальные дубликата текстурных функций (makeRoadTexture / makeStarTexture / makeSoftDotTexture) из LandingCity3D.jsx. Импортируются из shared victoryCityTextures.js. Минус 82 строки (701 → 618).
ИсправленоМатериал дорог — MeshStandardMaterial с жёлтым emissive 0xffe14a заменён на MeshBasicMaterial. Текстура повернута на 90° через rotation+center, разметка теперь идёт вдоль дороги а не поперёк (в этом компоненте plane ориентирован длиной по Y/V, в отличие от VictoryCity).
17
v5.9.92 мес. назадСсылка

VictoryCity: дороги не желтеют на закате

ИсправленоДороги больше не становятся желто-золотыми под тёплым directional light. Материал переведён MeshStandardMaterial → MeshBasicMaterial — текстура рендерится «как есть», без перекраски от сун-лайта 0xfff0c8 + ACES tone mapping. Тени от зданий всё равно видны на ground plane.
УлучшениеРазметка смягчена: цвет #b8b8c8 → #8a8a96, длина dash 32px → 22px, gap 22 → 30, толщина 2 → 1.5 px. Edge lines у бордюров стали тусклее. Разметка не доминирует при изометрической перспективе.
18
v5.9.82 мес. назадСсылка

Victory City: аккуратные дороги и звёзды

УлучшениеПолностью переделана текстура дорог в 3D-городе побед. Была узкая полоса 16×256 с почти белыми штрихами — на ночной сцене превращалась в «матрас»: светло-сиреневые полотна с жёлтыми пятнами-пунктирами, которые казались ярче самих зданий. Теперь тайл 256×256 = 6 метров дороги: тёмный асфальт с лёгкой зернистостью, тонкие серые бордюры-тротуары по краям, двойная белая пунктирная разметка посередине, боковые lane edge lines. Дороги смотрят как дороги, а не как источник света.
УлучшениеПеределана текстура звёзды-короны над золотыми высотками. Раньше это была крупная жёлтая клякса с оранжевой обводкой и мощным glow — доминировала в кадре, «съедала» силуэт здания. Теперь — компактная белая 5-конечная звёздочка на мягком тёплом ореоле, с центральным highlight. Акцент остался, но больше не спорит со шпилями.
ИсправленоМатериал дороги: color 0x222230 → 0xffffff. Раньше текстура умножалась на тёмно-серый и теряла контраст разметки. Теперь цвета текстуры отображаются корректно.
19
v5.9.72 мес. назадСсылка

Чистка линтера: 0 errors, 0 unused-vars

РефакторингУбраны все 17 предупреждений no-unused-vars по проекту (9 файлов: Game, GameHighlightReel, GoldenRushLeaderboard, Online, Changelog, SeasonPass, Profile, server/server.js, server/routes/games.js). Мёртвые функции и переменные удалены, неиспользуемые деструктуризации заменены на [ , setter], dormant-функция startDaily переименована в _startDaily.
РефакторингИз Profile.jsx убран избыточный комментарий // eslint-disable-line — правило больше не срабатывает после чистки зависимостей useEffect.
УлучшениеLint gate в CI теперь проходит с 0 errors и 0 no-unused-vars warnings. Остаются только 55 warnings из react-hooks/react-refresh — они требуют отдельного архитектурного рефакторинга и не блокируют сборку.
20
v5.9.62 мес. назадСсылка

Golden Rush: админка, туториал, rate limit

НовоеВ админку /admin добавлен таб Golden Rush: live-комнаты с индикаторами online, очередь матчмейкинга, топ-10 игроков, последние 20 матчей и playtest-сводка (resign-rate, draws, center captures, avg turns, avg duration). Автообновление 10с.
Новое4-шаговый туториал-overlay при первом визите /goldenrush-online: крест из 9 стоек, order-gate (сначала 1, потом 2), FIFO-очередь на центр, очки и награды. Сохраняется флаг stolbiki_gr_tutorial_seen, из лобби можно вызвать повторно кнопкой «Как играть».
БезопасностьRate limit на gr.findMatch: не чаще чем раз в 2с на пользователя. Защита от спама очереди при баге клиента или намеренной атаке. На клиенте показывается сообщение «слишком часто, подожди секунду».
УлучшениеfindMatchLastAt чистится в cleanupGoldenRush каждые 2 минуты — не даёт Map разрастаться.
21
v5.9.52 мес. назадСсылка

Golden Rush: лидерборд + награды в UI

НовоеНовая вкладка «GR Top» (/goldenrush-top) — топы по победам / играм / захватам центра, моя статистика (игры, победы, win-rate, центры) и фид последних матчей
НовоеGameover экран в GR Online теперь показывает начисление бриксов с breakdown-ом: участие (+2), победа (+10), взятие центра (+3)
НовоеИспользует уже внедрённые серверные endpoints: GET /api/gr/leaderboard, /api/gr/my, /api/gr/recent
ИсправленоAppRoutes.jsx: MoreTabPage получал undefined вместо onShowSkinShop (опечатка onSkinShop) — native-вкладка «Ещё» не могла открывать магазин скинов
УлучшениеuseGoldenRushWS теперь отдаёт resignedBy и myReward в payloadе gameover — компоненты могут показать сдавшегося и разбивку награды
22
v5.9.42 мес. назадСсылка

Golden Rush Online: фиксы edge cases + мониторинг

ИсправленоGR Online: после gameover клиент больше не пытается reconnect’иться в удалённую комнату (раньше спустя 5+ минут показывал ложный error-баннер)
ИсправленоGR Online: auto-reconnect теперь строго в статусах playing/queued. gr.error: no_room на мертвой комнате игнорируется
Новое20+ server-side unit-тестов на validateAction: structural checks, transfer cap, placement (too_many_stands, bad_idx/count, over_cap, over_max, closed stand), combined transfer+placement с post-transfer state check
НовоеАдмин-endpoint GET /api/admin/golden-rush: live-комнаты с турн-счётчиками, online-статусами игроков, lastActivity; очередь матчмейкинга с waitTime
НовоеGR блок в /api/health и /api/stats: {rooms, queue, activeGames} для мониторинга нагрузки в реал-тайм
Улучшение/api/admin/overview и /api/admin/server теперь показывают GR stats наряду с 2p-метриками
23
v5.9.32 мес. назадСсылка

Golden Rush Online: 2v2 и 4-FFA через интернет

НовоеGolden Rush Online: онлайн-матчи для 4 игроков с матчмейкингом. Вкладка /goldenrush-online. Режимы 2v2 и 4-FFA, команды в 2v2 — по диагонали (слоты 0+2 vs 1+3)
НовоеServer-authority логика: сервер валидирует каждый ход через validateAction (transfer cap, placement max stands/count/order-gate, current player, game over) — читеру нельзя подделать движком
НовоеМатчмейкинг ждёт 4 игроков одного режима, рандомизирует рассадку. В очереди видна позиция и кнопка отмены
НовоеКомандный чат в 2v2: сообщения видны только напарнику. Реакции (👍 🔥 💪 🎉) видны всем
НовоеResign-кнопка: в FFA отключает игрока с победой к тому у кого больше очков, в 2v2 — победа команды оппонентов
НовоеAuto-reconnect: при обрыве связи клиент автоматически переподключается через 2с и восстанавливает state. Сервер держит комнату 2 минуты после полного disconnect
НовоеEphemeral-реакции: эмодзи плывут внизу поля, исчезают через 2.5с. Командный чат с историей 20 сообщений
Улучшение2-игровая инфраструктура не затронута — grRooms и grMatchQueue держатся отдельно от rooms/matchQueue. Старые ranked матчи и AlphaZero AI v7 работают как были
УлучшениеWS-соединение шарится между всеми режимами (диспетч по type.startsWith('gr.')). Нет отдельного подключения под online Golden Rush
УлучшениеПункт меню GR Online с бейджом NEW в заголовке сайта
24
v5.9.22 мес. назадСсылка

Golden Rush — hot-seat играемая версия

НовоеGolden Rush играбелен! Hot-seat на одном устройстве: 4 игрока ходят по очереди, режим 4-FFA или 2v2. Вкладка /goldenrush
НовоеНовый движок goldenRushEngine.js с генерик N-player доской, FIFO-очередью на центр, валидацией transfer/placement с cap-правилами
Новое20+ unit-тестов на движок: topology, effective cap, order=1/2 closure gates, eligibleForCenter FIFO, scoring (+1 block, +5/+8 order, +15 center, 2v2 командный бонус), game over, turn rotation
НовоеSVG-UI креста: метки slot-владельца, order 1/2 номера, chips снизу вверх, флажки на закрытых, золотое сияние вокруг центра когда есть eligible игроки
НовоеLobby с выбором режима и редактируемыми именами игроков. Scoreboard с подсветкой текущего игрока и eligible-queue позицией для центра
НовоеПанель действий: counter-режим для placement (тап по стойке — 1→2→3→0 блока), двухфазный transfer (pick-src → pick-dst), reset и commit-кнопки
УлучшениеGameOver экран: имя победителя или команды в FFA/2v2, итоговые счета, кнопка новой игры
УлучшениеHot-seat код полностью декуплирован: базовый server/game-engine.js и AlphaZero AI v7 не затронуты, 2p-игра работает как была
25
v5.9.12 мес. назадСсылка

Анонс Golden Rush — новый режим для 4 игроков

НовоеGolden Rush: новый режим для 4 игроков. 9 стоек образуют крест, по 2 стойки на каждой руке + 1 центральная золотая. Слоган: Race to the center. Control the gold
НовоеМеханика ходов та же, что в базовой игре (swap, transfer, placement). Меняется только топология поля и порядок блокировки: свои 2 стойки блокируются по порядку 1→2, центральная — только после обеих своих
НовоеДва варианта игры: 4-FFA (каждый за себя) и 2v2 (команды по диагонали). Командный бонус +10 если оба игрока замкнули свои линии. Центральная башня = king-maker момент с +15 очков
НовоеФизическая версия: существующая коробка + копеечные флажки 4 цветов + сменная картонка-поле. Помещается в текущий инсерт
УлучшениеRoadmap цифровой адаптации: Фаза 1 hot-seat (2-3 недели) → Фаза 2 online 2v2 (3-4 недели) → Фаза 3 AI partner через transfer learning от v7 AlphaZero (2-3 месяца compute) → Фаза 4 4-FFA с MaxN (опционально)
УлучшениеЖивой дизайн-документ: docs/modes/golden-rush.md в репозитории. Правки и вопросы принимаются через PR
26
v5.9.02 мес. назадСсылка

Большая уборка безопасности: антибайпас лидербордов, транзакции, AdMob SSV

БезопасностьPOST /api/buildings теперь проверяет недавнюю верифицированную победу (games row за 120 сек) и берёт is_ai/ai_difficulty/result ИЗ СЕРВЕРА. Раньше любой curl мог создать здание максимального веса и за 10 минут выйти в Hall of Fame top-20
БезопасностьUNIQUE индекс на victory_buildings.game_id: одна победа = одно здание, дубль невозможен
БезопасностьPOST /api/bricks/purchase обёрнут в db.transaction() с INSERT OR IGNORE первым — закрыт TOCTOU race, при котором два параллельных запроса списывали бриксы дважды за один скин
БезопасностьAdMob Server-Side Verification (SSV): реальная ECDSA P-256 SHA-256 проверка подписи Google в новом endpoint GET /api/bricks/admob-ssv. Больше нельзя curlать по 100 бриксов в день через /award-rewarded когда включен ADMOB_SSV_ENABLED=1
БезопасностьTransaction_id uniqueness + timestamp freshness (≤1ч) в SSV callback — replay protection
БезопасностьPOST /api/bp/quests/:id/claim: UPDATE reward_claimed + начисление бриксов + INSERT brick_transactions — всё в одной транзакции. Раньше при краше сервера игрок мог потерять награду навсегда
БезопасностьawardBricks() обёрнут в db.transaction() — UPDATE баланса и INSERT brick_transactions больше не могут разъехаться
БезопасностьWS handleServerGameOver: UPDATE bricks + INSERT brick_transactions за online-победу в одной транзакции
БезопасностьClubs create/join/leave/kick: все операции в db.transaction() + UNIQUE индекс на club_members.user_id. Игрок может быть только в одном клубе, member_count всегда совпадает с реальным COUNT(*)
БезопасностьOwner клуба больше не может разжаловать сам себя в member — закрыт баг с клубом без владельца
БезопасностьФильтр чата v2: NFKC-нормализация + удаление zero-width + маппинг латинских confusables в кириллицу + stem-based matching. Раньше обходился за 5 сек (хyй с латинской y, х.у.й, zero-width между букв)
УлучшениеGlobal timer tick в WS-сервере (1 сек): таймер теперь тикает в реальном времени во всех комнатах. Раньше если оппонент уходил offline, его время не текло — теперь автопобеда при timeout
УлучшениеRematch и следующая турнирная партия: корректный сброс playerTime и lastMoveTime для новой игры
УлучшениеPush-уведомления: ошибки отправки теперь логируются в console.warn (раньше .catch(() => {}) съедал всё)
НовоеТаблица admin_audit + новый endpoint GET /api/admin/audit: все критичные админ-действия (изменение юзеров, мут, ресет пароля, удаление контента и тд) теперь пишутся в аудит-лог с metadata, IP, админом и timestamp
НовоеAdMob SSV-callback GET /api/bricks/admob-ssv: 7 слоёв проверки — подпись, timestamp, ad_unit, user exists, transaction_id unique, reward clamp, daily limit
Новоеworkflow_dispatch в GitHub Actions deploy: ручной ре-деплой из UI с inputs (skip_tests, reason) — быстрый hotfix-редеплой без ждания тестов
СкоростьPUT /api/admin/users/:id теперь async: bcrypt.hash вместо hashSync при reset_password — не блокирует event loop на ~70ms
СкоростьGET /api/admin/training/export-gpu: лимит по байтам ответа (default 50MB, max 200MB) + флаг truncated. Раньше мог вернуть 500MB и убить память сервера
УлучшениеGET /api/bricks/history: limit теперь clamp’ится через Math.max(1, ...) — закрыта SQLite спецсемантика LIMIT -1 (все строки)
УлучшениеUTC-даты в getDailySeed() и ensureCurrentSeason() — клиенты в разных часовых поясах больше не видят разные daily-сиды в полночь UTC
УлучшениеBattle Pass сезоны: старт/конец месяца теперь по UTC, не по локальной TZ сервера
27
v5.8.12 мес. назадСсылка

Безопасность, инварианты движка и распил монстр-файлов

БезопасностьИнвариант движка: высотка с 11+ блоками теперь ВСЕГДА закрывается. Закрыт баг из реальной партии со скриншота: стойка с 11 блоками и 4 открытыми оставалась открытой из-за canClose-гейта
БезопасностьПер-IP лимит 5 WebSocket-коннектов — защита от amplification DoS и connection flood
БезопасностьMatchmaking требует авторизации. Закрыт анонимный ranked-флоу (без токена ws-юзера не принимает)
БезопасностьOnline-игры теперь требуют moves[] для записи результата. Закрыта дыра, где через isOnline=true можно было записывать победы без валидации
БезопасностьНачисление кирпичей за online-победу только через серверный handleServerGameOver (+5 через brick_transactions reason="win:pvp_verified"). Удалён handler с client-reported winner
БезопасностьСанитация msg.timer от клиента в критичных WS-хендлерах
БезопасностьJWT token versioning: при смене пароля все старые токены автоматически инвалидируются
РефакторингApp.jsx распилен на 4 компонента (SiteHeader, SiteFooter, AppRoutes, LazyFallback). Было 54KB, стало 14KB — остался чистый orchestration (state + effects)
НовоеRegression-тесты для движка: 4 кейса + invariant-fuzz на 20 случайных партий с проверкой после каждого хода
НовоеWS integration-тесты обновлены под аутентификацию + новый negative-тест для findMatch без токена
УлучшениеСтраница Changelog переделана: hero с статами релизов, градиентная полоса распределения изменений по типам, фильтры и живой поиск по всем релизам
28
v5.8.02 мес. назадСсылка

Город побед: полное перерождение + виральные превью

НовоеНовая концепция: 1 победа = от 1 до 5 кирпичей (вместо целого небоскрёба). 11 кирпичей = закрытая высотка. Как в самой игре
НовоеБонусы к кирпичам: +1 за живого соперника, +1/+2/+3 за Hard/Extreme/Impossible AI, +1 за золотую победу. Цвет этажа = скин на момент той победы
НовоеЗолотая корона-шпиль над высотками где последний кирпич был из особой победы (золотая виктория или Impossible AI). Над короной — звезда и дым
НовоеКнопка «Поделиться городом» — ссылка /embed/city/:id даёт в Telegram/Discord/Reddit красивую PNG-карточку с именем, 4 статами и силуэтом города
НовоеВ модалке Шаринга — три разные ссылки (embed-виджет, профиль, iframe-снипет) + кнопка системного шаринга (Web Share API)
Новоеiframe-снипет для встраивания в блоги. Поддерживаются параметры ?theme=day|night и ?nocontrols=1
НовоеКнопка «Сравнить с…»: 3 вкладки — Друзья, Топ из leaderboard, Поиск по точному нику. Открывает страницу с двумя городами бок-о-бок, счётом и лидером с короной
НовоеОчки сравнения = высоток × 100 + корон × 50 + кирпичей. Такая же формула в холле оф фейм в табе «Размер»
НовоеКнопка «Сравнить города» в публичном профиле другого игрока — в один клик
НовоеКнопка «Поделиться сравнением» прямо на странице compare — копирует ссылку с SSR-превью для мессенджеров
НовоеОтдельная PNG-картинка превью для сравнения двух городов — в Telegram видны имена, счёт и оба города бок-о-бок
НовоеЗапись 8-секундного облёта города в видео (.webm/.mp4, кодеки vp9→vp8→h264). Где есть Web Share — сразу в системный share sheet, иначе скачивается файлом. REC-индикатор с прогресс-баром и обратным отсчётом
НовоеХолл оф фейм: топ-20 по 4 метрикам (размер города, кирпичи, высотки, короны) + глобальные счётчики игроков/кирпичей/высоток. Медали 🥇🥈🥉 за топ-3, твоя строка подсвечена «(вы)»
НовоеКлик по строке в холле оф фейм — переход на профиль этого игрока (через глобальный event open-profile)
НовоеМини-превью городов в холле оф фейм — лёгкий SVG-силуэт без WebGL, сразу видно форму города
НовоеНа пустом городе появилась кнопка «Посмотреть топ городов» — сразу видно куда стремиться
НовоеИндикатор «Следующая высотка: 7/11 кирпичей» под статами
НовоеКлик по высотке — модалка со списком всех побед из которых она сложена, с числом кирпичей от каждой (сгруппировано по source_id)
НовоеHover на этаже: соперник, сложность AI, дата. Hover на высотке целиком: статус закрыта/строится, период от первой до последней победы, число побед в этой стойке
НовоеНаведённая высотка подсвечивается и лёгко увеличивается (скейл 1.06)
НовоеФильтры высоток: все / с короной / содержит Impossible AI / за последнюю неделю. Неподходящие высотки становятся полупрозрачными
НовоеTime-lapse «История» — проигрывает постройку города хронологически, с датой в углу. Стоп любой кнопкой
Новое4 пресета камеры: Изо, Сверху, Кино (низкий угол), FPV-облёт + автоповорот. Плавный переход между пресетами
Новое4 пресета времени суток (Ночь, Утро, День, Закат) — меняются цвет неба, фог, солнце, экспозиция. Ночью зажигаются окна и выходят звёзды
НовоеСезонная погода: снег зимой, дождь весной, листья осенью (летом выключена). Переключается отдельной кнопкой
НовоеСнимок города с фильтрами (Vivid, Ч/Б, Сепия) и водяным знаком «Highrise Heist · Имя · N побед». Где есть Web Share — в share sheet, иначе скачивается
Новое6 слотов сохранённых ракурсов камеры в localStorage. Нашёл красивый угол — сохранил с именем, возвращаешься в один клик
НовоеМинимап в углу: золото = с короной, фиолет = строящаяся, синий = обычная, бледный = отфильтрована. Клик по точке — камера летит к высотке. Скрывается кнопкой ×
НовоеРежим полного экрана для города + подсказка «ESC чтобы выйти»
НовоеДым-частицы над высотками с короной (additive blending), рассветные окна с emissive-свечением, дороги с разметкой, ground texture, звёзды ночью
НовоеIntro-анимация камеры при первой загрузке и рост башен из земли с лёгким stagger
НовоеESC закрывает любые модалки (Поделиться, Сравнить, Холл оф фейм)
НовоеНовый endpoint /api/buildings/leaderboard: топ-20 по 4 метрикам + глобальные счётчики + возраст кэша. Кэш 5 минут
НовоеНовый endpoint /api/buildings/feed/recent: лента последних 20 побед всех игроков + статы за 24ч и всё время. Сумма кирпичей считается в SQL CASE-выражении. Кэш 30 сек
НовоеНовый indices: idx_victory_buildings_recent (created_at DESC) — ускоряет /feed/recent на больших объёмах
НовоеSSR-страница /embed/compare/:id1/:id2 для ботов-краулеров: отдаёт og:image и редиректит пользователя на SPA
УлучшениеPOST /api/buildings возвращает обновлённый город сразу — UI обновляется без второго запроса. Экономия раунд-трипа после каждой победы
Улучшение2D-fallback для устройств без WebGL переписан под новую модель towers — SVG-изометрия, зум колёсиком, drag-pan, выбор высотки тапом
УлучшениеMobile/low-power режим: меньше окон, basic shadow map, no tone mapping, devicePixelRatio=1, 250 частиц погоды вместо 600
Улучшениеprefers-reduced-motion: отключает автоповорот, пульсацию корон, дым и погоду
СкоростьOG-картинки через @resvg/resvg-js (Rust binding, ~50ms) вместо headless chrome (экономия ~195MB зависимостей). LRU кэш 500 картинок / 1ч. Сброс после новой победы инвалидирует и city-, и compare-картинки
СкоростьIntersectionObserver останавливает рендер когда город вне экрана. visibilityState — когда вкладка в фоне. Окна башен рендерятся одним InstancedMesh
СкоростьВерсионирование кэш-ключей OG (v1:userId, cmpv1:id1-id2). При правке SVG-дизайна бампаем префикс — старые картинки обновляются
УлучшениеОкна на высотках теперь зажигаются ночью при первой загрузке профиля, а не только после клика по пресету времени суток
УлучшениеОкна больше не висят в воздухе пока башни вырастают из земли (intro и time-lapse) — появляются только после того как город построен
УлучшениеЗапись 8-секундного облёта больше не «съедает» включённый авто-поворот — после видео он восстанавливается, если был активен
СкоростьДороги (~10 штук) теперь шарят одну геометрию, материал и текстуру вместо клонирования каждой — экономия ~10 GPU-текстур и геометрий на каждое открытие профиля
СкоростьГород побед корректно высвобождает все WebGL-ресурсы при закрытии профиля: убраны утечки прогресс-таймера записи, обработчиков мыши и race condition между unmount и анимационным циклом
29
v5.7.22 мес. назадСсылка

Турниры: рейтинг больше не начисляется дважды

ИсправленоКогда оба игрока одновременно жали «я выиграл» — рейтинг иногда считался в двойном размере. Теперь второе нажатие вежливо игнорируется
ИсправленоТакая же проблема могла дублировать матчи следующего раунда — исправлено
ИсправленоXP за топ-3 в финале тоже мог начислиться дважды — исправлено
ИсправленоЖеребьёвка первого раунда стала по-настоящему случайной — раньше был небольшой перекос в расстановке пар
30
v5.7.12 мес. назадСсылка

Победы за красный цвет теперь засчитываются

ИсправленоКритическое: все победы игроков за красный цвет отвергались при сохранении в статистику. Исправлено — теперь учитываются корректно
ИсправленоУбран дублирующийся серверный эндпоинт без защиты от флуда
СкоростьСтарые клиенты продолжают работать — обратная совместимость сохранена
31
v5.7.03 мес. назадСсылка

Редкость ачивок видна в профиле

НовоеУ каждой ачивки в профиле теперь виден процент игроков, у которых она тоже есть
НовоеЧетыре рамки по редкости: Обычная, Редкая, Эпическая, Легендарная — золотая рамка значит вы выбили что-то крутое
НовоеРедкость видна и в чужом профиле — сразу понятно кто гриндит, а кто хитрый коллекционер
НовоеПроцент пересчитывается каждые 5 минут из всей базы игроков
ИсправленоПуш-уведомления теперь подписаны «Highrise Heist» (было в четырёх местах старое название)
32
v5.6.13 мес. назадСсылка

Paчка мелких починок

ИсправленоУведомления «ваш ход» больше не ведут на старый домен после ребрендинга
ИсправленоРеже просит перезайти после долгого простоя — починено обновление сессии
ИсправленоГород побед больше не падает при клике на здание сразу после открытия вкладки
ИсправленоПоиск онлайн-соперника перестал иногда «терять» свободные комнаты
ИсправленоНебольшие правки с памятью на сервере и кешем в браузере — меньше странностей при долгой игре
33
v5.6.03 мес. назадСсылка

Режим фото, смена времени суток и 3D на главной

Новое4 времени суток в Городе побед: рассвет, день, закат, ночь
НовоеРежим фото: 3 ракурса камеры и автоповорот — удобно делать красивые кадры
НовоеЗдания «вырастают из земли» по очереди при заходе в город, можно сохранить снимок
НовоеМини-версия Города побед появилась на главной странице
34
v5.5.03 мес. назадСсылка

Город побед в 3D и живые превью скинов

НовоеГород побед теперь в 3D: вращается, приближается, с тенями
НовоеSkin Shop: выбранный скин видно в 3D прямо в магазине
35
v5.3.03 мес. назадСсылка

Мелкие починки статистики и наград

ИсправленоПропавшие победы в статистике теперь учитываются корректно
ИсправленоНаграда +10 кирпичей за рекламу стабильно приходит в баланс
ИсправленоАвтоматический деплой на сервер работает как надо
36
v5.0.03 мес. назадСсылка

Клубы, общий чат и выбор скинов

НовоеКлубы: создание, вступление, роли владельца/офицера/участника, отдельный лидерборд
НовоеОбщий чат в лобби — общайтесь пока ждёте соперника
НовоеМожно выбирать и экипировать скины блоков и стоек
37
v4.7.03 мес. назадСсылка

Сильный AI и приложение для Android

НовоеAI обучен с нуля на миллионах собственных партий — лучше видит позицию и хитрее с переносами
Новое5 уровней сложности: Easy / Medium / Hard / Extreme / Impossible
НовоеНативное приложение для Android — игра работает даже без интернета
38
v4.6.23 мес. назадСсылка

Сложность Impossible и редизайн профиля

НовоеСложность Impossible — около 6 сек на ход, 5000 вариантов, ~99% побед против живых
НовоеРедизайн профиля и настроек — всё на виду
НовоеPrivacy Policy, Terms of Service, cookie consent
НовоеОбновлённый дизайн главной страницы
39
v4.6.13 мес. назадСсылка

10 млн партий самообучения AI и чат зрителей

НовоеAI сыграл 10 миллионов партий против себя — баланс первого/второго хода 36.35% / 36.33%
НовоеЧат в режиме наблюдения — зрители обсуждают ходы
НовоеЕщё 4 головоломки сложности Hard
НовоеАвто-награды топ-10 игроков в конце сезона
40
v4.6.03 мес. назадСсылка

Вызов друзьям и полировка UI

НовоеКнопка «Вызвать» в списке друзей — без ссылок, сразу в игру
ИсправленоПолировка UI: аккуратнее кнопки, единые шрифты, нет прыжков лейаута на мобильных
ИсправленоРезервный SSL-сертификат + автобэкапы БД каждые 6 часов
41
v4.5.13 мес. назадСсылка

Шаринг результата и рефералы

НовоеКнопка «Поделиться» после партии — генерирует картинку с результатом и рейтингом
НовоеЛичный реферальный код/ссылка — +100 XP обоим за приведенного друга
42
v4.5.03 мес. назадСсылка

Оптимизация и тиры ELO

СкоростьИгра загружается быстрее, размер первой загрузки уменьшился
НовоеВ ELO-графике профиля появились тиры: Бронза, Серебро, Золото и т.д.
ИсправленоСервер обновлён на свежую Node-версию — быстрее и безопаснее
43
v3.53 мес. назадСсылка

Нейросеть в браузере и режим Экстрим

НовоеНейросеть AI работает прямо в браузере — лучше видит позицию на несколько ходов
НовоеНовый уровень сложности Экстрим (до полминуты на ход)
44
v3.43 мес. назадСсылка

Рематчи, наблюдение и публичные профили

НовоеРематч одной кнопкой после любой онлайн-партии
НовоеРежим наблюдения — список живых партий в лобби
НовоеПубличные страницы игроков из лидерборда
НовоеБраузерные уведомления «ваш ход» когда вкладка в фоне
45
v3.04 мес. назадСсылка

26 ачивок, сезоны и рейтинговые партии

Новое26 ачивок, сезоны с рейтингом, возможность сдаться и предложить ничью, быстрый поиск соперника
46
v2.04 мес. назадСсылка

Онлайн с друзьями и головоломки

НовоеИгра с другом по ссылке, 50 головоломок, 4 визуальные темы
47
v1.05 мес. назадСсылка

Первый релиз

НовоеИгра против AI, рейтинг, профиль, полные правила