Когда стали появляться новости про стриминговые сервисы игр Google Stadia, PlayStation Now и другие, я задумался (хотя это произошло довольно поздно) — а есть ли возможность сделать такой стриминговый сервис для самого себя, у себя дома? Поискал немного в интернетах и понял, что способ, оказывается, есть, притом существует очень давно. Ребята-умельцы прозвали свое детище Moonlight, оно позволяет запускать игры на удаленном компьютере и играть в них буквально с микроволновки, лишь бы у этой микроволновки был хороший интернет канал. Это, конечно, назвать облачным геймингом сложно, но всё-таки Moonlight позволит поиграть с телефона в компьютер.
Давайте разберемся, что это за Moonlight.
Перед тем, как все объяснять, предлагаю сначала определиться с наименованиями, которые я буду использовать в статье:
- Сервер — компьютер, на котором происходит запуск игры или другого приложения.
- Клиент — компьютер/планшет/мобильный телефон, на котором эта игра будет воспроизводиться.
- Стриминг — потоковое вещание изображения. Происходит это как на Twitch.tv или Youtube, только строго между двумя устройствами.
Почему не TeamViewer?
Есть прекрасное приложение для контроля удаленного рабочего стола — TeamViewer. Приложение очень неплохое для своих задач, но в эти задачи не входят игры. Дело в том, что при использовании TeamViewer в игре у вас будет отсутствовать управление с клавиатуры, что не позволит насладиться игрой, в которой эта клавиатура требуется.
Хочется добавить еще несколько слов про качество изображения. Если на Teamviewer качество настраивается в простом интерфейсе и не сможет показать вам 4к картинку, то в интерфейсе Moonlight вы сможете гибко настроить и битрейт, и разрешение, и количество кадров в секунду, что позволит подстроиться под ширину интернет канала, как у сервера, так и у клиента.
Но отбрасывать в сторону этот сервис мы не будем, в дальнейших статьях мы рассмотрим и это приложение.
Установка Moonlight.
Минимальные требования к серверу:
- Видеокарта NVIDIA GeForce GTX/RTX выше 600+ (GT серия, а также видеокарты от AMD не поддерживают NVIDIA GameStream).
- Программное обеспечение: NVIDIA GeForce Experience (GFE) версии 2.1.1 или выше.
- Дисплей разрешения 720p ( ~ 1280×720 или больше, соединенный с видеокартой GeForce).
- Интернет соединение с исходящей скоростью 5 мбит/сек и выше. (Если Вы хотите играть через интернет).
Если Ваш компьютер не входит в минимальные требования, то к сожалению ничего не выйдет. Может помогут танцы с бубном, но это проходит строго по индивидуальному сценарию.
1. Установка для игры в локальной сети
Начнем с самой базовой установки для того, чтобы играть по локальной сети (например играть с телефона в World of Warcraft, находясь в соседней комнате, по Wi-FI).
Порядок установки следующий:
- Устанавливаем NVIDIA GeForce Experience (далее GFE).
- В GFE нажимаем «настройки» (шестерёнка справа сверху), выбираем SHIELD и ставим галочку рядом с GAMESTREAM.
- Запускаем клиент Moonlight (об установке которого немного ниже) и убеждаемся, что клиент подключен к той же сети, что и сервер.
- В большинстве случаев Ваш сервер появится в списке автоматически через несколько секунд. Нажмите на него, чтобы начать соединение.
- На Вашем клиенте Moonlight появится окошко с авторизацией и PIN-кодом, который надо будет ввести в всплывающем окошке приложения GeForce Experience.
- На этом этапе, если всё пошло по плану, вы уже можете начать играть удаленно со своего клиента в локальной сети!
- При возникновении проблем по ходу инструкции, посмотрите пункт 4 этого гайда или обратитесь к справке с описанием возможных решений (она на английском).
2. Установка сервиса для игры через интернет
Теперь переходим к самому интересному — это к установке Moonlight для игры с любого устройства откуда угодно. (Я так, кстати, в Divinity Original Sin 2 с телефона играл, сидя в кафешке — в приложении есть наэкранный геймпад, что вполне удобно).
Для игры через интернет разработчики приложения советуют пройти целиком через пункт 1 инструкции — то есть сначала установить соединение внутри сети. Но я пошел немного другим путем и смог добиться работы и без прохождения него. Оценивайте по своим знаниям и умениям.
Итак, я напишу порядок установки при отсутствии возможности подключения к компьютеру в локальной сети:



