Облачные игры: стресс-тест 5 облачных игровых сервисов плохим интернетом

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

image

Около года назад я публиковала статью «Облачные игры: оценка возможностей сервисов для игры на слабых ПК из первых рук». В ней анализировались плюсы и минусы разных сервисов для облачных игр на слабых ПК. Я в ходе игры тестировала каждый сервис и поделилась в итоге общим впечатлением.

В комментариях к той и другим похожим статьям читатели часто делились впечатлениями о разных игровых сервисах. Нередко встречались противоположные мнения об одном и том же. У кого-то все идеально, а кто-то играть не может из-за лагов и фризов. Тогда у меня возникла идея оценить качество работы этих сервисов в разных условиях — от идеальных до ужасных. Речь идет о качестве сетей, ведь далеко не всегда пользователь может похвастаться быстрым и беспроблемным каналом связи, верно? В общем, под катом — оценка сервисов с симуляцией разного качества работы сети.

В чем вообще проблема?


Как и говорилось выше — в качестве связи. А точнее — в потере пакетов в ходе игры. Чем выше потери, тем больше проблем у геймера, тем меньше он доволен игрой. А ведь редко у кого есть идеальный канал связи вроде оптоволокна до устройства, причем с выделенным, а не пошаренным на всех обитателей многоквартирного дома интернетом.

Для справки — при скорости соединения в 25 Мбит/с для передачи 1 фрейма/кадра нужно 40-50 пакетов данных. Чем больше пакетов теряется, тем менее качественной становится картинка, и тем сильнее заметны лаги и фризы. В особо тяжелых случаях играть становится просто невозможно.

Естественно, сам облачный сервис никак не может повлиять на ширину и стабильность канала пользователя (хотя было бы отлично, конечно). Но зато можно предусмотреть разные способы нивелирования проблем связи. Какие сервисы справляются с проблемой лучше всех — увидим ниже.

Что именно сравниваем?


Обычный ПК (Intel i3-8100, GTX 1060 6 GB, 8GB RAM), GeForce Now (его русскую версию GFN с серверами в Москве), Loudplay, Vortex, Playkey, Stadia. На всех сервисах, кроме Stadia, изучаем качество игры в «Ведьмака». У Google Stadia на момент написания статьи этой игры не было, поэтому пришлось тестировать другую — «Одиссею».

Какие условия и методика тестирования?


Тестируем из Москвы. Провайдер — МГТС, тариф 500 Мбит/с, подключение кабельное, не WiFi. Настройки качества графики в сервисах берем по умолчанию, разрешение — FullHD.

При помощи программы Clumsy моделируем проблемы с сетью, а именно, потери пакетов разного вида и объема.

Равномерные одиночные потери. Это когда теряется всего 1 пакет и потери распределены более-менее равномерно. Так, равномерные потери 10% означают, что на 100 пакетов каждый 10-й теряется, но всегда только 1 пакет. Проблема обычно проявляется при искажениях (экранировании) на канале от клиента до сервера.

Тестируем равномерные потери 5%, 10%, 25%.

Неравномерные массовые потери, когда в какой-то один момент сразу теряется 40-70 пакетов подряд. Такие потери чаще всего возникают при проблемах с сетевым оборудованием (роутерами и т.п.) у пользователя или у провайдера. Могут быть связаны с переполнением буфера сетевого оборудования на линии связи «пользователь — сервер». WiFi с толстыми стенами тоже может вызывать такие потери. Загруженность беспроводной сети из-за наличия большого количества устройств — еще одна причина, очень характерная для офисов и многоквартирных домов.

Тестируем неравномерные потери 0,01%, 0,1%, 0,5%.

Ниже я анализирую все эти кейсы и прикладываю видеосравнение для наглядности. А в конце статьи даю ссылку на сырые, немонтированные видео геймплея из всех сервисов и кейсов — там можно детальнее рассмотреть артефакты, а также техническую информацию (во всех сервисах, кроме Stadia, записаны данные технической консоли; у Stadia таких не нашла).

Поехали!


Ниже — 7 сценариев стресс-теста и видео с таймстампами (видео одно и то же, для удобства в каждом пункте просмотр начинается с нужного момента). В самом конце поста — исходные ролики для каждого из сервисов. Видео мне помог сделать хороший знакомый, за что ему спасибо!

Сценарий №1. Идеальные условия. Нулевые потери в сети


Все, как и должно быть в идеальном мире. Проблем со связью нет, разрывов — ни одного, помех нет, ваша точка доступа — светоч интернета. В таких тепличных условиях почти все участники тестирования показывают себя достойно.


ПК

