Система для синхронизации работы облачных геймеров

Облачные игры, которые предполагают удаленную игру в видеоигры из облака, стали свидетелями беспрецедентного роста во время карантинов и нехватки игрового оборудования, которые произошли в разгар пандемии COVID-19. Сегодня растущая индустрия охватывает мировой рынок стоимостью 6 миллиардов долларов и более 23 миллионов игроков по всему миру.

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

Вдохновленные этой проблемой, ученые из Массачусетского технологического института и Microsoft Research применили уникальный подход к синхронизации потоков, передаваемых на два устройства. Их система, называемая Ekho, добавляет неслышимые последовательности белого шума к игровому аудио, транслируемому с облачного сервера. Затем он прослушивает эти последовательности в аудиозаписи, записанной контроллером плеера.

Эхо использует несоответствие между этими шумовыми последовательностями для непрерывного измерения и компенсации задержки между потоками.

В реальных игровых сессиях в облаке исследователи показали, что Ekho обладает высокой надежностью. Большую часть времени система может синхронизировать потоки с интервалом менее 10 миллисекунд друг от друга. Другие методы синхронизации приводили к постоянным задержкам более чем на 50 миллисекунд.

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

“Иногда все, что требуется для того, чтобы появилось хорошее решение, – это мыслить вне того, что было определено для вас. Все сообщество было сосредоточено на том, как решить эту проблему путем синхронизации по сети. Синхронизация двух потоков путем прослушивания звука в комнате звучала безумно, но оказалось, что это очень хорошее решение”, – говорит Пуйя Хамаданян, аспирант кафедры электротехники и компьютерных наук (EECS) и ведущий автор статьи, описывающей Ekho.

К Хамаданяну присоединились Дуг Галлатин, разработчик программного обеспечения в Microsoft; Мохаммад Ализаде, доцент кафедры электротехники и компьютерных наук и сотрудник Лаборатории компьютерных наук и искусственного интеллекта (CSAIL); и старший автор Кришна Чинталапуди, главный научный сотрудник Microsoft Research. Документ будет представлен на конференции ACM SIGCOMM.
В нерабочее время

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

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

Многие подходы пытаются синхронизировать часы с помощью обмена сообщениями ping-pong, когда устройство отправляет сообщение ping на сервер, который отправляет ответное сообщение pong. Устройство подсчитывает, сколько времени требуется для возврата сообщения, и сокращает это значение вдвое, чтобы рассчитать сетевую задержку.

Но путь по сети, скорее всего, асимметричен, поэтому для того, чтобы сообщение достигло сервера, может потребоваться больше времени, чем для обратного сообщения. Следовательно, этот метод ненадежен и может привести к ошибке в сотни миллисекунд. Люди обычно могут воспринимать задержку между потоками, как только она достигает 10 миллисекунд.

“Итак, если что-то происходит на экране, мы хотим, чтобы это произошло в течение 10 миллисекунд и на контроллере”, – объясняет Хамаданян.

Он и его коллеги решили попробовать прослушать аудио из игры, чтобы синхронизировать эти отдельные потоки.

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

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

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

Модуль Ekho-Estimator добавляет псевдошумовые последовательности к игровому звуку. Когда он получает записанный игровой звук от контроллера, он прослушивает эти маркеры и пытается выровнять потоки. Это позволяет ему точно рассчитать задержку между потоками.

Эхо-оценщик отправляет эту информацию в модуль Эхо-компенсации, который либо пропускает несколько миллисекунд звука, либо добавляет несколько миллисекунд тишины к игровому звуку, отправляемому сервером, который синхронизирует потоки.

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

Эхо ограничило задержку между потоками менее чем до 10 миллисекунд почти в 87 процентах случаев во время трансляций. Ни один другой метод, протестированный командой, не смог сократить эту задержку менее чем до 50 миллисекунд.

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

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

“Использование неслышимого белого шума в качестве своего рода “хронометриста” – отличный пример того, как нестандартное мышление может привести к неожиданным результатам”, – говорит Ализаде. “Этот метод может улучшить пользовательский опыт не только в облачных играх, но и потенциально в любом сценарии потоковой передачи с нескольких устройств”.