- Устанавливаем NVIDIA GeForce Experience.
- Нажимаем «настройки» (шестерёнка справа сверху), выбираем SHIELD и ставим галочку рядом с GAMESTREAM.
- Устанавливаем на сервер Moonlight Internet Hosting Tool последней версии.
- Запускаем Moonlight Internet Streaming Tester. При успешной проверке возможности стриминга через интернет в результате вы получаете IP адрес сервера, который надо будет ввести в приложении-клиенте.
- Заходим в клиент, выбираем «Add PC Manually» (Ctrl+N).
- Вводим ранее полученный IP адрес сервера.
- На Вашем клиенте Moonlight появится окошко с авторизацией и PIN-кодом, который надо будет ввести в окне приложения GeForce Experience.
- Если всё пошло по плану — у вас появится доступ к списку игр.
- Если какой-то игры нет в списке — обратите внимание на пункт инструкции «Если в списке игр нет какой-то игры». Он ниже, пункт 5 инструкции.
3. Установка клиента Moonlight
Установка клиента игры довольно таки простая. Для игры по локальной сети достаточно просто скачать приложение, подключиться к сети, к которой уже подключен сервер, и выполнить пункты 5, 6 из инструкции 1.
Для игры через интернет требуется приложение-клиент Moonlight и выполнение пунктов 5,6,7 из инструкции 2.
Скачать приложение можно по ссылкам:
Для компьютера: Windows, macOS, linux,
IOS(устройства Apple),
Android.
На сайте разработчика есть клиенты для очень интересных устройств, с которыми я не сталкивался и рассказывать про них не буду (например для Raspberry Pi), но вы можете поэкспериментировать с ними и поделиться своим опытом в комментариях к этой статье.
Для Windows существует много клиентов, в том числе и Portable версия Moonlight для игры на устройствах, где устанавливать приложение запрещено, например на работе. То есть в теории вы можете поиграть в GTA V с работы. Но на работе, вообще-то, работают.
3. 1 Системные требования для клиентов:
- Android: Из обязательных требований для игры на Android — это версия Android выше 4.1 (Jelly Bean). Стоит учитывать, что «флагманы» и устройства с хорошими процессорами значительно уменьшат количество подвисаний и увеличат качество работы, так как железо сможет справляться аппаратно с поставленными задачами.
- iOS: Из требований: только версия iOS 8.0 и выше.
- Компьютер (PC): Windows 7+, macOS 10.11+ или Linux. На Вашем компьютере должна быть поддержка аппаратного декодирования H.264, в ином случае этим будет занят процессор (это не плохо, но в зависимости от процессора, могут возникнуть проблемы с плавностью работы).
Компьютеры, вышедшие позже 2010-х, в принципе будут справляться с поставленной задачей, в ином случае могут возникнуть проблемы с плавными 60 FPS.
3. 2 Требования для интернет соединения и роутеров.
Если речь идет о потоке видео данных, то понятное дело, что это очень затратно для трафика и скорости интернета. Так что, очевидно, Вам должно хватить скорости на уровне сервера и на уровне клиента, чтобы все шло плавно и гладко.
Как говорят разработчики, 5 мбит/сек — достаточная скорость для минимальной работы программы (но я снижал ещё больше). И всё же вы можете крутить в настройках битрейт.
3. 3 Настройка битрейта
С битрейтом всё просто, больше битрейта — лучше качество, но и требуется выше скорость интернет-соединения. Для определения настроек обратимся к следующей таблице (для кодека H.264):
Разрешение | Кадры/с | Битрейт мбит/с |
720p, 1280 x 720 | 30 | 1,5 – 4 |
720p, 1280 x 720 | 60 | 2,3 – 4 |
1080p, 1920 x 1080 | 30 | 3 – 6 |
1080p, 1920 x 1080 | 60 | 4,5 – 9 |
1440p, 2560 x 1440 | 30 | 6 – 13 |
1440p, 2560 x 1440 | 60 | 9 – 18 |
4K/2160p, 3840 x 2160 | 30 | 13 – 34 |
4K/2160p, 3840 x 2160 | 60 | 20 – 51 |
Советую Вам пользоваться этой таблицей и выбирать наивысшее значение битрейта для получения хорошей картинки. Если будет подвисать, плавно снижайте уровень битрейта и разрешения до уровня, при котором все будет проходить плавно.
По умолчанию для передачи данных используется видеокодек H.264. Он поддерживается большинством устройств. Но существует и другой кодек, с более высокой степенью сжатия без существенного изменения качества по сравнению с H.264, — это HEVC H.265. Этот кодек поддерживается не всеми устройствами, и передача закодированного изображения начинается, только если оба устройства поддерживают этот кодек. Если он активен, то при расчете битрейта значения в среднем можно уменьшить на 25%.
4. Проблемы при установке сервиса для игры через интернет
В связи с тем, что в сетевой инфраструктуре не всё так просто, вероятно, что с первого раза что-то не получится. Поэтому я напишу несколько своих рекомендаций для решения возникших проблем.
4. 1 Проблемы с определением IP адреса
Для того, чтобы определить Ваш IP адрес, Вы можете зайти на 2ip.ru или например на whatsmyip.org, там большими цифрами написан Ваш IP адрес. (Он в формате 111.111.111.111)
4. 2 Приложение Moonlight Streaming Tester зависло или Internet GameSteam connectivity check failed.
Проблема может крыться в закрытых портах. При включении режима GAMESTREAM приложение Nvidia GeForce Experience самостоятельно создаст правила для портов в брандмауэре Windows для его корректной работы. Если у Вас нет установленной сторонней программы — FireWall и/или антивируса, в котором он есть, то я рекомендую проверить настройки брандмауэра и/или открыть порты вручную.
Для этого переходим: Панель управления -> Брандмауэр Защитника Windows -> Дополнительные параметры, открываем вкладку «Правила для входящих подключений» и ищем записи, связанные с SHIELD.
Если они присутствуют, но выключены, включаем, если они отсутствуют, то создаем правила вручную. Жмем справа «Создать правило» — «Для порта» — «Протокол TCP» — «Определенные локальные порты» — «Разрешить подключение» — «Выбираем профиль (если не важно -выбираем все)» — И даём имя.
Так делаем отдельно для TCP портов: 47984, 47989, 48010
И для следующих UDP портов: 47998, 47999, 48000, 48002, 48010.
Заходим в «Дополнительные параметры» Вводим нужные порты в правила для TCP. Также потом надо поступить и для UDP.
Можно ещё проще: Открыть командную строку от имени администратора (ввести cmd в открытом меню «Пуск») и ввести туда следующие строки:
netsh advfirewall firewall add rule name="GameStream UDP" dir=in protocol=udp localport=5353,47998-48010 action=allow
netsh advfirewall firewall add rule name="GameStream TCP" dir=in protocol=tcp localport=47984,47989,48010 action=allow
Когда правила созданы и проверены, запускаем Moonlight Streaming Tester и проводим очередную проверку. Заодно можете зайти на https://canyouseeme.org/ и проверить порт 47984 и 47989, если все в порядке, значит всё работает.
С другой стороны, если у Вас имеется роутер, то проблема может быть в нем. Смотрим модельку, пишем в гугле святые слова «Port Forwarding» + имя роутера и ищем инструкцию, чтобы открыть порты, указанные немного выше. Почему так лениво? Потому что роутеров очень много и для всех я инструкцию написать не смогу. Ищем и пробуем.
Аналогично надо сделать для проверки наличия поддержки протоколов UPnP. И включить, конечно же, если выключено.
4. 3 Не могу выйти из игры/ приложения /остановить стриминг
Для того чтобы закончить стриминговую сессию (но при этом оставить приложение функционировать), вам нужно нажать комбинацию Ctrl+Shift+Alt+Q на Windows или кнопку возвращения домой на Android/iOS.
Далее вы можете выбрать приложения и нажать Quit Session, чтобы закончить выполнение приложения на сервере.
4. 4 Немного очевидного
Для работоспособности всех этих способов я напишу некоторые очевидные вещи:
- Компьютер-сервер должен быть включен.
- А ещё он должен быть подключен к интернету.
- Вам должно хватать скорости соединения.
Но если решения, указанные здесь, Вам не помогли, придется идти на сайт разработчика и работать с английским языком. Наиболее часто возникающие проблемы и их решения описаны тут, а если совсем труба, то можно написать разработчикам в их Discord, там помогут.
5. Что делать, если нужного приложения нет в списке?
Всё достаточно просто:
- Зайдите в GeForce Experience.
- Нажимаем «настройки» (шестерёнка справа сверху) выбираем SHIELD.
- В окошке нажимаем «ДОБАВИТЬ» и указываем путь к файлу .exe
5. 1 Как получить управление удаленным рабочим столом в Moonlight?
Для этого надо воспользоваться инструкцией выше но указать в Moonlight следующий путь:
C:\windows\system32\mstsc.exe
Заключение
В заключение хочется сказать, что я, конечно же, описал не все возможности программы и проблемы, которые могут возникнуть. Если у Вас такие проблемы возникли, можете написать в комментариях к этой записи, я постараюсь найти решение для Вас. Но я хочу напомнить, что я не разработчик приложения и не имею отношения к вашему провайдеру, так что моя помощь не всесильна.