Многие годы вычислительная мощность ПК зависела от вложенных в него инвестиций: чем дороже он был, тем более высокую производительность имел, а значит — мог запускать более требовательные к железу игры. Но поскольку системные требования игр растут из года в год, то и обесцениваются такие инвестиции в железо тоже быстро. Сейчас, к тому же, и вовсе железа дефицит, который лучше не становится, а когда оно есть, то стоит очень и очень немало.
Но решение есть. Используя облачный гейминг, вам не нужно задумываться над тем, насколько слабый или мощный ваш ПК. Вы просто выбираете игру из сервиса и запускаете ее, и команды от вашего контроллера отправляются на сервер, просчитываются в игре, преобразуются в видео- и аудиопотоки, а затем передаются обратно.
Кажется, слишком много действий, долго и сложно? Давайте разбираться.
Качество видео и задержка
При игре на ПК и консолях видео-артефакты на изображении и задержка ввода от нажатия кнопки до выполнения команды на экране сводятся к минимуму. Качество видео напрямую зависит от вычислительной мощности вашего железа и возможностей игрового движка. Задержка же зависит преимущественно от частоты кадров в игре, способа обработки игровой логики движком и времени обработки сигнала монитором.
Учитывая это, не так-то просто определить общее значение задержки для всех игр и аппаратных конфигураций. Однако, для простоты сравнения мы сделаем несколько обобщений, чтобы лучше понять разницу между локальной игрой и игрой в облаке.
Задержка ввода локального компьютера
Один из основных факторов, влияющих на задержку, — количество кадров в секунду, с которым происходит рендеринг игры. В приведенном ниже примере мы используем частоту 60 FPS, при которой каждый кадр будет виден в течение 16,7 мс. Обратите внимание, что многие современные игры на консолях работают на частоте 30 FPS, что делает каждый кадр видимым в течение 33,3 мс.
Итак, что мы здесь видим:
Пользователь нажимает кнопку на контроллере, после чего происходит отправка сигнала на консоль/ПК. 10 мс — это приблизительное число, ведь задержка сигнала зависит от многих факторов: от конкретного контроллера, является ли он проводным или беспроводным и т. д.
На основе полученных данных игровая логика сначала рассчитывается, а затем передается на дисплей. В оптимизированном игровом движке для современных игр это обычно занимает три кадра.
Средняя задержка ввода для дисплея составляет около 30 мс. Не путать с частотой обновления дисплея или временем отклика, которые всегда происходят быстрее.
Итак, вашему игровому устройству, будь то ПК или консоль, потребуется 90 мс, чтобы обновиться в соответствии с вашей командой ввода. Это 5 кадров или почти десятая часть секунды.
Обратите внимание, что если бы мы выполняли рендеринг со скоростью 30 FPS, нам пришлось бы добавить еще 50 мс, ведь тогда мы видим каждый кадр в течение вдвое большего времени:
Задержка ввода облачного гейминга
Задержка ввода в облачных играх — это совсем другая история, ведь необходимо учитывать гораздо больше процессов. Как показывает блок-схема ниже, все уже не так просто:
Как и в локальной игре, все начинается с того, что пользователь должен послать команду ввода;
Она принимается игровым оборудованием пользователя (ПК, консоль или мобильный телефон), а затем передается на облачные серверы с нужной игрой. Заметим, что этот шаг будет происходить быстрее тогда, когда ваш контроллер и есть игровое устройство — как в случае мобильных телефонов. В этом аспекте довольно интересным был опыт Stadia, контроллер которой был напрямую связан с роутером, минуя промежуточное звено — непосредственно ПК;
Игровой движок получает входную команду, после чего рассчитывается и отрисовывается игровая логика;
Отрисованный сигнал передается энкодеру, который кодирует материал в подходящий аудио- и видеокодек, который затем передается обратно пользователю;
Полученный аудио- и видеокодек декодируется и рендерится, а затем передается на монитор;
Монитор выполняет внутреннюю обработку сигнала и выводит изображение на экран.
Если сложить все составляющие, задержка окажется порядка 130 мс — либо 180 мс в случае 30 FPS по аналогии с предыдущими расчетами.
А теперь приведем результаты исследования, авторы которого утверждают, что максимальная задержка взаимодействия для многих игр должна составлять не более 200 мс, а для игр, требующих быстрого реагирования, — не более 100 мс.
Некоторые конкретные сценарии:
Шутеры и файтинги должны иметь задержку менее 100 мс, так как они особенно требовательны к оперативному реагированию;
Ролевые игры, такие как World of Warcraft, должны иметь задержку не более 500 мс. Они уже не так чувствительны к быстроте реакции, но все же требуют некоторой оперативности отклика на события игрового мира и надежного выполнения действий, таких как лечение персонажа или наложение заклинаний.
RTS еще более снисходительны к задержке и иногда допускают уже до 1000 мс. Таким игрокам уже не столь важно, чтобы все их действия выполнялись немедленно. Так, строительство зданий можно производить и без постоянного обновления игры.
Принимая это во внимание, кажется, что увеличение задержки в 1,5 раза по сравнению с локальным компьютером не выглядит критично. Но почему же тогда первое впечатление от облачного гейминга обычно отрицательное?
А дело чаще всего в пользовательском подключении к Интернету. И в том, что ваши 100 Мбит/с — вовсе не обязательно в самом деле 100 Мбит/с.
Далее мы рассмотрим, что же может помешать пользователям облачного гейминга достигнуть оптимальной задержки ввода.
От сервера к пользователю
Вообще, Интернет и IP-маршрутизация по умолчанию не гарантируют надежную доставку данных и качество обслуживания. Кроме того, они имеют ряд других ограничений, из-за которых постоянное поддержание низкого пинга становится непростой задачей.
Существует множество способов возникновения задержки. Небольшой размер игровых пакетов — обычно 55 байт против 1 500 для стандартного Интернет-пакета — приводит к тому, что IP-маршрутизаторы в 27 раз сокращают накладные расходы на их обработку. Меньший размер пакета также приводит к большему числу отброшенных пакетов, поскольку лимиты буферов обычно устанавливаются с учетом количества пакетов, а не их размера.
Другие проблемы задержки возникают из-за того, как IP-сети рассчитывают маршрутизацию пакетов. Основной протокол маршрутизации в Интернете, BGP, может создавать кольцевые пути по сети с большим количеством переходов, чем необходимо, и даже создавать разные пути для входящего и исходящего трафика. Кроме того, когда речь идет о пиринге или передаче трафика в другие сети, BGP не учитывает пропускную способность канала принимающей сети, работу в реальном времени или производительность сети, и может выбрать неодинаковые точки пиринга для входящего и исходящего трафика. Это может привести к очень разным результатам производительности и низкой скорости пинга — особенно для геймеров, подключенных к сетям разных провайдеров.
Для пиринга необходимо иметь представление о сквозных путях от хост-сервера до геймеров, которые его используют. Таким образом, для обеспечения наилучшего игрового опыта требуется сетевая аналитика в режиме реального времени. Понимая модели игрового трафика и то, как трафик проходит через Интернет и другие сети, игровые компании могут оптимизировать сквозные потоки трафика между своими серверами, сетями распространения контента (CDN), Интернетом и конечными пользователями.
Компании, занимающиеся облачными играми, все чаще создают собственные магистральные сети для соединения пограничных и основных центров обработки данных, в которых размещаются игровые серверы. Это позволяет осуществлять более детальный сквозной контроль, обеспечивая наилучшую производительность игровых приложений. Интернет в таком случае выступает для геймеров лишь в качестве «последней мили».
Такая структура межсетевого взаимодействия между центрами обработки данных обычно состоит из маршрутизаторов и оптоволоконных магистралей. Для обеспечения детерминированности этих соединений необходимо координировать работу IP- и оптического уровня сети. В современных программно-определяемых сетях (SDN) эту роль выполняет центральный программный контроллер. В систему также встроена аналитика, поэтому, в отличие от BGP, здесь нам известна производительность сквозного маршрута, включая пиринговые точки, а маршрутизаторы и оптические каналы настраиваются контроллером в соответствии с конкретными политиками производительности и SLA.
Скорость Интернет-соединения
Что происходит с сигналом по пути от сервера до наших домой, мы примерно разобрались. Вернемся теперь к более приземленным вещам — к Интернету в нашей квартире.
Итак, действительно: обозначенная в договоре о предоставлении услуг цифра — это максимально возможная скорость, которая выделяется оператором на канал. То есть, она будет релевантна для вас в случае, если во всем доме Интернетом пользуетесь вы один, а на пути сигнала нет никаких помех. Ситуация кажется довольно утопичной, не так ли?
Фактическую скорость своего Интернета можно измерить, например, при помощи 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-кабель:
И беспроводное соединение:
Пинг немного вырос, а скорость скачивания упала — не критично, но заметно.
Если проблемы все еще есть на ПК
Итак, высокий пинг и высокая задержка возникают из-за плохого качества соединения между ПК и игровыми серверами. И хотя часть проблем решается только на стороне Интернет-провайдера и сервиса клауд-гейминга, все еще остаются некоторые вещи, которые может сделать и сам пользователь, чтобы облегчить себе игру.
Так, если соединение оставляет желать лучшего, можно перезагрузить роутер или переподключить кабель, через который вы подключаетесь к Интернету. В случае роутера также стоит на время отключить от сети другие устройства: телефон, телевизор, «умную» технику, а также устройства, подключенные по Bluetooth. Наконец, стоит отключить загрузку файлов, закрыть лишние вкладки в браузере и вообще максимально снизить нагрузку на операционную систему, которая может снижать пропускную способность сети — помним, что все это «отъедает» часть скорости от облачного гейминга.
Снижение задержки ввода может быть частично устранено путем увеличения частоты кадров, на которой работает игра. Естественно, это увеличит и требования к кодированию и декодированию потоков, а также потребность в еще более высокой скорости полосы пропускания, поскольку станет необходимо передавать больше данных.
Покупка монитора с более быстрой обработкой сигнала или «игровым режимом» также уменьшит проблему, сэкономив несколько миллисекунд задержки ввода. Но имейте в виду, что «игровой режим» снизит качество изображения, так как обработка сигнала будет производиться реже.
Вместо заключения
Так что же касательно облачного гейминга — так ли все плохо с задержками? Все зависит от того, кого вы спросите, — но будущее его точно выглядит многообещающим, и вот почему.
Во-первых, большинство геймеров выбирает такие игры, что обычно и не замечает дополнительной задержки ввода. Что касается более требовательных проектов — соревновательных либо с современной реалистичной графикой — облачному геймингу пока еще есть куда стремиться.
Однако, что касается российского рынка, по сравнению с 2017 годом доля обращений, связанных с задержкой ввода, сократилась заметно. Это означает, что качество Интернета растет, а с дальнейшим его ростом и развитием 5G проблем с сетью будет становиться еще меньше.
Второй фактор — геолокацию серверов — решают сами сервисы. У MY.GAMES Cloud, например, есть сервера в Москве, Новосибирске, Екатеринбурге, Перми. Со временем — и по мере развития сервиса — карта городов будет только расти, а значит — сервис будет все ближе к потребителю. Это, в свою очередь, означает большую оперативность и надежность соединения.