Архитектура платформы браузерных игр

Документ описывает крупные блоки разработки платформы по типу Яндекс Игр / Poki: что нужно построить, кто чем пользуется и как это связано.

Продуктовые ограничения платформы: на каталог допускаются только PvP-игры; поиск оппонентов и рейтинг ведёт платформенный матчмейкинг на основе Эло (игра не реализует свой матчмейкинг вместо платформенного).


0. Роли и поверхности

Платформа — это не одна админка. Есть три мира с разным UX и разными правами:

РольПоверхностьЗадача
ИгрокКаталог + плеер + кошелёк + матчмейкингНайти PvP-игру, найти матч по Эло, играть, платить, ставить портальную валюту, выводить средства, оставлять отзывы
РазработчикКонсоль разработчика + SDKЗагрузить билд, настроить карточку, монетизацию, LiveOps
МодераторВнутренняя панель модерацииПроверять билды, промо, акции; одобрять / отклонять
Администратор платформыВнутренняя админкаПользователи, каталог, фичеринг, финансы, безопасность, CSP, инциденты

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

Mermaid Chart

1. Каталог и сторона игрока

То, ради чего существует платформа. Без этого блока консоль и модерация бессмысленны.

1.1. Каталог и навигация

Как это выглядит у игрока: открыл сайт → увидел подборки PvP-игр → кликнул карточку → прочитал описание / отзывы → нажал «Играть» / «Найти матч».

1.2. Плеер (runtime запуска игры)

Как это выглядит у игрока: после «Играть» открывается страница игры, идёт загрузка, платформа подбирает оппонента(ов) по Эло, стартует PvP. Авторизация, сохранения, реклама и покупки — через SDK.

1.2.1. Матчмейкинг на основе Эло (платформенный сервис)

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

Админ: параметры Эло глобально и per-game overrides, мониторинг очередей, ручной сброс рейтинга при абьюзе.

1.3. Аккаунт игрока

1.4. Портальная валюта, ставки на игру и вывод средств

Собственный экономический контур игрока (не путать с инап-покупками разработчика внутри билда).

Портальная валюта

Ставка портальной валюты на игру

Вывод денег игроком

1.5. Социальные и retention-механики у игрока

1.6. Монетизация глазами игрока


2. Аккаунты разработчиков и доступ

Аналог аккаунта разработчика и командного доступа.

Админская часть: верификация разработчиков, блокировка аккаунтов, аудит действий, поддержка споров.


3. Консоль разработчика (админка игры)

Личный кабинет, где разработчик управляет одной игрой. Ниже — вкладки, которые должны быть в продукте (по аналогии с консолью Яндекс Игр и LiveOps).

3.1. Панель управления

Бэкенд: агрегация метрик, alerting, статусная машина игры.

3.2. Черновик

Центральный блок публикации (заполнение черновика):

Статусы черновика/игры (минимум): Черновик / Создан → Ожидает модерации → Проверен / Опубликовано / Отклонен → (обновление) снова в очередь.

Админ/модератор: видит тот же пакет данных + инструменты проверки (см. блок 5).

3.3. Инап-покупки

Связь с SDK: getPurchases / purchase / consume / проверка подписи на сервере платформы.

Админ: модерация ассортимента, антифрод, споры по платежам, каталог цен по регионам.

3.4. Метрики

Продуктовая, техническая и денежная аналитика (метрики):

Инфра: event pipeline из плеера/SDK → хранилище → дашборды в консоли.

3.5. Метрики покупок

3.6. Продвижение

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

3.7. Промоакции

Модератор: проверка акции на правила (понятность оффера, запрет обхода экономики платформы и т.д.).

3.8. Флаги (Remote Config)

Удалённая конфигурация без модерации билда (флаги):

Админ: лимиты, аудит опасных флагов, kill-switch на уровне платформы.

3.9. Отзывы

Админ/модератор: модерация UGC, токсичность, фейковые оценки.

3.10. Реклама

Админ: политики показа, блоклисты, revenue share, сверка с ad-network.

3.11. Страны и регионы

3.12. CSP и настройки хостов


4. SDK и интеграция игры

Обязательный слой между игрой и платформой (SDK).

4.1. Клиентский SDK (JS + плагины движков)

Ставки портальной валюты и вывод денег — преимущественно UI/API профиля платформы (не обязательно внутри билда), но баланс и статусы договора могут быть доступны игре через SDK при необходимости.

4.2. Серверная часть SDK / Platform API

4.3. Требования к билду (продуктовые правила)

Отдельный продуктовый артефакт — требования к игре плюс правила этой платформы:

Это и чек-лист модерации, и документация для разработчика.


5. Модерация (внутренняя система)

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

5.1. Очереди

5.2. Рабочее место модератора

5.3. Автоматизация (ускорители)

5.4. После вердикта


6. Администрирование платформы

То, чего нет в публичной консоли разработчика.


7. Публикация и жизненный цикл игры

Склейка консоли, модерации и каталога (быстрый старт + модерация).

Mermaid Chart

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