В каждый сценарий мы взяли кадры из игры на ПК как эталон. Понятно, что на него качество сети никак не влияет, игра запускается на ПК локально. Наличие этих кадров отвечает на вопрос “а чувствуется ли разница при игре в облаке по сравнению с игрой на своем ПК”. В идеальных условиях в нашем случае — не чувствуется у большинства сервисов. Ниже про ПК уже ничего писать не будем, просто запомните, что он есть.

GeForce Now

Все хорошо, картинка четкая, процесс идет гладко, без фризов.

Vortex

Вот Vortex портит наш идеальный мир. У него сразу же начались проблемы — картинка похуже, чем все остальные, плюс хорошо заметны «тормоза». Возможная проблема — игровые сервера расположены далеко от Москвы плюс железо на игровых серверах, похоже, слабее и FullHD вывозит плохо. Во всех тестах Vortex показал себя плохо. Если у кого-то есть положительный опыт игры с Vortex — пишите в комментариях, поделитесь, из какого места играли и насколько хорошо все сложилось.

Playkey

Все отлично, прямо как на локальном ПК. Видимых проблем вроде фризов, лагов и т.п. нет.

Loudplay

Сервис демонстрирует отличную картинку, видимых проблем нет.

Stadia

Игровой сервис от Google работает отлично несмотря на то, что серверов в РФ у него нет, да и вообще официально Stadia не работает в России. Тем не менее, все хорошо. Жаль, конечно, что «Ведьмака» у Stadia не было на момент игры, но что поделать, взяли “Одиссею” —тоже требовательная, тоже про мужика, который рубит людей и животных.

Сценарий №2. Равномерные потери 5%


В этом тесте из 100 пакетов теряется примерно каждый 20-й. Напомню, что для отрисовки одного кадра нужно 40-50 пакетов.


GeForce Now

У сервиса от Nvidia все хорошо, проблем нет. Картинка несколько более замылена, чем у Playkey, но «Ведьмак» по-прежнему играбелен.

Vortex

Здесь все стало еще хуже. Почему — не совсем непонятно, скорее всего, не предусмотрена избыточность или она минимальна. Избыточность — это помехоустойчивое кодирование пересылаемых данных (FEC — Forward Error Correction). Эта технология восстанавливает данные при частичной потере из-за проблем в сети. Реализовать и настроить ее можно по-разному, и, судя по результатам, создатели Vortex в этом не преуспели. Даже с мизерными равномерными потерями играть не получится. В ходе последующих тестов Vortex просто «умер».

Playkey

Все хорошо, особой разницы с идеальными условиями нет. Возможно, помогает то, что сервера компании расположены в том числе и в Москве, откуда проводились испытания. Ну и, возможно, лучше настроена вышеупомянутая избыточность.

Loudplay

Сервис резко стал неиграбельным, несмотря на относительно малые потери пакетов. В чем может быть дело? Предположу, что Loudplay работает с TCP-протоколом. В этом случае, пока нет подтверждения получения пакета, другие пакеты не отправляются, система ожидает подтверждения о доставке. Соответственно, если пакет потерялся, подтверждения о его доставке не будет, новые пакеты не отправятся, картинка встанет колом, конец истории.

А вот если использовать UDP, то подтверждение на получение пакета не понадобится. Насколько можно судить, все прочие сервисы, кроме Loudplay, используют UDP-протокол. Если это не так, поправьте меня, пожалуйста, в комментариях.

Stadia

Все играбельно. Иногда пикселизируется картинка, есть минимальные задержки отклика. Возможно, неидеально отрабатывает помехоустойчивое кодирование, отсюда незначительные артефакты при играбельном в целом потоке.

Сценарий №3. Равномерные потери 10%


Теряем каждый 10-й пакет на сотню. Это уже вызов для сервисов. Чтобы эффективно справляться с такими потерями, нужны технологи по восстановлению и/или повторной отправке потерянных данных.


GeForce Now

У Geforce наблюдаются небольшие просадки в качестве видеопотока. Насколько можно судить, GFN реагирует на проблемы в сети, стараясь их уменьшить. Сервис уменьшает битрейт, то есть количество бит для передачи данных. Так он пытается снизить нагрузку на недостаточно качественную, по его мнению, сеть и сохранить стабильное соединение. И к стабильности вопросов действительно нет, но вот качество видео страдает ощутимо. Видим значительную пикселизацию картинки. Ну а поскольку моделирование предполагает постоянную потерю 10% пакетов, то снижение битрейта не особо помогает, ситуация в норму не приходит.

В реальной жизни картинка, скорее всего, будет не стабильно плохой, а плавающей. Увеличились потери — изображение размылилось; потери сократились — изображение вернулось в норму и так далее. Игровому опыту это не на пользу, конечно.

Playkey

