Omoggle / Журнал изменений

Журнал изменений · С 2026 года

Каждый релиз —
отдельная история.

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

1.7

Чистый звук, синхронизация и новый облик.

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

«Детали решают всё — пользователь чувствует качество, даже не называя его.»
  1. Improve Редизайн интерфейса — переработан главный экран, карточки режимов, блок прогресса и шапка. Визуальный язык стал строже и современнее: меньше шума, больше пространства, акценты только там где нужно.
  2. Fix Чистый звук — полностью отключены echoCancellation, noiseSuppression и autoGainControl. Раньше агрессивная обработка «съедала» голос в тихих условиях. Теперь звук передаётся как есть — без артефактов и провалов.
  3. Fix Синхронизация старта матча — раньше один игрок видел соперника раньше другого из-за гонки состояний на клиенте. Добавлен серверный сигнал both_ready: матч стартует только когда оба завершили SDP-обмен. Рассинхрон устранён полностью.
  4. Improve Качество видео — повышен целевой битрейт до 2.5 Мбит/с, разрешение до 720p (идеал), аудио до 256 кбит/с с частотой дискретизации 48 кГц. Картинка стала заметно чище на хороших соединениях.
  5. Improve Скорость соединения — расширен пул ICE-серверов (добавлены Google STUN stun1–4, stunprotocol.org), увеличен iceCandidatePoolSize до 20. Среднее время до первого видеокадра сократилось на ~30%.
  6. Fix AbortError при соединении — явный вызов .play() конфликтовал с загрузкой нового потока и приводил к ошибке в консоли и задержке старта. Убран — автовоспроизведение теперь полностью на атрибуте autoplay.
−3
Аудио-фильтра отключено
2.5Мбит
Целевой видеобитрейт
~30%
Быстрее соединение
1.6

Прогресс, стрики и ежедневная мотивация.

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

«Люди возвращаются туда, где их ждёт награда.»
  1. Feature Стрик побед 🔥 — персистентный счётчик серии выигрышей сохраняется между сессиями, сгорает если не выиграть в течение 24 часов. Огонёк с числом отображается прямо на карточке 1v1 Арены начиная со второй победы подряд.
  2. Feature Ежедневный бонус — 7-дневный календарь наград в стиле боевого пропуска: День 1 +10 ELO, Дни 2–4 по +50, Дни 5–6 по +100, День 7 +500 ELO. День 1 доступен сразу при первом заходе на сайт. Полностью защищён от абуза на стороне сервера — один клейм в сутки, уникальный ключ в БД.
  3. Feature Раздел «Прогресс» — карточка с тремя вкладками (🎁 Бонус / 📋 Квесты / 🎨 Скины) заменила разрозненные кнопки. Главное меню стало чище: 4 чёткие карточки вместо 5 + отдельных кнопок. Оранжевые точки-нотификации показывают когда есть что забрать.
  4. Improve Редизайн блока «Бонусы» — убран фиолетовый accent, всё приведено к оранжевой гамме бренда. Новая структура модала: хедер с градиентом, 7-ячеечная сетка дней с разными иконками (⚡ 🪙 💎 👑 🏆), кнопка «Забрать» на полную ширину чёрным текстом на оранжевом фоне.
  5. Fix Баг реферальной системы — пользователи с уже активным Google-аккаунтом видели экран «необходима авторизация» при открытии вкладки рефералов. Исправлено: теперь читается как omg_google_id, так и OmgAuth.getGoogleUser().googleId как запасной вариант.
  6. Infra Новые таблицы БД: streaks (персистентный стрик с временем последней победы) и daily_bonuses (лог клеймов с составным PRIMARY KEY против двойного получения). Оба с in-memory fallback при отсутствии БД.
  7. Infra Новые API-эндпоинты: GET /api/streak, GET /api/daily-bonus, POST /api/daily-bonus/claim. Стрик обновляется на сервере при каждом матч-результате через WebSocket.
7
Дней бонусного цикла
500ELO
Приз 7-го дня
4
Карточки в меню
1.5

Технический фундамент — заново.

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

