System Design Space

    Глава 35

    Обновлено: 16 февраля 2026 г. в 03:00

    Real-time Gaming

    Прогресс части0/21

    Классическая задача: authoritative game server, matchmaking, state sync, anti-cheat и low-latency networking.

    Reference

    Gaffer On Games

    Классические материалы по сетевой модели real-time игр и синхронизации состояния.

    Открыть

    Real-time Gaming - это система с жёсткими ограничениями по latency, где важны не только масштабирование и отказоустойчивость, но и справедливость геймплея. Архитектура обычно опирается на authoritative server, event stream и региональное размещение матчей.

    Требования

    Функциональные

    • Матчмейкинг игроков по рейтингу, региону и latency budget.
    • Авторитетный игровой сервер с real-time state updates.
    • Синхронизация позиций/событий (movement, shots, collisions, abilities).
    • Поддержка reconnect и восстановления сессии после коротких обрывов.
    • Лидерборды, статистика матчей и post-game события.

    Нефункциональные

    Latency: p95 < 80ms

    Input-to-action задержка должна быть предсказуемой и низкой.

    Tick Rate: 20-60 TPS

    Стабильный simulation loop для честного gameplay.

    Availability: 99.99%

    Матч не должен падать из-за сбоя одного node/zone.

    Fairness: anti-cheat + anti-abuse

    Сервер валидирует действия, клиент не источник истины.

    High-Level Architecture

    Architecture + Scenario Explorer

    Authoritative multiplayer topology with interactive scenario paths

    Access and Control Plane

    Clients
    mobile / desktop
    Edge Gateway
    WS/UDP ingress
    Session Coordinator
    routing + lifecycle
    Auth Service
    token + session auth
    Matchmaker
    MMR + latency fit

    Real-Time State and Data Plane

    Game Server
    authoritative tick loop
    Presence / Cache
    snapshot + delta state
    Event Stream
    async game events
    Analytics / Rank
    leaderboards + BI
    session metadata persist
    event summary sink
    Player Data Store
    profiles + inventory + history
    Базовая topology real-time игры: control plane управляет матчем, а state/data plane обслуживает игровой цикл и аналитический хвост.
    Выбери сценарий сверху, чтобы подсветить путь через архитектуру и посмотреть ключевые шаги выполнения.

    Главный принцип: tick loop должен быть изолирован от медленных внешних операций. Любая тяжелая логика уходит в async pipeline вне критического пути.

    Надёжность и anti-patterns

    Production-паттерны

    • Region-aware placement: игроки матчатся внутри latency-бюджета.
    • Sticky session для UDP/WebSocket потока в рамках матча.
    • Hot standby game servers и быстрое переподнятие матча при node failure.
    • Snapshot + delta updates для снижения bandwidth и быстрого resync.
    • Backpressure/queue limits на ingress, чтобы защищать simulation loop.

    Опасные решения

    • P2P authoritative gameplay для competitive режимов (высокий риск читов).
    • Глобальный matchmaking без региональной сегментации по latency.
    • Синхронные внешние вызовы (DB/HTTP) внутри tick loop.
    • Отсутствие reconnect window и механизмов state resync.
    • Слишком подробный full-state broadcast вместо компактных diff-пакетов.

    Что хранить персистентно

    • Player profile и progress.
    • Match history и ключевые telemetry counters.
    • MMR/ranking snapshots и leaderboard агрегаты.
    • Inventory/economy события (если есть монетизация).
    • Audit trail для moderation и anti-cheat расследований.

    Связанные главы

    На интервью критично проговорить trade-off между сетевой плавностью (client-side prediction) и честностью (server authority + reconciliation + anti-cheat).

    Если latency budget превышен, лучше деградировать matchmaking (регион/ранг), чем ломать игровой опыт.