Особых проблем нет. Вероятно, алгоритм детектирует проблемы на сети, определяет уровень потерь и больше упирает на избыточность, а не на снижение битрейта. Получается, при 10% равномерных потерь качество картинки практически не меняется, пользователь такие потери вряд ли заметит.

Loudplay

Неработоспособен, он просто не запустился. В ходе дальнейших тестов ситуация повторилась. Насколько можно судить, этот сервис никак не подстраивается под проблемы с сетью. Возможно, именно TCP-протокол тому виной. Малейшие потери парализуют сервис полностью. Не очень практично для реальной жизни, конечно.

Vortex

Тоже большие проблемы. Играть в таких условиях нельзя, хотя картинка еще есть и персонаж продолжает бежать, правда, рывками. Думаю, дело все в той же плохо реализованной или отсутствующей избыточности. Пакеты теряются часто и никак не восстанавливаются. В итоге качество изображения деградирует до неиграбельного уровня.

Stadia

К сожалению, здесь все плохо. Наблюдается разрыв потока, из-за чего события на экране происходят рывками, играть крайне сложно. Можно предположить, что проблема появилась, как и в случае с Vortex, из-за минимальной избыточности или ее отсутствия. Я проконсультировалась с парой знакомых, которые «в теме», они заявили, что Stadia, скорее всего, дожидается полной сборки кадра. В отличие от GFN, она не пытается спасти положение тотальным понижением битрейта. В итоге артефактов нет, но появляются фризы и лаги (у GFN, наоборот, фризов/лагов меньше, но из-за низкого битрейта картинка совсем непривлекательная).

Остальные сервисы тоже, похоже, не дожидаются полной сборки кадра, заменяя пропавшую часть фрагментом старого кадра. Это хорошее решение, в большинстве случаев пользователь не заметит подвоха (в секунду сменяется 30+ кадров), хотя порой могут возникать артефакты.

Сценарий №4. Равномерные потери 25%


Теряется каждый четвертый пакет. Становится все страшнее интереснее. Вообще, при таком “дырявом” соединении нормальная игра в облаке едва ли возможна. Хотя некоторые участники сравнения справляются, пусть не идеально.


GFN

Проблемы уже весьма заметные. Картинка пикселизирована и замылена. Играть все еще можно, но это уже совсем не то, что предлагал GFN в самом начале. И точно не то, как нужно играть в красивые игры. Красоту-то уже не оценить.

Playkey

Игровой процесс идет неплохо. Плавность есть, хотя картинка немного и страдает. Кстати, слева вверху — цифры, сколько восстанавливается потерянных пакетов. Как видим, восстанавливается 96% пакетов.

Loudplay

Не запустился.

Vortex

Играть нельзя даже при очень большом желании, фризы (остановка изображение, возобновление видеопотока с нового фрагмента) еще заметнее.

Stadia

Сервис практически неиграбелен. Причины уже назывались выше. Ждет сборки кадра, избыточность минимальна, при таких потерях ее не хватает.

Сценарий №5. Неравномерные потери 0,01%.


На 10 000 пакетов 1 раз теряется 40-70 пакетов подряд. То есть теряем примерно 1 из 200 кадров. Бывает, если буфер сетевого устройства переполнен и все новые пакеты просто выбрасываются (дропаются), пока буфер не освободится. Все участники сравнения, кроме Loudplay, такие потери в той или иной степени отработали.


GFN

Картинка совсем немного потеряла качество, стала несколько мутноватой, но все вполне играбельно.

Playkey

Все очень неплохо. Картинка плавная, изображение — хорошее. Играть можно без проблем.

Loudplay

Первые несколько секунд картинка была, герой даже побежал. Но связь с сервером почти сразу же была потеряна. Ох уж этот TCP-протокол. Первая же потеря срубила сервис на корню.

Vortex

Наблюдаются обычные проблемы. Фризы, лаги и вот это все. Играть было бы ну очень сложно при таких условиях.

Stadia

Играбельно. Заметны небольшие просадки, картинка иногда пикселизируется.

Сценарий №6. Неравномерные потери 0,1%


На 10 000 пакетов 10 раз теряется 40-70 пакетов подряд. Получается, что теряем 10 из 200 кадров.

Сразу скажу, что заметные проблемы появились у большинства сервисов. Например, дергается картинка, так что избыточность здесь уже не помогает. То есть положительный эффект в случае использования технологии избыточности есть, но он невелик.

Дело в том, что время реакции на действия пользователя и самой игры — ограничено, видеопоток должен быть непрерывным. Восстановить поток до приемлемого качества нельзя несмотря ни на какие усилия сервисов.

Появляются артефакты (попытка компенсировать потерю пакетов, данных не хватает) и рывки изображения.


GFN

Качество картинки заметно упало, явно понижен битрейт, причем весьма значительно.

