Многие годы вычислительная мощность ПК зависела от вложенных в него инвестиций: чем дороже он был, тем более высокую производительность имел, а значит — мог запускать более требовательные к железу игры. Но поскольку системные требования игр растут из года в год, то и обесцениваются такие инвестиции в железо тоже быстро. Сейчас, к тому же, и вовсе железа дефицит, который лучше не становится, а когда оно есть, то стоит очень и очень немало.
Но решение есть. Используя облачный гейминг, вам не нужно задумываться над тем, насколько слабый или мощный ваш ПК. Вы просто выбираете игру из сервиса и запускаете ее, и команды от вашего контроллера отправляются на сервер, просчитываются в игре, преобразуются в видео- и аудиопотоки, а затем передаются обратно.
Кажется, слишком много действий, долго и сложно? Давайте разбираться.
Качество видео и задержка
При игре на ПК и консолях видео-артефакты на изображении и задержка ввода от нажатия кнопки до выполнения команды на экране сводятся к минимуму. Качество видео напрямую зависит от вычислительной мощности вашего железа и возможностей игрового движка. Задержка же зависит преимущественно от частоты кадров в игре, способа обработки игровой логики движком и времени обработки сигнала монитором.
Учитывая это, не так-то просто определить общее значение задержки для всех игр и аппаратных конфигураций. Однако, для простоты сравнения мы сделаем несколько обобщений, чтобы лучше понять разницу между локальной игрой и игрой в облаке.
Задержка ввода локального компьютера
Один из основных факторов, влияющих на задержку, — количество кадров в секунду, с которым происходит рендеринг игры. В приведенном ниже примере мы используем частоту 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, например, есть сервера в Москве, Новосибирске, Екатеринбурге, Перми. Со временем — и по мере развития сервиса — карта городов будет только расти, а значит — сервис будет все ближе к потребителю. Это, в свою очередь, означает большую оперативность и надежность соединения.
Комментарии (33)
aik
22.03.2022 16:03+6Я пробовал киберпанк и мир танков у gfn. В танках лаг управления был терпимый, в киберпанке уже заметный. Но вот картинка была ниже плинтуса, постоянно плавало качество и лезли артефакты сжатия. Интернет — ртк, 100 мегабит.
Так что я уж лучше локально на минималках играть буду.Usurer
23.03.2022 21:15Я в киберпанк на gfn наиграл пару сотен часов и заметил, что какие-то лаги/артефакты (включая сжатие картинки до неиграбельного вида) появляются в то время, когда можно ожидать большого наплыва игроков - грубо говоря с 16 до 24 часов. А в остальное время играется просто шикарно.
ramiil
22.03.2022 16:08+1Будущее - приватный облачный гейминг в масштабах дома или микрорайона, в крайнем случае, города. Купленный дорогущий пека с видеокартой за 200-300 тысяч рублей простаивает, пока хозяин на работе или спит, то есть как минимум 16 часов в сутки. Если найти товарища, который готов поиграть удалённо на твоём ПК за малую мзду - комп начнёт если не приносить доход, то хотя-бы отбивать часть своей цены.
ovleg
22.03.2022 16:41+1Есть такой сервис уже: drova.io. Но что-то он не сильно популярен.
К тому же, игровой комп обычно свободен днем, когда товарищ тоже работает. А вечером и самому хочется поиграть, а не сдавать ПК в аренду.
azTotMD
22.03.2022 21:59игровой комп обычно свободен днем, когда товарищ тоже работает
часовые пояса? Внутри России, в принципе, возможна очень большая разница
ovleg
22.03.2022 22:09+5В комментарии речь шла про «гейминг в масштабах дома или микрорайона» или города для минимизации задержек. А если в разных часовых поясах, то в чем это лучше того же GFN?
wataru
22.03.2022 18:18С личными ПК проблема — а что делать, если мне вдруг захотелось поиграть, а там сидит тот самый чувак удаленно? Игровой ПК особо не расшаришь между двумя играми. Возможность быть выкинутым из сессии внезапно снижает качество услуги ниже плинтуса. Невозможность выбрасывать удаленных игроков делает сервис слишком неудобным для хозяина компьютера.
dartraiden
22.03.2022 18:52Игровой ПК особо не расшаришь между двумя играми.
Игровую видеокарту можно нарезать равными «кусками»wataru
22.03.2022 19:30Это если ее хватает с большим запасом. Современные игры сжирают все доступные ресурсы и просят еще больше. И GPU и CPU и особонно видео память.
Или тогда надо совсем что-то дорогое и мощное брать и надеятся, что оно отобъется.
AllexIn
23.03.2022 07:54Это не "современные игры" так делают. Это сам принцип работы такой. Хоть кубик вращаться запустите - результат будет тот же.
Если FrameLimit не ставить, то конечно видеокарта будет загружена по максимуму, ведь у неё "нет цели, только путь".
Ставите фреймлимит и внезапно карта оказывается недозагружена. Конечно, если очень хочется загрузить 240 герцовый моник, ни о каком разделении говорить не приходится.andreymal
23.03.2022 11:56Даже с фреймлимитом видеопамять будет сожрана вся. Я вынужден ставить низкие настройки графики в некоторых играх, потому что 4ГБ на моей 1050 Ti катастрофически не хватает даже для средних :(
wataru
23.03.2022 13:33Ну так-то, если вам достаточно 30fps на низких настройках в 720p, то вы покупаете себе условную GTX 1050, которая сильно дешевле условной RTX 3070. Покупать более сильную видеокарту и не нагружать ee, чтобы частично заработать на шаринге назад ее стоимость — весьма странная бизнес модель. Очень много рисков.
Если же вы собираетесь играть в хотя бы 1440p да 60fps на высоких настройках, то, внезапно, уже 3090 будет загружена очень сильно почти во всех современных играх. Плюс, как выше уже сказали, все это еще и в видео память упирается жестко.
andreymal
22.03.2022 17:40+8вашему игровому устройству, будь то ПК или консоль, потребуется 90 мс, чтобы обновиться
Из интереса пробовал снимать свой 60Гц монитор с игрой vkQuake на 240FPS камеру — иногда изменения на мониторе начинают отрисовываться на следующем же кадре после начала движения мышки, то есть задержка около 4-8 мс (плюс ещё 12-16 мс, пока монитор отрисует новый кадр полностью)
С помощью той же камеры выяснил, что играть мне становится сильно некомфортно, когда задержка начинает достигать примерно 50-60 мс
guliverza
23.03.2022 11:53+2То есть 50мс - это уже некомфортная игра. В статье они начинают с каких-то немыслимых 90мс, что уже далеко за гранью. Я не измерял свою отрисовку, но в ваши цифры верю, а вот статье не очень.
Kneqj
22.03.2022 19:51-1Публиковали как-то, что будущие тв будут поставляться с необходимым и пеэс5-6-7 будет не нужна, всунул гейпад в тв, и пытайся играть.
azTotMD
22.03.2022 22:05Существует множество способов возникновения задержки. Небольшой размер игровых пакетов — обычно 55 байт против 1 500 для стандартного Интернет-пакета — приводит к тому, что IP-маршрутизаторы в 27 раз сокращают накладные расходы на их обработку. Меньший размер пакета также приводит к большему числу отброшенных пакетов, поскольку лимиты буферов обычно устанавливаются с учетом количества пакетов, а не их размера.
не понял. Получается маленькие пакеты доходят хуже чем большие? Я поясню, зачем спрашиваю. У меня есть идея онлайн-проекта. И я думаю, отправлять команды/ответы как можно меньшим количеством символов и интерпретировать их или использовать какой-нибудь тяжеловесный протокол типа JSON?
Voiddancer
23.03.2022 06:33Вообще тут имеется ввиду дробление информации когда оно не нужно. Я так понял. Когда вместо отправки одного большого пакета идут 10 маленьких - нагрузка растёт, потому что попакетно роутер работает.
Amokmorg
23.03.2022 07:09обработка большого количества мелких "кусков" может требовать больше обработки, больше действий, больше нагрузки на железо. в данном примере, я так понимаю, вместо 1 вызова для пакета на 1500, вы получаете 28 вызовов для мелких пакетов.
AetherNetIO
22.03.2022 22:10Поверхностно. Задержка и пропускная способность - разые вещи. BDP не рассмотрен. Приоритет ТСР vs. UDP. Про задержку рендеринга в 3 кадра не разъяснили (буферирование для увеличения FPS).
arheops
23.03.2022 00:41Основная проблема с облачным геймингом в том, что большинство провайдеров вообще говоря не обеспечивают качество, которое они заявляют.
Вот недавно пробывал облачный гейминг на Канарских островах, на местной оптике при 150мбит — несмотря на задержку в 20мс+ артефактов качества и задержки не обнаружено, в отличии от «гигабита» в Украине(задержка такая же декларативно).
DeathSentence
23.03.2022 06:58Лично я надеюсь на квантовый Интернет и квантовые компьютеры. Хотя они появятся очень не скоро.
adictive_max
23.03.2022 07:22ИМХО, самая большая проблема с лагами - это нынешняя модель работы с железом, когда всё распихано по трём десяткам дата-центров на весь мир. Поэтому обозначенные на схеме 15ms - это на самом деле очень оптимистичная оценка.
Если дата-центры будут хотя бы в каждом регионе, а лучше в каждом крупном городе, тогда проблемы с дополнительным пингом почти не останется.
aik
23.03.2022 07:26Как минимум, будет вопрос нагрузки на последнюю милю. Ребёнок хочет поиграть, папа покачать торренты, мама — посмотреть ютубы. Плюс ещё тевелизор через тот же кабель работает, к примеру. Ладно если у вас там гигабит можно организовать. Но в наших краях, к примеру, РТК в квартиры приходят двухпарной витой парой.
StPingus
23.03.2022 12:21Облачный гейминг - гадость, как и все SaaS. Хоть какая то польза от санкций будет, люди будут доверять только локальным файлам без зависимостей
Mehtoc
25.03.2022 06:55Очень странные у автора статьи представления о гейминге. Для начала (очень субъективно) большая часть требовательных к задержке игр сейчас как раз мультиплеерные, то есть сетевые командные, а не одиночные для игры на своем пк, так что с лагом сети играем в любом случае.
А вот сейчас объективно 500мс в WoW? С таким лагом можно удалять эту игру. С 200мс там уже трудно. 1000мс в RTS? Наверное, вы имели в виду пошаговые стратегии... (И то с 1000мс будет некомфортно, причем очень). В среднем геймеры ждут задержки не более 100мс от сети, причем во многих разница между 50, 100 и 150 может быть критической.
AllexIn
Это просто не играбельно. Фактчиески вы будете тыкать в одном месте монитора, а клик будет обрабатываться в другом. Мы можем играть при лаге в 1000 мс на глобальную реакцию(условно кликнули, юнит поехал через секунду), но не 1000мс реакции на ввод(ткнули по иконке, отклик через секунду).
Поэтому когда говорят что стратегии не требовательны к лагу - имеется ввиду сетевой лаг между клиентами(отклик UI мгновенный, реакция игры отложенная) и это не применимо к стримингу.
f_chance
Да, там и если открыть исследование, тоже о том и речь, что в целом такая задержка приемлема в случае, когда без разницы, строительство юнита будет происходить на секунду больше или на секунду меньше. В остальном рекомендуется не более 200 мс.