Лаги в играх бывают по многим причинам, но две основные, как правило: недостаточно мощный компьютер и проблемы с сетью в случае онлайн-игр.
Что мешает нормально поиграть, почему фризит\лагает и как улучшить ситуацию? Универсальные советы как для игроков через облачную платформу, так и в принципе для любителей онлайн-игр на ПК — в ликбезе от Алексея Лыкова.
Алексей Лыков, технический директор Playkey: Немного матчасти. Любой трафик состоит из пакетов, пересылаемых по сети. И в зависимости от качества сети некоторые пакеты могут теряться.
В пакете идет определенный сигнал. Когда пакет теряется, то два узла, взаимодействующих между собой (например, два сетевых коммутатора: на стороне игрока и на стороне сервера онлайн-игры), должны решить проблему с потерей информации. Образно их «общение» выглядит так:
Чем больше потерь, тем больше таких запросов от получателя до отправителя.
И что в итоге? Допустим, кадр состоит из нескольких пакетов. Приходят на компьютер 10 из 10 пакетов, кадр собирается и отображается. Пользователю клёво. Но если из 10 пакетов пришло 9, то картинка собраться не может.
Или, возможно, она соберется с какими-то артефактами. Мы называем это «рассыпанием» картинки. Вот как это выглядит в одном из худших случаев:
Допустим, получатель отправляет запрос: «Дай мне этот 10-й кадр!», отправитель досылает его. Разумеется, на это нужно время. И вот в те драгоценные миллисекунды, которые на это тратятся, возникает лаг.
Если вы играете в онлайн-игру с 30 FPS (frames per second или кадров в секунду) при пинге в 10 мс, то пересылка пакета займет примерно 10 миллисекунд (пинг до сервера) + 30 миллисекунд (межкадровый интервал) Итого получаем 40мс. При 60 FPS это еще менее заметно, потому что межкадровый интервал уже равняется 15 миллисекундам, итого: 25мс (10 мс + 15мс). Но чем больше таких задержек, тем «неприятнее» картинка, чувствуются какие-то рывки, фризы.
То же самое с управлением. В World of Tanks, когда вы нажимаете кнопку «вперед», танк должен ехать.
Но как можно понять, что он действительно это делает? Танк считается «поехавшим» вперед, когда он на сервере получил эту команду. Вся калькуляция взаимодействия игроков происходит там (иначе всё заполонили бы читеры).
Чтобы пользователь не ощущал лаги при синхронизации действий с сервером каждую секунду, в клиентских мультиплеерных играх используют пререндеринг: при нажатии команды «вперед» танк сразу ее выполняет. Но, по сути, это еще не актуальное будущее для остальных пользователей. Если вы играли в World of Tanks, то могли видеть, как танки в воздух улетают или в скалу врезаются. Эта проблема возникает, когда происходит лаг в сети — сигнал уходит на сервер, а подтверждения того, что танк реально уехал, не пришло.
Здесь танки как раз летают в самом начале ролика
А.Л.: Проблемы бывают разные:
1. Провайдер режет трафик по тарифу;
2. Стандартный роутер провайдера оставляет желать лучшего. Например, дешевые Wi-Fi точки — «вафля» в народе — могут давать ~2 Мбит/сек скорости при тарифе 100 Мб/cек и в целом обеспечивать некачественный сигнал;
3. Сервера, к которым обращается ваш компьютер, находятся географически далеко. Игроки из Сибири мечтают, чтобы онлайн-игры реагировали на их действия так же шустро, как у москвичей. Хотя есть у нас кадры, которые и с Владивостока играют и нарадоваться не могут;
Большая часть потери происходит у клиента дома и, в первую очередь, из-за точки доступа Wi-Fi
С кабелем практически не бывает потерь: по сравнению с Wi-Fi это 1 к 1000.
Если роутер стоит за стенкой, сигнал ухудшается, это свойство обычных радиоволн. Также на беспроводной сигнал влияют любые другие устройства, излучающие радиоволны.
Как влияет на Wi-Fi микроволновка
Еще одна беда домашнего Wi-Fi — проблема нескольких точек доступа в многоквартирных домах или офисах. Они также «перебивают» друг друга. В этой ситуации надо у каждой точки снизить мощность сигнала, и тогда скорость у всех возрастет. Правда, обычно все идут обратным путем, выставляют мощность на максимум, и в итоге Wi-Fi плохо работает сразу у всех в доме.
А.Л.: Тут важно не количество устройств, а в целом трафик, который они потребляют. Если другие устройства работают в фоновом режиме, ничего страшного. Обычный интернет-серфинг на других компьютерах тоже мало влияет.
А вот если кто-то из ваших домашних качает торренты, а второй смотрит видео в хорошем качестве на YouTube, то может достигаться лимит по каналу, и онлайн-игре остается небольшой кусок пирога.
Для лучшего распределения трафика по устройствам мы советуем роутеры, которые поддерживают диапазон частот 5 ГГц. Стандарт 2,4 ГГц поддерживает меньше каналов — 13, и на каждом из каналов могут работать несколько устройств, тогда они начинают друг с другом конкурировать. Те, кому интересно узнать все детали, могут почитать всё в подробностях в публикациях на Хабре.
В этом плане, когда у нас есть какая-то общественная точка, 2,4 ГГц там могут очень плохо работать. Поэтому для тех, кто играет онлайн и использует Playkey, рекомендуются каналы с 5 ГГц. «Герцовка» Wi-Fi дает большое преимущество для беспроводной связи.
А.Л.: Можно быстро провести диагностику с помощью бесплатной утилиты MTR
Сначала подключите к компьютеру именно кабель, чтобы проверить, что проблема не на стороне роутера. Наберите в строке ya.ru и обратите внимание на графу Loss%.
Вообще потерь не должно быть, но это скорее исключение, чем правило. 5% потерь на каком-нибудь из узлов — не критично.
Если по кабелю все хорошо, подключите роутер. Может быть, например, такая картинка:
100% потерь на одном из узлов
Желательно иметь под рукой пару роутеров для проверки: если на одном пакеты теряются, а на втором — нет, то будет понятно, что проблема на стороне конкретного роутера. Возможно, нужно обновить его прошивку.
Если же потери происходят на всех тестируемых роутерах, тогда надо задавать вопросы техподдержке провайдера.
А.Л.: 1. Настроить у роутера приоритезацию
Если, допустим, вы постоянно играете в Witcher 3 или еще во что-то, вы можете просто зайти в настройки роутера и выставить игре максимальный приоритет. Это должно помочь, чтобы игра не «лагала», если у вас в квартире еще кто-то юзает интернет.
2. Попробовать перезагрузить роутер
Роутеры, особенно дешевые, могут копить у себя различные ошибки, создавать потери и задержки. Поэтому перезагрузка роутера сбрасывает какую-то внутреннюю часть: память, подключения. То есть все с чистого листа начинается. И это может помочь. Для дешевых роутеров, у которых плохо написан программный код, существуют разные прошивки, даже не родные, которые могут решать эту проблему.
3. Сказать антивирусу, что клиент онлайн-игры (или клиент Playkey) — это хорошие программы
Антивирусы, которые проверяют интернет, сканируют весь трафик, приходящий на компьютер. Для этого и компьютеру, и антивирусу нужно какое-то время.
Из-за этого могут быть ощутимые задержки. Иногда даже полусекундные, в зависимости от антивируса. Поэтому нужно выставить в настройках защитного ПО «благонадежный» статус конкретной программе.
А.Л.: Мы делаем, конечно. Во-первых, у нас есть схема отправки пакетов как по TCP-протоколу, так и по UDP.
Как следствие, мы решили использовать UDP-трафик — в стриминге игр скорость играет значительную роль. Проблема с потерями пакетов при UDP решаема, но требует большей ширины канала — то есть, приходится пересылать больше трафика.
И тут возникает ситуация: когда пакет теряется из-за того, что у клиента есть ограничения по каналу — например, провайдер дает 10 мегабит скорости. Нам приходится пересылать еще больше трафика через «бутылочное горлышко». Поэтому мы разработали алгоритм, который мягко поднимает и опускает битрейт, отслеживая диагностику сети у пользователя.
Если вы хотите прямо сейчас проверить свое подключение к интернету и посмотреть, как с ним справится Playkey — используйте промокод GeeksOnline на бесплатные 300 минут игры (работает 24 часа с момента активации и только для новых пользователей). Юзайте здесь на здоровье.
А.Л.: С ними все сложнее — при использовании 3G/4G сетей используются еще более мощные алгоритмы восстановления пакетов, то есть, избыточность очень большая (не наша, а на уровне протокола). Изначально подразумевалось, что пакетов теряется немерянное количество.
Любой радиосигнал работает так же. Алгоритмы избыточности пришли из радиофизики. Когда мы, например, въезжаем в тоннель, сигнал становится все хуже. Но если какой-то процент пакета радиосигнала пропал, мы все равно достаточно долго можем слышать голос ведущего.
Сказать, что 3G/4G сети совсем нельзя использовать для онлайн-игр — конечно, нельзя. Но тут еще предстоит очень и очень много работы. В целом перспективнее сразу смотреть в сторону 5G-сетей. Если они справятся с обещаниями скорости в 25 Гбит/с, да еще и смогут снизить задержки при передачи данных в 50 раз, то это откроет для Playkey, как и для всего онлайн-гейминга, все двери разом.
Что мешает нормально поиграть, почему фризит\лагает и как улучшить ситуацию? Универсальные советы как для игроков через облачную платформу, так и в принципе для любителей онлайн-игр на ПК — в ликбезе от Алексея Лыкова.
Алексей Лыков, технический директор Playkey: Немного матчасти. Любой трафик состоит из пакетов, пересылаемых по сети. И в зависимости от качества сети некоторые пакеты могут теряться.
В пакете идет определенный сигнал. Когда пакет теряется, то два узла, взаимодействующих между собой (например, два сетевых коммутатора: на стороне игрока и на стороне сервера онлайн-игры), должны решить проблему с потерей информации. Образно их «общение» выглядит так:
Чем больше потерь, тем больше таких запросов от получателя до отправителя.
И что в итоге? Допустим, кадр состоит из нескольких пакетов. Приходят на компьютер 10 из 10 пакетов, кадр собирается и отображается. Пользователю клёво. Но если из 10 пакетов пришло 9, то картинка собраться не может.
Или, возможно, она соберется с какими-то артефактами. Мы называем это «рассыпанием» картинки. Вот как это выглядит в одном из худших случаев:
Что же происходит в сети?
Допустим, получатель отправляет запрос: «Дай мне этот 10-й кадр!», отправитель досылает его. Разумеется, на это нужно время. И вот в те драгоценные миллисекунды, которые на это тратятся, возникает лаг.
Если вы играете в онлайн-игру с 30 FPS (frames per second или кадров в секунду) при пинге в 10 мс, то пересылка пакета займет примерно 10 миллисекунд (пинг до сервера) + 30 миллисекунд (межкадровый интервал) Итого получаем 40мс. При 60 FPS это еще менее заметно, потому что межкадровый интервал уже равняется 15 миллисекундам, итого: 25мс (10 мс + 15мс). Но чем больше таких задержек, тем «неприятнее» картинка, чувствуются какие-то рывки, фризы.
То же самое с управлением. В World of Tanks, когда вы нажимаете кнопку «вперед», танк должен ехать.
Но как можно понять, что он действительно это делает? Танк считается «поехавшим» вперед, когда он на сервере получил эту команду. Вся калькуляция взаимодействия игроков происходит там (иначе всё заполонили бы читеры).
Чтобы пользователь не ощущал лаги при синхронизации действий с сервером каждую секунду, в клиентских мультиплеерных играх используют пререндеринг: при нажатии команды «вперед» танк сразу ее выполняет. Но, по сути, это еще не актуальное будущее для остальных пользователей. Если вы играли в World of Tanks, то могли видеть, как танки в воздух улетают или в скалу врезаются. Эта проблема возникает, когда происходит лаг в сети — сигнал уходит на сервер, а подтверждения того, что танк реально уехал, не пришло.
Здесь танки как раз летают в самом начале ролика
На каком этапе происходит основная часть потери пакетов?
А.Л.: Проблемы бывают разные:
1. Провайдер режет трафик по тарифу;
2. Стандартный роутер провайдера оставляет желать лучшего. Например, дешевые Wi-Fi точки — «вафля» в народе — могут давать ~2 Мбит/сек скорости при тарифе 100 Мб/cек и в целом обеспечивать некачественный сигнал;
3. Сервера, к которым обращается ваш компьютер, находятся географически далеко. Игроки из Сибири мечтают, чтобы онлайн-игры реагировали на их действия так же шустро, как у москвичей. Хотя есть у нас кадры, которые и с Владивостока играют и нарадоваться не могут;
Большая часть потери происходит у клиента дома и, в первую очередь, из-за точки доступа Wi-Fi
С кабелем практически не бывает потерь: по сравнению с Wi-Fi это 1 к 1000.
Если роутер стоит за стенкой, сигнал ухудшается, это свойство обычных радиоволн. Также на беспроводной сигнал влияют любые другие устройства, излучающие радиоволны.
Как влияет на Wi-Fi микроволновка
Еще одна беда домашнего Wi-Fi — проблема нескольких точек доступа в многоквартирных домах или офисах. Они также «перебивают» друг друга. В этой ситуации надо у каждой точки снизить мощность сигнала, и тогда скорость у всех возрастет. Правда, обычно все идут обратным путем, выставляют мощность на максимум, и в итоге Wi-Fi плохо работает сразу у всех в доме.
А если в квартире есть другие устройства, подключенные к интернету? Имеются в виду смартфоны, другие ноутбуки, пуфик для кота со встроенным Wi-Fi. Они влияют?
А.Л.: Тут важно не количество устройств, а в целом трафик, который они потребляют. Если другие устройства работают в фоновом режиме, ничего страшного. Обычный интернет-серфинг на других компьютерах тоже мало влияет.
А вот если кто-то из ваших домашних качает торренты, а второй смотрит видео в хорошем качестве на YouTube, то может достигаться лимит по каналу, и онлайн-игре остается небольшой кусок пирога.
Для лучшего распределения трафика по устройствам мы советуем роутеры, которые поддерживают диапазон частот 5 ГГц. Стандарт 2,4 ГГц поддерживает меньше каналов — 13, и на каждом из каналов могут работать несколько устройств, тогда они начинают друг с другом конкурировать. Те, кому интересно узнать все детали, могут почитать всё в подробностях в публикациях на Хабре.
В этом плане, когда у нас есть какая-то общественная точка, 2,4 ГГц там могут очень плохо работать. Поэтому для тех, кто играет онлайн и использует Playkey, рекомендуются каналы с 5 ГГц. «Герцовка» Wi-Fi дает большое преимущество для беспроводной связи.
Как узнать потери у себя?
А.Л.: Можно быстро провести диагностику с помощью бесплатной утилиты MTR
Сначала подключите к компьютеру именно кабель, чтобы проверить, что проблема не на стороне роутера. Наберите в строке ya.ru и обратите внимание на графу Loss%.
Вообще потерь не должно быть, но это скорее исключение, чем правило. 5% потерь на каком-нибудь из узлов — не критично.
Если по кабелю все хорошо, подключите роутер. Может быть, например, такая картинка:
100% потерь на одном из узлов
Желательно иметь под рукой пару роутеров для проверки: если на одном пакеты теряются, а на втором — нет, то будет понятно, что проблема на стороне конкретного роутера. Возможно, нужно обновить его прошивку.
Если же потери происходят на всех тестируемых роутерах, тогда надо задавать вопросы техподдержке провайдера.
Так, ок, что еще можно сделать, чтобы улучшить качество сигнала?
А.Л.: 1. Настроить у роутера приоритезацию
Если, допустим, вы постоянно играете в Witcher 3 или еще во что-то, вы можете просто зайти в настройки роутера и выставить игре максимальный приоритет. Это должно помочь, чтобы игра не «лагала», если у вас в квартире еще кто-то юзает интернет.
2. Попробовать перезагрузить роутер
Роутеры, особенно дешевые, могут копить у себя различные ошибки, создавать потери и задержки. Поэтому перезагрузка роутера сбрасывает какую-то внутреннюю часть: память, подключения. То есть все с чистого листа начинается. И это может помочь. Для дешевых роутеров, у которых плохо написан программный код, существуют разные прошивки, даже не родные, которые могут решать эту проблему.
3. Сказать антивирусу, что клиент онлайн-игры (или клиент Playkey) — это хорошие программы
Антивирусы, которые проверяют интернет, сканируют весь трафик, приходящий на компьютер. Для этого и компьютеру, и антивирусу нужно какое-то время.
Из-за этого могут быть ощутимые задержки. Иногда даже полусекундные, в зависимости от антивируса. Поэтому нужно выставить в настройках защитного ПО «благонадежный» статус конкретной программе.
Может, вам со своей стороны сделать что-то, а не уповать на техническую подкованность каждого игрока
А.Л.: Мы делаем, конечно. Во-первых, у нас есть схема отправки пакетов как по TCP-протоколу, так и по UDP.
- TCP надежнее. В нем ничего не может потеряться: там постоянно «досылаются» пакеты, но если происходит какая-то ошибка, лаг может быть чрезвычайно большим. Он уже измеряется не миллисекундами, а секундами. Сейчас мы используем TCP как запасной вариант, потому что он медленный.
- UDP быстрее, но по нему невозможно «дослать» пакет. Для этого у нас есть механизмы восстановления пакетов: дополнительно к информационным пакетам отправляются пакеты со служебными данными, по которым можно частично или полностью восстановить потерянные компоненты изображения. Такой принцип называется механизмом избыточности.
Как следствие, мы решили использовать UDP-трафик — в стриминге игр скорость играет значительную роль. Проблема с потерями пакетов при UDP решаема, но требует большей ширины канала — то есть, приходится пересылать больше трафика.
И тут возникает ситуация: когда пакет теряется из-за того, что у клиента есть ограничения по каналу — например, провайдер дает 10 мегабит скорости. Нам приходится пересылать еще больше трафика через «бутылочное горлышко». Поэтому мы разработали алгоритм, который мягко поднимает и опускает битрейт, отслеживая диагностику сети у пользователя.
Если вы хотите прямо сейчас проверить свое подключение к интернету и посмотреть, как с ним справится Playkey — используйте промокод GeeksOnline на бесплатные 300 минут игры (работает 24 часа с момента активации и только для новых пользователей). Юзайте здесь на здоровье.
А если играть через 3G и 4G?
А.Л.: С ними все сложнее — при использовании 3G/4G сетей используются еще более мощные алгоритмы восстановления пакетов, то есть, избыточность очень большая (не наша, а на уровне протокола). Изначально подразумевалось, что пакетов теряется немерянное количество.
Любой радиосигнал работает так же. Алгоритмы избыточности пришли из радиофизики. Когда мы, например, въезжаем в тоннель, сигнал становится все хуже. Но если какой-то процент пакета радиосигнала пропал, мы все равно достаточно долго можем слышать голос ведущего.
Сказать, что 3G/4G сети совсем нельзя использовать для онлайн-игр — конечно, нельзя. Но тут еще предстоит очень и очень много работы. В целом перспективнее сразу смотреть в сторону 5G-сетей. Если они справятся с обещаниями скорости в 25 Гбит/с, да еще и смогут снизить задержки при передачи данных в 50 раз, то это откроет для Playkey, как и для всего онлайн-гейминга, все двери разом.