Облачные игры обречены из-за физики?
8 июня 2022 г.На протяжении многих лет вычислительная мощность ПК зависела от вложенных в него инвестиций. Чем дороже он был, тем выше его производительность, чтобы он мог запускать более требовательные к оборудованию игры. Но по мере того, как требования к игровой системе ежегодно возрастают, такие инвестиции в оборудование также быстро обесцениваются. Более того, в дефиците железо, которое не становится лучше. Но когда становится лучше, это стоит дорого.
Но есть решение. Вам не нужно думать о том, насколько слабый или мощный ваш компьютер с облачными играми. Вы выбираете игру из сервиса и запускаете ее. Команды с вашего контроллера отправляются на сервер, обрабатываются в игре, преобразуются в видео- и аудиопотоки, а затем отправляются обратно.
Кажется, что слишком много работы, слишком долго и слишком сложно? Давайте узнаем.
При анализе этой темы я использовал «Cloud Gaming» и «Облачные игры ничего не значат, если у вас их нет ping» в качестве вдохновения.
Качество видео и задержка
При игре на ПК и консолях видеоартефакты на изображении и задержка ввода от нажатия кнопки до выполнения команды на экране сведены к минимуму. Качество видео напрямую связано с вычислительной мощностью вашего оборудования и возможностями вашего игрового движка. Задержка в основном зависит от частоты кадров в игре, способа обработки логики игровым движком и времени обработки сигнала монитором.
Сложно определить общее значение задержки для всех игр и аппаратных конфигураций. Однако я сделаю несколько обобщений, чтобы лучше понять разницу между локальными играми и играми в облаке для простоты сравнения.
Локальная задержка ввода в игре
Одним из основных факторов, влияющих на задержку, является количество кадров в секунду, с которым обрабатывается игра. При 60 FPS вы видите каждый кадр 16,7 мс.
Итак, что я здесь вижу:
* Пользователь нажимает кнопку на контроллере, после чего на консоль/ПК отправляется сигнал. 10 мс — приблизительное число, потому что задержка сигнала зависит от конкретного контроллера, проводного или беспроводного и т. д. * Логика игры сначала рассчитывается, а затем передается на дисплей на основе полученных данных. Оптимизированный игровой движок для современных игр обычно занимает 3 кадра. * Средняя задержка ввода для дисплея составляет около 30 мс.
Итак, вашему игровому устройству, будь то ПК или консоль, потребуется 90 мс для обновления вашей команды ввода. Это 5 кадров или почти десятая доля секунды.
Задержка ввода в облачных играх
Задержка ввода в облачных играх отличается, поскольку учитывается гораздо больше процессов. Это уже не так просто:
* Как и в случае с локальными играми, все начинается с того, что пользователь должен отправить команду ввода. * Он принимается игровым оборудованием пользователя (ПК, консоль или смартфон), а затем передается на облачные серверы с нужной игрой. Обратите внимание, что этот шаг будет выполняться быстрее, если вашим контроллером является игровое устройство, как в случае со смартфонами. В этом аспекте весьма интересным был опыт Stadia, чей контроллер был напрямую подключен к роутеру, минуя промежуточное звено - ПК. * Игровой движок получает входную команду, после чего просчитывается и рендерится игровая логика. * Нарисованный сигнал отправляется на кодировщик, который кодирует материал в подходящий аудио- и видеокодек, а затем отправляется обратно пользователю. * Результирующий аудио- и видеокодек декодируется, обрабатывается и отправляется на монитор. * Монитор выполняет внутреннюю обработку сигнала и выводит изображение на экран.
Если сложить все компоненты, задержка составит около 130 мс.
А теперь давайте обсудим результаты "Облачные игры: архитектура и производительность», авторы которого утверждают, что максимальная задержка взаимодействия для многих игр должна быть не более 200 мс, а для игр, требующих быстрой реакции — не более 100 мс.
Некоторые выводы из этого исследования:
* Шутеры и файтинги должны иметь задержку менее 100 мс, так как они особенно требовательны к скорости отклика. * Ролевые игры, такие как World of Warcraft, должны иметь задержку не более 500 мс. Они больше не чувствительны к реакции, но по-прежнему требуют некоторой реакции на события игрового мира и надежные действия, такие как лечение персонажа или применение заклинаний. * RTS еще меньше задерживают и иногда допускают до 1000 мс. Для таких игроков больше не критично выполнять все свои действия немедленно. Например, игроки могут заниматься строительством без постоянного обновления игры.
Учитывая это, увеличение задержки в 1,5 раза по сравнению с локальным компьютером не выглядит критичным. Но тогда почему первое впечатление от облачных игр обычно негативное?
И чаще всего дело в интернет-подключении пользователя. А то, что ваши 100 Мбит/с - это не обязательно 100 Мбит/с.
Далее давайте посмотрим, что может помешать облачным геймерам достичь оптимальной задержки ввода.
От сервера к пользователю
Вообще говоря, Интернет- и IP-маршрутизация по умолчанию не гарантируют надежную доставку данных или качество обслуживания. У них также есть некоторые другие ограничения, из-за которых постоянно поддерживать низкий пинг сложно.
Существует множество способов возникновения задержки. Небольшой размер игровых пакетов (55 байт) по сравнению со стандартными интернет-пакетами (1500) позволяет IP-маршрутизаторам сократить свои накладные расходы на обработку на 27. Меньший размер пакета также отбрасывает больше пакетов, поскольку ограничения буфера обычно устанавливаются на основе количества пакетов, а не их размер.
Другие проблемы с задержкой возникают из-за того, как IP-сети рассчитывают маршрутизацию пакетов. Основной протокол маршрутизации в Интернете (BGP) может создавать круговые пути по сети с большим количеством переходов, чем необходимо, и создавать разные пути для входящего и исходящего трафика. Кроме того, когда речь идет о пиринге или передаче трафика в другие сети, BGP не учитывает пропускную способность принимающей сети, производительность в реальном времени или производительность сети. Он может выбирать разные точки пиринга для входящего и исходящего трафика. Это может привести к разным результатам производительности и низкой частоте пинга, особенно для геймеров, подключенных к сетям с разными провайдерами.
Пиринг требует понимания сквозных путей от хост-сервера до геймеров, которые его используют. Таким образом, для обеспечения наилучшего игрового процесса требуется сетевая аналитика в реальном времени. Понимая модели игрового трафика и то, как трафик проходит через Интернет и другие сети, игровые компании могут оптимизировать сквозные потоки трафика между своими серверами, сетями распространения контента (CDN), Интернетом и конечными пользователями.
Компании, занимающиеся облачными играми, все чаще строят свои магистральные сети для подключения пограничных и основных центров обработки данных, в которых размещены игровые серверы. Это обеспечивает более детальное сквозное управление, обеспечивая наилучшую производительность игровых приложений. Тогда Интернет действует только как «последняя миля» для геймеров.
Эта структура взаимосвязи между центрами обработки данных обычно состоит из маршрутизаторов и оптоволоконных магистралей. IP- и оптический уровни сети должны быть скоординированы, чтобы эти соединения были детерминированными. В современных программно-определяемых сетях (SDN) эту роль выполняет центральный программный контроллер. Аналитика также встроена в систему. Таким образом, в отличие от BGP, мы знаем производительность сквозного маршрута, включая точки пиринга. Контроллер настраивает маршрутизаторы и оптические каналы в соответствии с определенными политиками производительности и соглашениями об уровне обслуживания.
Скорость интернет-соединения
Что происходит с сигналом на пути от сервера к нам домой, мы примерно разобрались. Теперь вернемся к более приземленным вещам - интернету в нашей квартире.
Скорость интернета, указанная в договоре на оказание услуг, является максимально возможной скоростью, которую выделяет оператор на канал. Он будет актуален для вас, если вы единственный во всем доме пользуетесь интернетом, и на пути сигнала нет препятствий. Ситуация кажется довольно утопической. Вы можете измерить реальную скорость вашего Интернета, например, с помощью speedtest.net.
Однако системные требования для интернет-соединения GFN от 15 Мбит/с для 720p при 60 FPS и от 25 Мбит/с для 1080p при 60 FPS. Что касается MY.GAMES Cloud — 10 Мбит/с для запуска игр в 720p при 30 FPS, 25 Мбит/с при 120 FPS.
В идеальном мире, где скорость интернета всегда соответствует нашим потребностям, пользователю передавался бы несжатый сигнал с высоким битрейтом, обеспечивающий сверхвысокое качество изображения, неотличимое от того, что воспроизводится на локальном оборудовании. Но из-за ограничений пропускной способности во всем мире необходимо снизить битрейт, сохранив при этом низкую задержку и высокое качество видео. Как вы, наверное, уже поняли, это непростая задача.
Сведение задержки к минимуму вводит ограничения на видеопотоки. В этом случае B-кадры не могут или не должны использоваться, потому что тогда задержка значительно увеличится. Другие части потока никоим образом не должны быть сложными, чтобы кодировщик и декодер могли кодировать и декодировать с высокой частотой кадров и разрешением в режиме реального времени.
При этих ограничениях увеличение битрейта решает проблему качества. Однако это усугубляет проблему доставки, поскольку в большинстве домов по всему миру по-прежнему нет доступа к дешевым, стабильным интернет-соединениям с высокой пропускной способностью. И дело даже не в Full HD и 7-8 Мбит/с. Это около 30+ Мбит/с. И это число только увеличивается с увеличением частоты кадров и разрешения.
Еще один способ решить эту проблему — использовать более эффективный кодек. На сегодняшний день H.264 является наиболее распространенным кодеком. Оптимально использовать в облачных игровых сервисах, не зависящих от своего выделенного оборудования для декодирования сигналов. Это связано с тем, что большинство современных устройств оснащены микросхемами, способными декодировать определенные профили H.264 на лету. Однако предположим, что у пользователя есть устройство с более новыми микросхемами, поддерживающими декодирование более производительных кодеков (например, H.265 HEVC). В этом случае качество может быть значительно улучшено при той же полосе пропускания.
Из точных требований к пропускной способности можно догадаться, что если домашний интернет не всегда подходит для игр через облако, то мобильный вообще не подходит из-за технических особенностей. Однако мы ждем распространения 5G, так как ожидается улучшение качества облачного гейминга.
Сигнал от роутера к ПК
Интернет-сигнал неизбежно имеет потери, в том числе и на "последней миле" - уже внутри вашей квартиры или дома.
Оптимальное подключение, которое устраняет некоторые потери, осуществляется напрямую через кабель Ethernet к вашему ПК, которым вы пользуетесь в одиночку. Однако такой разъем есть далеко не у всех моделей ноутбуков. В общем, WiFi-роутер уже давно стал стандартным решением для дома и офиса, позволяющим подключаться к одной сети с нескольких устройств и при этом не путаться в проводах.
Однако при использовании WiFi-роутеров есть несколько нюансов:
* Как мы уже говорили ранее, чем больше людей подключено к сети, тем медленнее будет скорость соединения конкретного человека. * Большинство интернет-маршрутизаторов работают на частоте 2,4 ГГц, на той же частоте, что и устройства Bluetooth, такие как компьютерные контроллеры и гарнитуры. На эту частоту влияет даже обычная микроволновка. Выходом может стать подключение к WiFi на других частотах — например, 5 ГГц. Но не все устройства его поддерживают, поэтому сначала нужно убедиться, что ваш ПК и ваш роутер могут с ним работать. * Сигнал от роутера неизбежно «затухает» при перемещении по квартире и столкновении с различными препятствиями: потолками, стенами, дверями, мебелью. Сигнал будет намного лучше, если ваш компьютер находится в пределах «прямой видимости» маршрутизатора.
Подключение по кабелю Ethernet лучше, чем беспроводное подключение через WiFi.
Проблемы с ПК
Итак, высокий пинг и высокая задержка связаны с плохим качеством соединения между ПК и игровыми серверами. И хотя часть проблем решается только на стороне интернет-провайдера и облачного игрового сервиса, все же есть некоторые вещи, которые пользователь может сделать, чтобы сделать игру проще.
Например, если соединение оставляет желать лучшего, можно сбросить настройки роутера или переподключить кабель, по которому вы подключаетесь к интернету. В случае с роутером также следует на время отключить от сети другие устройства: телефоны, телевизор, «умную» технику и устройства, подключенные по Bluetooth. Наконец, следует отключить загрузку файлов, закрыть ненужные вкладки в браузере и вообще максимально снизить нагрузку на операционную систему, что может снизить пропускную способность сети. Помните, что все это снижает скорость игры в облаке.
Уменьшение задержки ввода можно частично устранить, увеличив частоту кадров, с которой работает игра. Естественно, это также повысит требования к кодированию и декодированию потоков и потребность в еще большей пропускной способности, поскольку потребуется больше данных.
Покупка монитора с более быстрой обработкой сигнала или «игровым режимом» также уменьшит проблему, сэкономив несколько миллисекунд задержки ввода. Но имейте в виду, что "игровой режим" снизит качество изображения, поскольку обработка сигнала будет выполняться реже.
Заключение
А как насчет облачных игр? Так ли уж плоха задержка? Все зависит от того, кого вы спросите. Но его будущее определенно выглядит многообещающим, и вот почему.
Во-первых, большинство геймеров выбирают игры, которые обычно даже не замечают дополнительной задержки ввода. Что касается более требовательных проектов (соревновательных или с современной реалистичной графикой), то облачным играм еще предстоит пройти долгий путь.
Однако доля запросов, связанных с задержкой ввода, заметно снизилась. Это значит, что качество интернета растет, и с его дальнейшим ростом и развитием 5G проблем с сетью будет еще меньше.
Второй фактор — геолокация сервера. Это решают сами сервисы.
Оригинал