Игровой сетап на linux

a4df13f911232f628a55373289d91c92

Хотел я написать о багах и разработчиках, но подумал, что это никому не надо и напишу о том как я настроил себе удобное место для поиграть на linux.

Какое-то время назад купил проектор Epson EF-12. Вещь, просто класс. Это трехметровый телек, зависит от расстояние до стены. Проектор лазерный и потому цветопередача у него просто великолепная, я сравнивал с проектором Xgimi halo plus. Прям купил оба и один вернул в магазин. Когда видишь две картинки рядом, сразу понятно насколько лазерный проектор с 3lcd технологией превосходит аналоги. Другие лазерники стоят намного дороже и большие, выбрал этот.

Проблема этого проектора в том, что он «не игровой» то есть если его к компу подрубить по hdmi то input lag будет огромный и играть так совершенно невозможно. На том я поначалу и успокоился, просто смотрел кино на большом телеке и был доволен. Но нашелся таки способ играть на неигровом проекторе. Это Steam Link.

У меня довольно много игр куплено по скидкам в стиме, иногда я играю на компьютере, но редко. По сути Steam Link это штука, которая делает то же самое, что Google Stadia или Geforce Now, но трансляция идет с вашего компьютера. После долгих выбираний настроек я таки выяснил как сделать что бы задержки были не заметны и все стало удобно. Настройки самого Steam Link элементарны их там несколько всего, разберетесь, остальное нужное далее опишу.

Вопервых у меня стоит видеокарта Nvidia RTX 3080 16Gb. Она умеет захватывать картинку с помощью nvfbc или nvenc, что не грузит проц совсем. Это можно покрутить что бы посмотреть, что быстрее. Это поддерживается в Steam Link. Во-вторых мне пришлось подключить проектор к одной локальной сети с компютером. Причем я сделал это на 5Ггц wifi, так как проектор не имеет возможности проводного подключения. 5Ггц тут нужно что бы wifi каналы были свободные от соседей. Причем по wifi у меня подключен к роутеру на 5ГГц только проектор, а все остальные устройства на 2.4Ггц что бы у проектора был свободен весь канал и была скорость 100Мбит. Комп подключен к роутеру проводом. Этой скорости достаточно что бы была идеальная картинка в играх. В противном случае она будет заметно портиться, но работать будет и по началу я так и играл. Steam Link захватывает картинку видеокартой, жмет ее ей же и передает на клиента, там разжимает и показывает.

После этого я выбрал и купил себе геймпад. Это PS5 Dualsense. Начиная с ядра 5.12 в linux есть драйвер для этого геймпада. Сам геймпад подключается не к проектору (хотя так можно), а к ноутбуку по bluetooth что бы вопервых были минимальные задержки, а во-вторых работала вибрация в геймпаде. Да, даже вибрация работает в linux. К ноутбуку же подключен звук. Steam Link умеет отдавать звук на клиент и захватывать геймапд на клиенте отдавая на комп, но это не нужно, что бы не гонять все это по сети и не тратить канал портя картинку. Плюс лаг и косяки в звуке будут при плохой связи. Мало того Steam поддерживает интеграцию с этим геймпадом и если нажать кнопку PS на нем, он откроет Big Picture режим спецаильно для телевизора-проектора. В итоге в настройках Steam Link был запрещен захват звука на сервере и геймпада на клиенте.

После того как все было подключено возникла одна большая проблема. Разрешения на ноутбуке и проекторе разные. Для того что бы все транслировалось как надо пришлось заходить в настройки игры и делать ее запуск в окне с разрешением 1920×1080 как на проекторе. Тогда Steam Link понимает, что надо захватывать конкретное окно и показывает все идеально. Это делается только при первом запуске игры, не очень удобно конечно. В целом и не всегда надо, но в противном случае он будет запускать игры с нативным разрешением монитора моего ноута 2560×1600, что на проекторе не надо, а производительность ест.

Самого же разрешения в 1080p совершенно достаточно, я никаких огрехов не вижу, хотя долго думал до покупки, что надо 4k, так вот 4k нафиг не надо, большая часть фильмов в 1080p и игры тоже на него заточены примерно, в любом случае никаких «пикселей» на стене при проецировании не видать. Мало того при таком маленьком разрешении все красиво и при этом еще и производительность в играх просто так не жрется.

Сначала было подумал, что удобно будет иметь два монитора, один headless для стима и игр, который транслируется на проектор, второй с мышкой и рабочим софтом. Что бы не возиться с настройками купил затычку для HDMI порта (5$), которая эмулирует телек с любым разрешением (Easydiy HDMI Dummy plug) и просто сделал что бы все игры запускались на этом виртуальном мониторе. Но оказалось, что это неудобно. Было бы отлично, но есть масса проблем с фокусом окон, геймпадом и пр. Так как xserver не расчитан на то что на одном мониторе будут играть с геймпадом, а на втором работать с мышкой одновременно. Возиться слишком долго не захотел. Так что так и оставил автозапуск свернутого в системный лоток стима с одним монитором на ноутбуке, все прекрасно работает.

Что касается игр на linux в Steam, то у меня одна как то не запустилась (Forza Horizon), больше никаких проблем не видел. Даже Cyberpunk 2077 прошел спокойно пару раз. Все работает отлично. Proton от Steam это конечно супер. Виндой я не пользуюсь уже лет пятнадцать, так что приятно, что игры стали так просто работать в linux, давно ни во что не играл.
В итоге процесс включения игры сейчас таков:
1. С пульта проектора запустить Steam Link клиент.
2. Выбрать геймпадом игру, так как Big Picture включится на ноутбуке сам и покажется на проекторе как только Steam Link подключится, а гемпад подключится к ноутбуку сам как только на нем нажата PS кнопка.
3. В первый раз приходится зайти в настройки игры и сделать что бы запускалась в окне с разрешением 1920×1080.
4. Играть.

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

Приставочные игры работают в таком сетапе идеально все, что я пробовал. С учетом того что полный сетап PS5 стоил когда то еще 70к (не слежу за ценами), а игры на нем намного дороже чем в Steam, этот сетап проектор+геймпад намного дешевле, а в моей библиотеке много купленных по скидке за 2–15Eur игр, такая коллекция на PS5 стоила бы целое состояние, плюс всегда можно добавить в Steam игру, установленную на стороне, если вы понимаете о чем я, но я этим никогда не пользовался. Ну, и да, ноут у меня топовый, тут не знаю какое надо железо что бы так хорошо работало.

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

P.P. S Да, так как в ubuntu не нашлось иконки, которая бы показывала заряд контроллера, написал себе скриптик для этого https://github.com/3DRaven/gnome-dualsense-icon

© Habrahabr.ru