Мультиплеер в браузерной игре: как он устроен и почему стоит дорого | Revenue Digital
Игры и интерактив

Мультиплеер в браузерной игре: как он устроен и почему стоит дорого

Онлайн-режим кажется просто «добавить второго игрока». На деле это отдельная инженерная задача: интернет теряет пакеты и задерживает их, а игра при этом обязана оставаться честной и плавной.

Три проблемы, которые надо решить

Задержка. Между вашим действием и тем, как его увидит соперник, проходит время. Если просто ждать подтверждения сервера, управление станет вязким.

Потеря пакетов. Часть данных не доходит. Если рисовать чужую машину строго по последнему полученному пакету, она будет дёргаться и телепортироваться.

Нечестность. Если победителя определяет телефон игрока, результат подделают. Не гипотетически — в любой игре с рейтингом это происходит в первую же неделю.

Как это решают

Победителя определяет сервер, а не клиент. Клиент сообщает, что с ним произошло, сервер сверяет это с тем, что вообще могло произойти, и выносит решение. Заявки вида «я выиграл» протокол просто не содержит.

Чужого игрока рисуют с небольшим отставанием — обычно около ста миллисекунд. Тогда у программы всегда есть данные до и после нужного момента, и она рисует движение между ними, а не догадывается.

Короткий пропуск достраивают по последней известной скорости: машина продолжает ехать туда же, куда ехала. Опоздавший пакет встраивают в общую картину, а не дёргают машину на новое место.

Физику считают фиксированное число раз в секунду независимо от частоты экрана — иначе владелец телефона со 120 Гц получает преимущество над владельцем обычного.

Почему это дорого

Потому что нельзя проверить «на глаз». Одиночную игру видно сразу: запустил и играешь. Сетевую надо проверять на двух устройствах, на плохом интернете, с обрывами связи и попытками смухлевать.

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

Практический вывод для заказчика: если у студии уже есть отработанная сетевая основа, онлайн обойдётся заметно дешевле, чем если её писать с нуля под ваш проект. Этот вопрос стоит задать до подписания.

Частые вопросы

На сколько игроков реально сделать онлайн?

Для гонки или аркады комфортно до четырёх-восьми в одной сессии. Дальше растёт объём данных и сложность, и цена увеличивается непропорционально.

Что происходит при обрыве связи?

Правильное поведение — сохранить место за игроком на несколько секунд и дать вернуться в ту же сессию. Мгновенное поражение из-за скачка сети выглядит несправедливо и отпугивает.

Читайте также