habrahabr

Steam In-Home Streaming — или уберите свой игровой компьютер на балкон

  • воскресенье, 25 мая 2014 г. в 03:10:46
http://habrahabr.ru/post/223999/

21 мая, Valve объявили что Steam In-Home Streaming (далее — стриминг) выходит из статуса закрытого бета-тестирования и готов к использованию.
Я очень ждал релиза данной технологии так как она позволяет реализовать давнюю мечту — убрать шумящий игровой компьютер подальше от ушей. Но участвовать в бета-тесте было лень, так что я ограничивался просмотром видеообзоров с нелестными отзывами.
До этого я, ради интереса, пробовал играть с помощью разных программ, но максимум, на что они годились — неспешные квесты, так как качество динамичного изображения, лаг, да и вообще поддержка устройств ввода были никудышными. Была надежда что Microsoft RemoteFX позволит использовать видеокарту даже нескольким людям (для multiseat) но у него с поддержкой игр все плохо, к тому же проблемы с мышью (которые, правда, решаются пробросом USB).
Так что так или иначе, рабочих решений для удаленной игры в динамичные игры я так и не нашел и вся надежда была на Steam.

Вообще, Valve, молодцы, так или иначе, много игроков делит игры на ПК на «достимовые» и «стимовые». Когда он только появился, в России им пользоваться было проблематично из-за необходимости подключения к интернету и выкачивания многомегабайтных апдейтов. Помню как записывали резервные копии игр на DVD, так и распространяли апдейты. Тогда было принято ругать Steam.
Позже интернет стал быстрым, более доступным и тут пришло осознание, насколько удобным все-таки является Steam. В далекое прошлое ушли патчи, директиксы, различные библиотеки, лаунчеры, русификаторы, поцарапанные диски, и, самое главное, технологии защиты. Ну кто не помнит необходимость держать жужжащий диск в приводе. Сейчас это вспоминается как ночной кошмар. Не только глючность, ресурсоемкость этих «защит» (привет, старфорс!) но и вообще дисков. Лично у меня они уже на том же забытом уровне, что и дискеты, хотя многие люди продолжают фанатеть по этим ненадежным оптическим носителям (ОС я устанавливаю с Zalman VE-300). Так или иначе, Steam привнес на ПК консольную легкость установки, цифровую дистрибуцию и универсальную технологию защиты. Стоит сказать, что DRM незаметный и заключается только в необходимости держать запущенным сам Steam. Все! Никаких системных драйверов с руткитами, никаких дисков из далекого прошлого.
Конечно, «минусом» тут было то, что игры таки приходилось покупать, причем часто цены достаточно высокие. Я решаю эту проблему покупками только в сезоны скидок.
Смешной случай: хотел дать жене поиграться в The Sims 3, пошел на торренты, скачал, прочитал инструкцию на пару страниц в каком порядке надо ставить патчи, поставил — не взлетело. Требует диск, хоть ты тресни. После убитых пары часов решил пойти в Steam и купить. Одна загрузка (кстати Steam использует технологию торрентов для загрузки) и все работает. А смешнее всего было то, что версия Sims для Steam'а вообще лишена DRM и работает без установки на любом компьютере даже без Steam'а.
Ладно, хвалебную оду заканчиваю, хотелось выговориться, надеюсь простите.

В какой-то момент где-то в Valve поняли что по масштабности Steam уже представляет собой этакую ОС для игр и выкатили Steam OS на основе linux, параллельно развивая и подталкивая разработчиков на портирование игр (за что им отдельный низкий поклон). Но проблема курицы и яйца (мало пользователей linux -> мало игр для linux) все еще стояла остро (на 24.05.2014 1229 из 11414 портированы), поэтому как временное решение Valve решили запилить стриминг с Windows ПК. Идея простая: можно купить (пока еще официально не вышедшие) маломощную безшумную приставку к ТВ и играть в любые игры с клавиатуры/мыши либо со специального контроллера.

Посмотрим что же из этого получилось.

Для теста установил Windows 7.
Для запуска не надо делать почти ничего: запускаем Steam на компьютере с Windows и в той же локальной сети — на любом другом компьютере-клиенте. Клиент автоматически подключится к серверу, о чем будет соответствующее уведомление.
В настройках есть новый раздел, но на сервере там настраивать особо нечего. Галочка аппаратного кодирования уже стоит:



Для теста я использовал свой обычный компьютер, характеристики такие: Core i5-2500, GeForce GTX780 и 12 ГБ ОЗУ, о котором Windows 7 думает вот так:


Клиент — дремучий ноутбук hp nc4200, процессор — Pentium M 2ГГц, Intel GMA 915 (в последних версиях драйвера заработали все OpenGL-эффекты в KDE! вау!) 2 ГБ ОЗУ. kubuntu 13.10 и макбук air late 2010.

Коротко: работает хорошо, но не со всеми играми. В большинстве случаев задержку незаметно вообще, нет ощущения «удаленного дислея» или «видеопотока».

А теперь замерим то, что можно замерить.

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



И со включеным:



Очевидно, по каким-то причинам аппаратное кодирование не работает на моей системе, так как его включение/отключение ни на что не влияет.
Как видно, стриминг процессор все же нагружает. Но если вы читали мой предыдущий пост про multiseat, то знаете что этого процессора достаточно для работы 2 экземпляров доты. Так что я бы не считал это проблемой. Да и процессор у меня далеко не самый быстрый.

Далее: стриминг на максимальном качестве при динамичной картинке полностью загружает слабенький процессор ноутбука:



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

Удивительно, но на должной скорости принимать стрим Half-Life мой ноутбук не смог, хотя с Dota 2 справлялся отлично:

А вот Метро оказалось неиграбельным: выпадения кадров и общая большая задержка. Похоже, Valve еще применяют какую-то оптимизацию для своих игр. К сожалению, на макбуке мне проверить не удалось, так как я удалил Метро, чтобы освободить место для проверки других игр. Возможно на нем ситуация была бы лучше, но врядли.

Half-Life 2:

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

Я незаметно пропустил вопрос о сети. Хоть и ноутбуки показывают полный сигнал, но скорости беспроводной сети им в дальних уголках все равно не хватает. Битрейт потока в большинстве случаев не менее 10 МБит. Так что здесь нужна хорошая антенна, удачное расположение либо проводное соединение.

Очевидным кажется запускать игру на сервере в headless-режиме, то есть без окна, чтобы она только потребляла ресурсы ПК, но не мешала работе на нем, а также позволить множественные подключения. Тогда с помощью одного мощного компьютера где-нибудь на балконе удастся удовлетворить геймерский интерес всей семьи. Но таких функций пока нет. С другой стороны можно же в Linux запустить несколько X.org, в них также по Steam'у и подключать хоть 10 клиентов, но это уже тема следующей статьи.

P.S. я все-таки решил попробовать АСТЕР для организации Multiseat. Легко устанавливается, легко настраивается, буквально за 5 минут. Но больше одного Steam'а запустить не получается. С другими сетевыми играми тоже проблемы. Вникать не стал, хотя конечно для игры в не-Steam игры не по сети пойдет.