Playkey

Справляется лучше — вероятно, потому, что хорошо настроена избыточность, плюс алгоритм битрейта считает потери не очень высокими и не превращает картинку в пикселизированную кашу.

Loudplay

Не запустился.

Vortex

Запустился, но с ужасным качеством картинки. Очень заметны рывки и просадки. Играть при таких условиях вряд ли возможно.

Stadia

Хорошо заметны рывки, это четкий показатель, что избыточности не хватает. Картинка замирает, потом появляются другие кадры, возникает обрыв видеопотока. Играть, в принципе, можно, если есть большое желание и клиническая склонность к самоистязанию.

Сценарий №7. Неравномерные потери 0,5%


На 10 000 пакетов 50 раз теряется 40-70 пакетов подряд. Теряем 50 кадров из 200.

Ситуация класса “форменный пи***ц”. Ваш роутер искрит, у провайдера авария, провода погрызли мыши, но вы все равно хотите играть в облаке. Какой же сервис вам выбрать?


GFN

Играть уже очень сложно, если вообще возможно — очень сильно понижен битрейт. Теряются кадры, вместо нормальной картинки мы видим «мыло». Кадры не восстанавливаются — информации для восстановления не хватает. Если у GFN восстановление вообще предусмотрено. То, как агрессивно сервис пытается спасать положение битрейтом, вызывает сомнения в его готовности работать с избыточностью.

Playkey

Есть искажение кадра, изображение подергивается, то есть повторяются элементы отдельных кадров. Видно, что большая часть “битого” кадра была восстановлена из кусков предыдущего. То есть в новых кадрах есть части старых кадров. Но изображение при этом более-менее четкое. Управлять можно, но в динамичных сценах, например, в драке, где нужна хорошая реакция — сложно.

Loudplay

Не запустился.

Vortex

Запустился, но лучше бы не запускался — играть в это нельзя.

Stadia

Сервис в таких условиях неиграбелен. Причины — необходимость дожидаться сборки кадра и слабая избыточность.

Кто победитель?


Рейтинг, конечно, субъективный. В комментариях можно поспорить. Ну и первое место, конечно, за локальным ПК. Именно из-за того, что облачные сервисы крайне чувствительны к качеству сети, а качество это довольно нестабильно в реальном мире, собственный игровой ПК остается вне конкуренции. Но если его по каким-то причинам нет, то смотрите рейтинг.

  1. Локальный ПК. Ожидаемо.
  2. Playkey
  3. GeForce Now
  4. Google Stadia
  5. Vortex
  6. Loudplay

В качестве вывода еще раз напомню, что играет главную роль в облачном гейминге в плане устойчивости к проблемам на сети:
  • Какой сетевой протокол используется. Для передачи видеопотока лучше всего использовать UDP. Подозреваю, что Loudplay использует TCP, хотя достоверно мне это неизвестно. Но результаты тестирования вы видели.
  • Реализовано ли помехоустойчивое кодирование (FEC — Forward Error Correction, оно же избыточность). Также важен способ ее подстройки под потери пакетов. Как мы увидели, от реализации качество картинки зависит значительно.
  • Как настроена адаптация битрейта. Если сервис спасает ситуацию в первую очередь битрейтом, это сильнее влияет на картинку. Залог успеха — хрупкое равновесие между манипуляциями битрейтом и избыточностью.
  • Как настроена постобработка. Если возникают проблемы, то кадры либо сбрасываются, либо восстанавливаются, либо дособираются фрагментами старых кадров.
  • Близость серверов к геймеру и мощность железа тоже значительно влияют на качество игры, но это верно и для идеальной сети. Если пинг до серверов слишком высок, даже на идеальной сети комфортно не поиграешь. С пингом в данном исследовании мы никак не экспериментировали.

Как и обещала, вот ссылка на сырые видео из разных сервисов во всех кейсах.
Источник: https://habr.com/ru/post/494180/


Интересные статьи

Интересные статьи

Так получилось, что до 2020 года я не имел дело с облаками. Когда же, наконец, углубился в эту тему, то немного потерялся от обилия сервисов, предлагаемых в AWS. Необходимо было соз...
Логирование — важная часть любого приложения. Любая система логирования проходит три основных шага эволюции. Первый — вывод на консоль, второй — запись логов в файл и появление фреймворка для стр...
Существует традиция, долго и дорого разрабатывать интернет-магазин. :-) Лакировать все детали, придумывать, внедрять и полировать «фишечки» и делать это все до открытия магазина.
Данная статья будет интересна как тестировщикам, так и разработчикам, но рассчитана в большей степени на автоматизаторов, которые столкнулись с проблемой настройки GitLab CI/CD для проведения и...