«Хороший продукт начинается с того, что его можно найти.»
  1. Feature Запущен публичный журнал изменений — эта страница. Каждый релиз получает собственное место в истории.
  2. Infra Sitemap теперь генерируется сервером динамически — lastmod всегда соответствует реальной дате последнего изменения.
  3. Infra HTTP-заголовки X-Robots-Tag корректно закрывают arena, spectate и admin от индексации.
  4. Improve На tos.html и privacy.html добавлены canonical, OpenGraph, описание — раньше эти страницы были полностью невидимы для поиска.
  5. Perf Шрифты на легальных страницах больше не блокируют первый рендер — переключены на media="print" onload паттерн.
11%
Прирост Lighthouse
0ms
Блокирующий рендер
10
Страниц в индексе
1.4

Идентичность — опциональна.

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

  1. Feature Google Sign-In — мягкое модальное окно появляется раз в 5 матчей и в углу главной страницы.
  2. Design Авторизованные игроки выделяются зелёным цветом в лидерборде с галкой ✓ — отметка верификации.
  3. Infra API-эндпоинты для верификации Google ID-токенов через google-auth-library и сохранения связки в БД.
  4. Improve Camera-check больше не требует проверки моргания и поворота головы — сразу меню режимов. Камера проверяется уже в арене.
1.3

Матч — стал честным.

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

«Если фича не работает на больших экранах — это не фича, а демка.»
  1. Feature WebSocket-релей face_score — каждая оценка передаётся между игроками в реальном времени с резервной отправкой раз в 500 мс.
  2. Fix Критический баг: ELO перестал умножаться бесконечное число раз после победы — добавлен серверный флаг _resultProcessed.
  3. Fix Опонент больше не получает фиктивный счёт 5.0 при отсутствии данных — теперь засчитывается ничья.
  4. Fix Устранён WASM-крэш, возникавший из-за многократной инициализации FaceMesh в ontrack WebRTC.
  5. Perf Возврат в меню после матча — мгновенный. requestAnimationFrame корректно отменяется через cancelAnimationFrame.
1.2

Прогрессия — появилась.

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

  1. Feature PSL-лаборатория — сольный режим с анализом лица по 468 точкам. Без матчей, без давления рейтинга.
  2. Feature Система квестов — ежедневные и недельные задачи с наградой в ELO.
  3. Design Коллекция скинов сетки лица — каждый игрок выбирает стиль трассировки.
  4. Design Полная переработка профиля: статистика, ачивки, история матчей с дельтой ELO.
1.1

Соревнование — для друзей.

Случайный матчмейкинг работает для масс. Но пользователи просили возможность звать конкретного человека на дуэль. Мы сделали приватные комнаты с 6-значными кодами и запустили подписку Omoggle PRO для тех, кто хочет больше.

  1. Feature Кастомные комнаты 1v1 — 6-значные коды для приглашения друзей или внутренних турниров.
  2. Feature Omoggle PRO — пропуск игроков без штрафа ELO, безлимитная лаборатория, VIP-статус в Discord.
  3. Feature Лента активности — в реальном времени видны победы, ачивки и достижения других игроков.
  4. Improve Расширенная иерархия рангов: SUB3 → SUB5 → LTN → MTN → HTN → CHADLITE → CHAD → TRUE ADAM.
1.0

День, с которого всё началось.

Первая в России 1v1 арена привлекательности. Никаких аналогов на рынке не было — мы строили технологию с нуля: P2P-видео, MediaPipe FaceMesh в браузере, серверный ELO, анти-чит на уровне расчёта. На запуск ушли месяцы.

  1. Feature WebRTC P2P-соединение через coturn TURN-сервер — видео идёт напрямую между браузерами, минуя наши серверы.
  2. Feature Анализ лица 468 точками MediaPipe — симметрия, пропорции, золотое сечение. WASM, всё локально.
  3. Feature Серверный ELO-расчёт по формуле K=32 — рейтинг невозможно накрутить со стороны клиента.
  4. Feature Глобальный лидерборд — топ-100 моггеров с обновлением в реальном времени.

Что дальше

Это только начало.

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

Войти в арену