Найти тему
Вася Про игры

Разбираем как устроенная сетевая часть игр

Оглавление

Приветствую охотник за знаниями.

Сегодня хочу тебе рассказать что такое пинг, лаг и как устроена сетевая часть онлайн игр.

Для начала - онлайн игры сейчас все больше набирают популярность, еще 10 лет назад не было такого огромного разнообразия. Но, к сожалению, разработчики все еще халтурят при разработке и это выливается в неприятные проблемы.

Как устроена сетевая часть любой игры.

Я думаю любой знает что у онлайн игры есть сервера. Твой игровой клиент посылает серверу кучу "пакетов" с данными о твоих действиях и при этом еще больше получает от сервера.

Сам же сервер занят обработкой пакетов и различных расчетов.

Да. да, именно сервер рассчитывает попал ли ты в противника или нет. На самом деле это очень кропотливая работа, так как пакеты надо синхронизировать со всех клиентов и правильно все высчитать.

Тут - то и подключается наш любимый пинг.

Пинг это время за которое пакеты долетают от клиента до сервера и обратно. Из-за пинга происходят различные рассинхроны, т.к. ты попадаешь в голову, а сервер думает что пуля пролетела мимо, т.к. в этот момент (в долю секунды) цель была на другом месте.

Собственно лаги происходят тоже из-за этого.

Долго приходит ответ от сервера - все висит/бегут на месте.

Как разработчики борются со всем этим?

На самом деле правильного подхода к решению этих проблем нет.

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

В общем идеального рецепта в данном случае нету.