Клиент-серверная архитектура

Клиент-серверная архитектура — фундаментальная модель игровых платформ, где логика распределена между клиентом (браузер/мобильное приложение) и сервером.

Разделение ответственности

Клиент: рендеринг, анимации, UX, локальная валидация. Сервер: игровая логика, RNG, платежи, авторизация. Правило: никогда не доверять клиенту. Все критичные вычисления и проверки — на сервере. Клиент только представляет результат.

Thin vs Thick клиент

Thin client: минимум логики на клиенте, всё на сервере. HTML5 canvas + WebSocket. Легко обновлять. Thick client: сложные вычисления на клиенте (3D-графика в Unity/Unreal). Меньше нагрузка на сервер, но сложнее анти-чит.

Коммуникация

REST для CRUD-операций: логин, история, настройки. WebSocket для real-time: игровые действия, live-updates. gRPC для внутренних сервисов. Полная синхронизация состояния — на сервере, клиент получает delta-обновления.

Anti-cheat

Server authoritative model: сервер — единственный источник истины. Клиент запрашивает действие, сервер решает. Валидация всех входящих данных. Rate limiting на действия. Machine learning для детекции ботов и aimbots в skill-based играх.