Лучшее self-hosted решение для стриминга игр и не только для Windows

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

TL;DR: Apollo + Moonlight

С появлением handheld консолей на Android, Windows и SteamOS и контролера для телефона возникает желание поиграть на этих девайсах в игры с ПК. Самым простым решением будет использовать Steam Link, но из-за постоянных отвалов и фризов стало ясно что решение не самое оптимальное.

Какие есть альтернативы?

Самое популярное — связка клиентского приложения Moonlight и сервера Sunshine. Довольно удобное решение, так как нет ограничений на железо ПК, задержка для соло игр незаметна, а подключение (зачастую) стабильно.

Личный опыт

В связке Moonlight и Sunshine я прошел RDR2 на Nintendo Switch (и да, для него тоже есть клиент), The Legend of Zelda: Breath of the Wild на Legion Go и Doom Eternal на Steam Deck. Самый печальный опыт, ожидаемо, был на Nintendo Switch, так как он имеет довольно слабый Wi-FI модуль и Moonlight не имеет доступа к GPU, но играл я с удовольствием, хоть и картинка иногда сыпалась.

Performance Overlay клиента Moonlight на Redmi Note 10 Pro
Performance Overlay клиента Moonlight на Redmi Note 10 Pro

Чего не хватает?

То, чего реально не хватало - автоматическое создание виртуальных экранов, и подключение к ним. К примеру, Nintendo Switch и Steam Deck имеют нестандартное для экранов ПК разрешение (1280x720 и 1280×800 соответственно), а Steam Deck Oled вообще имеет возможность выводить HDR картинку!

Одним из решений были IddSampleDriver и скрипты которые триггерятся на подключение/отключение клиента к серверу. По моему опыту, это работает нестабильно, иногда после отключения девайса виртуальный монитор остается и иногда монитор ПК не включается обратно. Самой лучшей альтернативой для меня стал форк Sunshine - Apollo.

Apollo

  1. Встроенная поддержка виртуальных экранов с поддержкой HDR.

  2. Система разрешений для клиентов.

  3. Синхронизация буфера обмена между клиентом и сервером (Работает только в андроид клиенте Artemis, который является форком Moonlight).

Apollo при подключении девайса создает виртуальный экран, со значениями высоты\ширины\фреймрейта клиента и поддержкой HDR при наличии таковой на клиенте, что позволяет растягивать контент под нестандартные экраны (к примеру, если подключаться с клиента с разрешением экрана 16:10).

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

Проверенный мною сетап

Сейчас я использую Apollo на ПК с Windows 11, Ryzen 7500F и RX7700XT, такой конфигурации достаточно для комфортного стриминга большинства игр.

Как клиенты я использовал все свои девайсы - Android телефон, Oculus Quest 3, Macbook, Steam Deck, Nintendo Switch Oled. Если у устройства есть поддержка 5Ghz Wi-Fi - можно пробовать его в роли клиента. Но даже для девайсов со старым модулем Wi-Fi есть клиенты, к примеру Playstation Vita, Nintendo 3DS.

В роли роутера у меня выступает Xiaomi AX3000T, прошитый на OpenWRT.

Никаких дополнительных конфигураций Apollo не требовал, все работает из коробки.

Artemis на Quest 3
Artemis на Quest 3
Moonlight на MacBook
Moonlight на MacBook

Что еще можно?

К Apollo можно подключаться извне локальной сети, по инструкции из Wiki, подключать отдельный девайс как полноценный дополнительный монитор к ПК.

Как установить?

Установка сервера подробно описана в документации Sunshine, она аналогична установке Apollo. Скачать Apollo можно с Github страницы проекта.

На большинстве девайсов Moonlight можно установить прямо из стора с приложениями, если там его не оказалось — вам сюда.

Источник: https://habr.com/ru/articles/873034/


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

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

Кажется, что сейчас нет ни одного крупного бизнеса, где бы не работали архитекторы. Однако с ролью архитектора решений (Solution Architect) история очень интересная, так как этим специалистам часто пр...
В процессе разработки почти любого приложения необходим удобный механизм по работе с данными из БД. В данной статье речь пойдет о таком расширении для СMS Bitrix, как alexpr94/bitrix-models, устанавли...
Интро: почему я написал эту статью Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется...
Появившиеся в 2006 году сервисы Google по работе с текстовыми документами (Google Docs) и таблицами (Google Sheets), дополненные 6 лет спустя возможностями работы с вирту...
Практически все коммерческие интернет-ресурсы создаются на уникальных платформах соответствующего типа. Среди них наибольшее распространение получил Битрикс24.