8. Как это работает со стороны игрока (сквозной сценарий)

  1. Обнаружение. Игрок заходит на сайт/приложение платформы. Видит персональные и редакторские подборки, поиск, жанры. Новые игры неделю крутятся в «Новых», дальше трафик в основном от рекомендаций.
  2. Карточка. Смотрит описание, скриншоты, рейтинг, отзывы, бейдж акции (если есть). Если страна не в списке дистрибуции — игры нет в выдаче.
  3. Запуск. Жмёт «Играть». Плеер грузит билд из CDN в песочнице с CSP. Подключается SDK, определяется язык и устройство.
  4. Матчмейкинг. Игрок встаёт в очередь; платформа подбирает оппонента(ов) по Эло; при нахождении матча стартует PvP-сессия.
  5. Сессия. Игра вызывает Game Ready (до или в связке с поиском — по контракту SDK), идёт PvP, по окончании результат уходит на сервер платформы, Эло пересчитывается. Реклама и покупки — через SDK. При уходе со вкладки — пауза.
  6. Портальная экономика. Может купить или получить портальную валюту, поставить её на понравившуюся игру, следить за балансом в кошельке.
  7. Вывод. Чтобы вывести деньги, подписывает договор с платформой, указывает реквизиты, проходит проверки — только после этого создаёт заявку на выплату.
  8. Социальное. Может оценить игру и написать отзыв.
  9. Возврат. Рекомендации и retention-механики (события, акции, прогресс в облаке, рост Эло) возвращают игрока; разработчик это видит в метриках и крутит LiveOps.

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


9. Инфраструктурные блоки (под все поверхности)

Крупные технические системы, на которые садятся фичи выше:

БлокНазначение
Хранение билдов / CDNЗагрузка архивов, версионирование, раздача плееру
Песочница + CSP proxyИзоляция игр, контроль внешних хостов
IdentityИгроки, разработчики, сотрудники (RBAC)
Game catalog serviceКарточки, поиск, подборки, гео, статусы
Moderation serviceОчереди, вердикты, кулдауны, артефакты
SDK / Platform APIAds, IAP, player, flags, time, matchmaking
Matchmaking / EloОчереди, подбор по Эло, сессии, пересчёт рейтинга, антифрод результатов
PaymentsИнапы, чеки, рефанды
Player walletПортальная валюта, ставки на игры, конвертация
Player payoutsДоговоры с игроками, KYC, заявки на вывод, выплаты
Ads mediationБлоки, fill, тестовый/боевой режим
Analytics pipelineСобытия → метрики консоли и ранжирования
Remote configФлаги, раскатки конфигов
NotificationsПочта/кабинет: модерация, алерты, выплаты игрокам и разработчикам
Admin backofficeФичеринг, финансы, безопасность, поддержка
Docs & portalПубличная документация для разработчиков

10. Карта соответствия: вкладка консоли → системы

Вкладка у разработчикаИгрок видитМодератор/админ делает
Панель управления—Алерты платформы, health игр
ЧерновикКарточку и PvP-билд после публикацииПолная/контентная проверка; отказ non-PvP
Инап-покупкиОкна оплаты и товары в игреМодерация товаров, антифрод
Метрики / метрики покупокКосвенно (рекомендации); Эло в профилеСверка, антинакрутка, мониторинг очередей
ПродвижениеБаннеры, место в выдачеСлоты, ручной фичеринг
ПромоакцииБейдж и раздел акцийМодерация акций
ФлагиИзменённый геймплей/балансАудит, kill-switch
ОтзывыОтзывы и ответы студииМодерация UGC
РекламаРекламные блокиПолитики, mediation
Страны и регионыНаличие игры в стране; доступность ставок/выводовСанкции/комплаенс
CSPСтабильный запуск без лишних запросовОдобрение хостов
(кабинет игрока, не консоль) Кошелёк / ставкиБаланс, ставка на игруАнтифрод экономики
(платформа) Матчмейкинг ЭлоОчередь, матч, рейтингПараметры Эло, антифрод, сбросы

11. Рекомендуемый порядок разработки (крупными этапами)

Не детальный план спринта, а порядок появления ценности:

  1. Каркас платформы: identity, загрузка билда, плеер с песочницей, простой каталог, ручная публикация админом.
  2. Консоль + черновик + модерация: статусы, очередь, чек-лист (PvP), публикация после approve.
  3. SDK MVP: init, Game Ready, player, матчмейкинг + Эло + результат матча.
  4. Каталог для игрока: карточки PvP-игр, поиск, базовые подборки, гео, отображение Эло.
  5. Монетизация: реклама и/или IAP + финансы разработчиков.
  6. LiveOps: метрики (в т.ч. очереди), отзывы, флаги, промоакции.
  7. Экономика игрока: портальная валюта, ставки на игры, договоры и выводы.
  8. Рост: платное продвижение, рекомендации.
  9. Укрепление: CSP-процесс, антифрод (ставки, выводы, накрутка Эло), командный доступ, backoffice админа.

12. Что сознательно «за кадром» публичной документации

При проектировании закладывать отдельно (в Яндекс Играх это есть у платформы, но не описано как продукт для разработчика):


Документ предназначен для декомпозиции продукта и планирования команд. Следующий шаг — выбрать MVP-срез (блоки 1–2–3.2–4–5) и детализировать сущности/API.