Для геймеров это значит, что уже совсем скоро они смогут окончательно перестать тратить деньги на обновление железа и запускать мощные игры на слабых компьютерах. Выгодно ли это остальным участникам экосистемы? Рассказываем, почему облачный гейминг увеличит их заработки и как мы создали технологию, позволяющую легко зайти на перспективный рынок.
Издатели, разработчики, производители ТВ и операторы связи: зачем им всем облачный гейминг
Игровые издатели и разработчики заинтересованы в том, чтобы максимально быстро доставить свой продукт наибольшему количеству игроков. Сейчас, по нашим данным, 70% потенциальных покупателей не доходят до игры — они не дожидаются загрузки клиента и установочного файла весом в десятки гигабайт. При этом 60% пользователей, судя по их видеокартам, в принципе не могут запускать мощные игры (AAA-уровня) на своих компьютерах в приемлемом качестве. Облачный гейминг сможет решить эту проблему — он не только не снизит заработки издателей и разработчиков, но поможет им нарастить платящую аудиторию.
В сторону облачного гейминга сейчас смотрят и производители ТВ и ТВ-приставок. В эпоху умных домов и голосовых ассистентов им приходится все сильнее конкурировать за внимание пользователя, и игровой функционал — главный способ привлечь это внимание. Со встроенным облачным геймингом их клиент сможет запускать современные игры прямо на телевизоре, оплачивая услугу производителю.
Еще один потенциально активный участник экосистемы — операторы связи. Их способ повышать доходы — предоставлять дополнительные услуги. Гейминг — как раз одна из таких услуг, которую операторы уже активно внедряют. Ростелеком запустил тариф «Игровой», Akado продает доступ к нашему сервису Playkey. Речь идет не только об операторах широкополосного интернета. Мобильные операторы в связи с активным распространением 5G тоже смогут сделать облачный гейминг своим дополнительным источником дохода.
Несмотря на радужные перспективы, зайти на рынок не так просто. Всем существующим сервисам, включая продукты технологических гигантов, пока не удалось до конца преодолеть проблему «последней мили». Это значит, что из-за несовершенство сети непосредственно в доме или квартире скорости интернета у пользователя не хватает для корректной работы облачного гейминга.
Взгляните, как затухает WiFi-сигнал, распространяясь от роутера по квартире
Игроки, давно присутствующие на рынке и обладающие мощными ресурсами, постепенно движутся к решению этой проблемы. Но запустить свои облачные игры с нуля в 2019 году — это потратить много денег, времени и, возможно, так и не создать эффективное решение. Чтобы помочь всем участникам экосистемы развиваться на бурно растущем рынке, мы разработали технологию, которая позволяет быстро и без высоких затрат запустить свой облачный игровой сервис.
Как мы сделали технологию, которая позволит легко запустить свой облачный игровой сервис
Свою технологию облачного гейминга Playkey начал разрабатывать еще в 2012 году. В 2014 году состоялся коммерческий запуск, а к 2016-му сервисом хотя бы раз воспользовались 2,5 млн игроков. На протяжении всей разработки мы видели интерес не только со стороны геймеров, но и со стороны производителей ТВ-приставок и операторов связи. С NetByNet и «Эр-Телеком» мы даже запустили несколько пилотных проектов. В 2018-м мы решили, что у нашего продукта возможно B2B-будущее.
Разрабатывать для каждой компании свой вариант интеграции облачного гейминга, как мы делали в пилотных проектах, проблематично. Каждое такое внедрение занимало от трех месяцев до полугода. Почему? У всех разное оборудование и операционные системы: кому-то облачный гейминг нужен на приставку на Android, а кому-то — как iFrame в веб-интерфейсе личного кабинета для стриминга на компьютеры. К тому же у всех разный дизайн, биллинг (отдельный дивный мир!) и другие особенности. Стало ясно, что нужно или увеличивать команду разработки в десять раз, или делать максимально универсальное коробочное B2B-решение.
В марте 2019 года мы запустили RemoteClick. Это программное обеспечение, которое компании могут установить на свои сервера и получить работающий облачный игровой сервис. Как это будет выглядеть для пользователя? Он увидит на привычном сайте кнопку, позволяющую запустить игру в облаке. При нажатии игра запустится на сервере компании, а пользователь увидит стрим и сможет играть удаленно. Вот как это могло бы выглядеть в популярных сервисах цифровой дистрибуции игр.
Активная борьба за качество. И пассивная тоже.
Как RemoteClick справляется с многочисленными техническими барьерами, мы сейчас расскажем. Облачный гейминг первой волны (например, OnLive) погубило низкое качество интернета у пользователей. Тогда, в 2010 году, средняя скорость интернет-подключения в США составляла всего 4,7 Мбит/с. К 2017 году она выросла уже до 18,7 Мбит/с, а скоро повсеместно появится 5G и наступит новая эра. Однако несмотря на то, что в целом инфраструктура готова к облачному геймингу, остается уже упомянутая проблема «последней мили».
Одна ее сторона, которую мы называем объективной: у пользователя действительно есть проблемы с сетью. Например, оператор не выделяет заявленную максимальную скорость. Или используется WiFi 2,4 ГГц, зашумленный микроволновкой и беспроводной мышью.
Другая сторона, которую мы называем субъективной: пользователь даже не подозревает, что у него есть проблемы с сетью (не знает, что не знает)! В лучшем случае он уверен, что раз оператор продает ему тариф на 100 Мбит/с, у него интернет 100 Мбит/с. В худшем — понятия не имеет, что такое роутер, а интернет делит на синий и цветной. Реальный случай из касдева.
Синий и цветной интернет.
Но обе части проблемы «последней мили» решаемы. В RemoteClick мы используем для этого активные и пассивные механизмы. Ниже — подробный рассказ о том, как они справляются с препятствиями.
Активные механизмы
1. Эффективное помехоустойчивое кодирование пересылаемых данных a.k.a избыточность (FEC — Forward Error Correction)
При передаче видеоданных от сервера к клиенту используется помехоустойчивое кодирование. С его помощью мы восстанавливаем исходные данные при их частичной потере из-за проблем в сети. Что делает наше решение эффективным?
- Скорость. Кодирование и декодирование выполняются очень быстро. Даже на «слабых» компьютерах операция занимает не более 1 мс для 0,5 МБ данных. Таким образом, кодирование и декодирование почти не добавляют задержки при игре через облако. Важность трудно переоценить.
- Максимальный потенциал восстановления данных. А именно, соотношение избыточного объема данных и потенциально возможного для восстановления объема. В нашем случае соотношение = 1. Допустим, нужно передать 1 Мб видео. Если мы при кодировании добавим 300 Кб дополнительных данных (это называется избыточность), то в процессе декодирования для восстановления 1 исходного мегабайта нам понадобится всего лишь любой 1 Мб из суммарных 1,3 Мб, которые отправил сервер. Другими словами, мы можем потерять 300 Кб и все равно восстановить исходные данные. Как видно, 300 / 300 = 1. Это максимально возможная эффективность.
- Гибкость в настройке дополнительного объема данных при кодировании. Мы можем настраивать отдельный уровень избыточности для каждого видеокадра, который нужно передать по сети. Например, замечая проблемы в сети, мы можем повысить или понизить уровень избыточности.
Играем через Playkey в Doom на Core i3, 4 GB RAM, MSI GeForce GTX 750.
2. Досылка данных
Альтернативный способ бороться с потерями — запрашивать данные повторно. Например, если сервер и пользователь находятся в Москве, то задержка при передаче не превысит 5 мс. При таком значении клиентское приложение успеет запросить и получить от сервера потерянную часть данных незаметно для пользователя. Наша система сама решает, когда применять избыточность, а когда — досылку.
3. Индивидуальная настройка передачи данных
Чтобы выбрать оптимальный способ борьбы с потерями, наш алгоритм анализирует сетевое подключение пользователя и настраивает систему передачи данных индивидуально под каждый случай.
Он смотрит:
- тип подключения (Ethernet, WiFi, 3G и т.д);
- используемый диапазон частот WiFi — 2,4 ГГц или 5 ГГц;
- силу сигнала WiFi.
Если ранжировать подключения по потерям и задержке, то надежнее всех, конечно, провод. Через Ethernet потери редки, а задержки на «последней миле» крайне маловероятны. Затем идет WiFi 5 ГГц и только потом WiFi 2,4 ГГц. Мобильные подключения вообще хлам, ждем 5G.
При использовании WiFi система автоматически настраивает адаптер пользователя, переводя его в наиболее подходящий для использования в облаке режим (например, отключение энергосбережения).
4. Индивидуальная настройка кодирования
Стриминг видео существует благодаря кодекам — программам сжатия и восстановления видеоданных. В несжатом виде одна секунда видео легко перевалит за сотню мегабайт, а кодек сокращает эту величину на порядок. У нас на вооружении стоят кодеки H264 и H265.
H264 — самый популярный. Аппаратно работу с ним поддерживают все основные производители видеокарт уже на протяжении десятка лет. H265 — дерзкий молодой преемник. Аппаратно его начали поддерживать лет пять назад. Кодирование и декодирование в H265 требует больше ресурсов, зато качество сжатого кадра заметно выше, чем на H264. И без увеличения объема!
Какой кодек выбрать и какие параметры кодирования выставить для конкретного пользователя, исходя из его «железа»? Нетривиальная задача, которая решается у нас автоматически. Умная система анализирует возможности оборудования, выставляет оптимальные параметры кодировщика и выбирает декодер на стороне клиента.
5. Компенсация потерь
Не хотели это признавать, но даже мы не безупречны. Некоторые данные, потерянные в недрах сети, восстановлению не подлежат и дослать мы их не успеваем. Но и в этом случае есть выход.
Например, регулировка битрейта. Наш алгоритм постоянно контролирует объем пересылаемых данных от сервера к клиенту. Он фиксирует каждую недостачу и даже предсказывает возможные будущие потери. Его задача — вовремя заметить, а в идеале и предсказать, когда потери достигнут критического значения и начнут создавать заметные пользователю помехи на экране. И скорректировать в этот момент объем пересылаемых данных (битрейт).
Еще мы используем инвалидацию несобранных кадров и механизм ссылочных кадров в видеопотоке. Оба инструмента уменьшают число заметных артефактов. То есть даже при серьезных нарушениях в передаче данных изображение на экране остается приемлемым, а игра — играбельной.
6. Распределённая отправка
Распределенная по времени отправка данных тоже повышает качество стриминга. Как именно распределять, зависит от конкретных показателей в сети, например, наличия потерь, пинга и других факторов. Наш алгоритм анализирует их и выбирает оптимальный вариант. Иногда распределение в промежутке нескольких миллисекунд уменьшает потери в разы.
7. Уменьшение задержки
Одной из ключевых характеристик при игре через облако является задержка. Чем она меньше, тем играть комфортнее. Задержку условно можно поделить на две части:
- сетевую или задержку на пересылку данных;
- задержку системы (снятие управления на стороне клиента, захват изображения на сервере, кодирование картинки, вышеперечисленные механизмы адаптации данных к отправке, сбор данных на клиенте, декодирование изображения и его отрисовка).
Сетевая зависит от инфраструктуры и бороться с ней проблематично. Если провод сгрызли мыши, танцы с бубном не помогут. А вот задержку системы можно сократить в разы и качество облачного гейминга для игрока изменится кардинально. Помимо уже упомянутого помехоустойчивого кодирования и персонализированных настроек мы используем еще два механизма.
- Быстрое получение данных с устройств управления (клавиатура, мышь) на стороне клиента. Даже на слабых компьютерах для этого хватает 1-2 мс.
- Отрисовка системного курсора на клиенте. Указатель мыши обрабатывается не на удаленном сервере, а в клиенте Playkey на компьютере пользователя, то есть без малейших задержек. Да, на реальное управление в игре это не влияет, но главное здесь — человеческое восприятие.
Отрисовка курсора без задержки в Playkey на примере Apex Legends
С использованием нашей технологии при сетевой задержке 0 мс и работе с видеопотоком в 60 FPS задержка всей системы не превышает 35 мс.
Пассивные механизмы
По нашему опыту, многие пользователи плохо представляют, как их устройства подключаются к интернету. В интервью с игроками выяснилось, что некоторые не знают, что такое роутер. И это нормально! Вы не обязаны знать устройство двигателя внутреннего сгорания, чтобы ездить на автомобиле. Не стоит требовать от пользователя знаний сисадмина, чтобы он мог поиграть.
Однако некоторые технические моменты все-таки важно донести, чтобы игрок мог самостоятельно убрать барьеры на своей стороне. И мы ему помогаем.
1. Индикация поддержки WiFi 5 ГГц
Выше мы писали, что видим стандарт Wi-Fi — 5 ГГц или 2,4 ГГц. А еще мы знаем, поддерживает ли сетевой адаптер пользовательского устройства саму возможность работы на 5 ГГц. И если да, то рекомендуем использовать этот диапазон. Самостоятельно поменять частоту пока не можем, так как не видим характеристики роутера.
2. Индикация силы сигнала WiFi
У некоторых пользователей сигнал WiFi может быть слабым, даже если интернет работает хорошо и, кажется, на приемлемой скорости. Проблема вскроется именно при облачном гейминге, который подвергает сеть реальным испытаниям.
На интенсивность сигнала влияют препятствия — например, стены — и помехи от других устройств. Те же микроволновки излучают немало. В результате возникают потери, незаметные при работе в интернете, но критичные для игры через облако. В таких случаях мы предупреждаем пользователя о помехах, предлагаем переместиться ближе к роутеру и выключить «шумные» устройства.
3. Индикация потребителей трафика
Даже если с сетью все хорошо, другие приложения могут потреблять слишком много трафика. Например, если параллельно с игрой в облаке запущено видео на Youtube или загружаются торренты. Наше приложение вычисляет воришек и предупреждает о них игрока.
Страхи из прошлого — развенчиваем мифы о клаудгейминге
Облачные игры как принципиально новый способ потребления игрового контента пытаются пробиться на рынок вот уже почти десять лет. И как в случае с любой инновацией, их история — это череда маленьких побед и громких поражений. Неудивительно, что за многие годы облачный гейминг оброс мифами и предрассудками. На заре развития технологии они были обоснованны, однако сегодня совершенно беспочвенны.
Миф 1. Картинка в облаке хуже, чем в оригинале — будто бы играешь по YouTube
Сегодня в технически продвинутом облачном решении картинки оригинала и облака практически идентичны — невооруженным глазом отличия не найти. Индивидуальная настройка энкодера под оборудование игрока и комплекс механизмов для борьбы с потерями закрывают этот вопрос. На качественной сети нет ни размытия кадров, ни графических артефактов. Мы даже принимаем в расчет разрешение. Нет смысла стримить картинку в 1080p, если игрок использует 720p.
Ниже два видео Apex Legends с нашего канала. В одном случае — это запись геймплея при игре на PC, в другом — через Playkey.
Apex Legends на PC
Apex Legends на Playkey
Миф 2. Нестабильное качество
Состояние сети действительно непостоянно, но эта проблема решена. Мы динамически меняем настройки энкодера под качество сети пользователя. А постоянно приемлемый уровень FPS поддерживаем особыми приемами захвата изображения.
Как это работает? У игры есть 3D-движок, с помощью которого строится 3D-мир. Но пользователю показывается плоское изображение. Чтобы он видел его, для каждого кадра создается картинка памяти — своеобразная фотография, как этот 3D-мир видится из определенной точки. Эта картинка в закодированном виде хранится в буфере видеопамяти. Мы захватываем ее из видеопамяти и передаем в энкодер, который уже расшифровывает ее. И так с каждым кадром, друг за другом.
Наша технология позволяет захватывать и декодировать картинку в одном потоке, что и повышает FPS. А если эти процессы вести параллельно (довольно популярное на рынке облачного гейминга решение), то энкодер постоянно будет обращаться к захвату, забирать новые кадры с задержкой и, соответственно, передавать их с задержкой.
Видео в верхней части экрана получено с использованием технологии захвата и декодирования в одном потоке.
Миф 3. Из-за лагов в управлении буду «раком» в мультиплеере
Задержка в управлении в норме составляет несколько миллисекунд. И обычно она незаметна для конечного пользователя. Но бывает виден крошечный разлад между движением мышки и перемещением курсора. Он ни на что не влияет, но создает негативное впечатление. Описанная выше отрисовка курсора непосредственно на устройстве пользователя устраняет этот недостаток. В остальном общая задержка системы в 30-35 мс настолько мала, что ни игрок, ни его соперники по матчу ничего не замечают. Исход боя решают только навыки. Доказательство ниже.
Стример нагибает через Playkey
Что дальше
Облачный гейминг — уже реальность. Playkey, PlayStation Now, Shadow — это работающие сервисы со своей аудиторией и местом на рынке. И как многие молодые рынки, облачный гейминг будет стремительно расти в ближайшие годы.
Один из сценариев, который кажется нам наиболее вероятным — появление собственных сервисов у издателей игр и операторов связи. Кто-то разработает собственные, кто-то воспользуется готовыми коробочными решениями, вроде RemoteClick. Чем больше игроков на рынке, тем быстрее облачный способ потребления игрового контента станет мэйнстримом.
Комментарии (8)
Nidere
24.04.2019 16:23А на деле такая игра приносит боль и страдания.
При подключении по кабелю на скорости 350мбит сервис выдавал инпут-лаг от 50 до 100 мс.
Вроде немного, но соревновательный мультиплеер сразу говорит «до свидания» — в Overwatch нормально поиграть так и не удалось.
Саппорт, разумеется, ничем, кроме советов в духе «перезагрузите роутер», помочь не смог.
Ztare
24.04.2019 17:13Наша технология позволяет захватывать и декодировать картинку в одном потоке, что и повышает FPS.
А тут можно подробнее, мне как программисту интересно каким образом это происходит? Как так выходит что именно один поток дает выше FPS?lykovaleksey
25.04.2019 09:09При многопоточности необходимо синхронизировать потоки, соответственно при рассинхронизации время между рендерингом кадра в потоке игры и его захватом для кодирования может скакать произвольно, хоть и в минимальном времени. Если же работаем в одном потоке, то захватывать картинку можно сразу же после ренедринга, тем самым уменьшая задержку. А FPS как следствие увеличится FPS в случае если потоки сильно не синхронхрониизировались.
Почему все делают в разных, потому что основной поток игры — это стороннее приложение и влезть в его поток, ничего при этом не сломав в самой игре, не тривиальная задача. Надеюсь настанет тот день, разработчики игры будут себе интегрировать некий SDK от разработчиков облачных платформ, на подобии того, как сейчас разработчики игр интегрируют к себе Steam.Ztare
25.04.2019 13:34Спасибо, я посчитал времена длительности кадров и дошло. Многопоточность нужна если позволительно отставание на пару кадров и при этом операции обработки длятся суммарно дольше кадра. Если есть возможность все успеть быстрее одного кадра, то от многопоточности толку ноль, один вред.
Sergey-S-Kovalev
26.04.2019 20:27Для геймеров это значит, что уже совсем скоро они смогут окончательно перестать тратить деньги на обновление железа и запускать мощные игры на слабых компьютерах.
Затраты никуда не денутся и перейдут с покупки ПК раз в пять лет на подписку, которая в пятилетнем разрезе почти всегда выходит дороже, об этом прямо сразу говорится:Выгодно ли это остальным участникам экосистемы? Рассказываем, почему облачный гейминг увеличит их заработки и как мы создали технологию, позволяющую легко зайти на перспективный рынок.
Сейчас, по нашим данным, 70% потенциальных покупателей не доходят до игры — они не дожидаются загрузки клиента и установочного файла весом в десятки гигабайт.
Шта? Купить, и не поиграть, потому что долго загружается? Вы там чего курите?!
А можно примеры «мощных игр (AAA-уровня)» которые не пойдут на старенькой GTX1060 на настройках выше среднего?
Мобильные операторы в связи с активным распространением 5G тоже смогут сделать облачный гейминг своим дополнительным источником дохода.
Вы же про шахматы говорите, да?
В 2018-м мы решили, что у нашего продукта возможно B2B-будущее.
Дайте угадаю, из тех 2.5кк людей кто это хоть раз запустил, второй раз уже не вернулись 99.9+% людей?
Тогда, в 2010 году, средняя скорость интернет-подключения в США составляла всего 4,7 Мбит/с. К 2017 году она выросла уже до 18,7 Мбит/с, а скоро повсеместно появится 5G и наступит новая эра.
Опять не адаптированная под российские реалии статья, которая как бы намекает.
С использованием нашей технологии при сетевой задержке 0 мс и работе с видеопотоком в 60 FPS задержка всей системы не превышает 35 мс.
Что бы получить 0 в сетевой задержке, нужно сидеть в ЦОДе, где вертится сервер. Накидывайте еще 5-15 тех кто в Мск и 50-170 для тех кто за МКАДом. 60мс минимальный порог для стрелялок, при 90 играть можно тока в серию Battlefield 3+ из-за компенсации сетевых задержек на уровне сетевой части движка игры. При 110+мс в nontarget стрелялки играют только очень упорные люди, либо мазохисты.
В одном случае — это запись геймплея при игре на PC, в другом — через Playkey.
Прогнать видео через енкодер ютуба что бы показать разницу в картинке это нужно смочь. Вы смогли, в обоих одинаково плохо.
На самом деле я негодую больше не из-за самой концепции облачного гейминга, а из-за того, что по общепринятым обычаям все это будет в лучшем случает только в Мск.
Zalechi
Удивительно. Познакомившись с сервисом Стадиа после презентации гугла, я ликая в душе радовался, что наконец появились такие технологии. Однако только, что почитав Вашу статью, я узнаю, что на рынке уже порядка 10 лет присутствуют технологии облачного гейминга и развиваются. Спасибо Вам и остальным, что вы есть. Теперь буду держать палец на пульсе и пристально следить за всеми участниками на рынке, что бы в течении средней перспективы сделать свой выбор. Думаю пол года, так как есть личная проблема и предпочтения:
— на данный момент из доступных девайсов это планшет
— предпочитаю мультиплеер шутеры и конкретно мой эйм — это CS GO и Quake Champions, Quake Live(ещё) в первую очередь и игры посвящённые тематике автоспорта.
Так как я совсем недавно узнал, что облачный гейминг не то, что скоро появится, а уже существует, то я могу начать анализировать и выбрать приемлемую для себя платформу, и конечно надо закрыть проблему с устройством на котором я буду ей пользоваться. Так как с планшета поиграть в любимые мне игры, даже в ралли автоспорт будет крайне неудобно. Ведь играя с планшета манипулировать тормозами, дросселем акселерации и ручником это ад.
Если можно, прокомментируете свой взгляд на технологию Гугл в виде сервиса Стадиа. Изучили ли Вы её, имеете ли какие-то представления, как они решают проблемы кодирования и задержек? Если да, то какие преимущества и недостатки можно выделить у Вашего проекта и проекта Стадиа? В Презентации Гугл я не понял как они решают перечисленные Вами выше проблемы, но понял, что доступ к их сервису потребует минимальной задержки не превышающей порядка 50 мс в сети. В этой же статье я познакомился с гораздо более детальным описанием, как работает ваш протокол и все выглядит очень добротно.
lykovaleksey
К сожалению, техническую информацию Google не раскрывает. Например пока непонятно как они будут встраивать в Chrome, да есть WebRTC, но для облачных игры он в текущем виде не подходит, то что мы реализовали значительно улучшают пользовательский опыт, но этого нет WebRTC. Поддержку плагинов они закрыли и NPAPI уже не в моде. Либо они расширят возможности WebRTC, либо всё спрячут в браузере — время покажет. В любом случае очень ждём появление на рынке крупных игроков, они двигают это мир немного быстрее, чем стартапы.
Маленький пинг — это серьёзный вызов, необходимо большое присутствие в точках, где будет предоставляться сервис. У Google есть свои дата центры, думаю они их задействуют по полной, а виртуальную машину с GPU уже можно арендовать.