Linux Gaming: Кровь, пот и командная строка. Часть 1

Linux Gaming: Кровь, пот и командная строка. Часть 1

Решил написать небольшую статью, о всех тяготах и лишениях линукс гейминга, а заодно расписать процесс установки игр с парочкой приемов упрощающих жизнь. По крайней мере таков был изначальный замысел, сказать пару слов про историю и перейти сразу к делу. Но история сказала "парой слов не обойдешься!", поэтому я удивленный тем, что история разговаривает и еще более удивленный 7 страницами текста с размером шрифта 11 в Goole Docs распилил эту статью на две части. Первая будет посвящена соответственно истории и теории(ну и немного моим мнением и опытом.), а вот вторая будет уже более практическая, с различными приемами и выводом.

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

Ага, примерно такая вероятность. (хотя это статистика тех, у кого установлен стим). Глобально линукс имеет большую долю, а на серверах и мобильных устройствах и вовсе лидирует.<br />
Ага, примерно такая вероятность. (хотя это статистика тех, у кого установлен стим). Глобально линукс имеет большую долю, а на серверах и мобильных устройствах и вовсе лидирует.

Почему я не включил маковские 3%? Ну, во-первых, потому, что это в основном зарубежные 3%, а во-вторых хоть эта статья посвящена линуксу, частично она актуальная и для MacOS.

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

Cкорее всего вам больше хочется узнать, что за нелегкая могла привести к такому выражению как “Линукс гейминг”, а нелегкая не такая уж и...нелегкая...ироничный Свист-ХА! Мне нравится линукс в текущем его состоянии. Пользовательский интерфейс десктопных дистрибутивов сегодня достаточно юзерфрендли (особенно есть взять какую-нибудь elementaryOS, после которой винда покажется дремучим лесом, особенно те помойки 8 и 10(сразу стоит оговорится, не считаю десятку плохой системой, однако неудачное совмещение старого и нового интерфейсов превращает ее в свалку с двумя видеоплеерами, двумя браузерами, двумя панелями инструментов и.т.д.)).

<p>Куда уж элементарнее?<br /></p>

Куда уж элементарнее?

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

Linux Manjaro напирмер предлагает в пару кликов менять расположение панелей и вид основного меню. Очень удобно.
Linux Manjaro напирмер предлагает в пару кликов менять расположение панелей и вид основного меню. Очень удобно.

Именно поэтому, я предпочитаю работать в линуксе, мне в нем банально комфортнее. Ну а там, где работа, почему бы и не быть развлечению, тем более, что дядюшка Гейб в 2012, а потом и в 2018 сделал линукс сообществу невероятные и неожиданные подарки. Ну то есть стим машины с линуксом на борту не выстрелили в итоге, но наследие осталось и живо до сих пор. Что же это за подарки такие? Для ответа на этот вопрос требуется углубится в … на самом деле не очень-то и глубокую историю...ироничный Свист-ХА! №2... Простите это больше не повторится.

От темных времен до Steam

Итак, 2011 год. Из возможностей запустить игру на линуксе имеется только wine и его платный брат близнец Crossover(Правда оба не умели в DirectX11). А от Valve появляется информация, что помимо продажи игр компания также займется продажей железа. Гейб Ньюэлл дает интервью ресурсу Penny arcade:

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

Гейб Ньюэлл
, Генеральный директор Valve

Кстати сама статья с Penny arcade была удалена или перемещена, т.к. все ссылки на эту статью ведут к ошибке 404. Однако, как минимум частично это интервью можно найти на сторонних ресурсах.

Появляется слух, что на GDC2012 валв анонсирует steam machine (известным тогда еще под рабочим названием steam box), однако представитель valve заявляет, что подобных планов пока нет. В апреле Валв начинает поиск инженера для работы над дизайном железного решения, а уже в июле анонсирует порт своего стим клиента и основного движка компании, source, на linux. Тогда же Гейб открыто критикует Windows 8:

Я считаю, что Windows 8 — это, своего рода, катастрофа для всех в сфере ПК. Я думаю, мы потеряем нескольких ведущих производителей компьютеров. Они уйдут с рынка. Я думаю, что многие люди потерпят убытки. Если мои предположения оправдаются, будет неплохо иметь альтернативу, чтобы отгородиться от такого хода дел.

Гейб Ньюэлл о Windows 8

Катастрофой w8 в итоге не оказался. Особенно забавно это читать сегодня когда игры от Microsoft не только выходят на пк, но еще и появляются в самом Стиме, а сам магазин Windows не то, что не обрел статус монополии (а опасения Гейба были именно об этом, что Microsoft усложнит жизнь сторонним магазинам), но даже не получил практически никакой популярности.

Вообще планы у Валв были глобальные. Они хотели подвинуть не только Windows, но и классические консоли будучи уверены в том, что в будущем пк станет основной платформой для игр. И хоть мы знаем, что этим планам в итоге не суждено будет сбыться, некое пророческое видение в этом и правда было. ПК платформа сегодня действительно растет. Стим машины правда это не спасло и их ждал очевидный провал, ведь количество портов игр на линукс поначалу было небольшим, а обещанная возможность запускать любую win32 игру появилась сравнительно недавно, когда паровые машины уже не подавали признаков жизни. Однако железо нас, не интересует. А если все-же да, подробнее можно почитать, например, на странице Википедии

В ноябре 2012 состоялся запуск закрытого бета-теста Steam для линукса, а также одной игры на движке Source. Этой игрой оказалась Team Fortress 2, однако до самого теста новостные сайты предполагали, что это будет Left 4 Dead 2. Вскоре после закрытого бета теста запустился и открытый.

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

Гейб Ньюэлл о запуске Steam на Linux

Возможно упоминания стоит и дистрибутив основанный на Linux Ubuntu который создали для Стим машин, а также выкатили в открытый доступ всем желающим. Но если честно мало кто понял зачем нужно ставить отдельный урезаный дистрибутив, если стим можно поставить себе без переустановки системы. Отчего он умер даже, не успев пошуметь.

-Но доктор, SteamOS все еще доступен для загрузки прям на сайте стима!

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

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

Ну то есть чего конечно было, было Вино (Wine - wine is not emulator(wine это не эмулятор)), но игры запущенные на нем отличались такой же низкой производительностью и нередко требовали изрядно потанцевать с бубном перед тем как это нечто получало возможность хотя бы запускаться. Конечно были специальные программы для автоматизации процесса, например Play on Linux, однако с большой долей вероятности танцы с бубном никуда не уходили, а просто переходили от командной строки в GUI (графический интерфейс).

А тут стим… нажал кнопку установить потом играть. Правда таких игр по пальцам можно было пересчитать, нет счет их достаточно быстро перешел на тысячи, но вы знаете темную зону стима, она… на любителя. Но вот что удивительно подобными портами линукс сообщество порадовали не только инди разработчики, даже некоторые ААА тайтлы были перенесены на эту платформу. На данный момент, например, официально портирована вся трилогия современной Лары Крофт. Другие студии правда, часто останавливались на порте одной части франшизы, например, CD Project портировала только второго ведьмака, хотя обещания третьей части вроде как были. Это был большой шаг для линукса, официальные порты на линукс, не поделки студентов на коленке, не копии игр, собранных на их-же опенсурсных движках типа квейка или дума, ну и не java версия minecraft и то, только потому, что ява мультиплатформенная сама по себе, а официальные порты AAA игр.

Cпасибо за них стоит сказать в том числе команде Feral Interactive блягодаря их стараниям на линуксе появились такие игры как: Alien: Isolation, Company of Heroes, Deus Ex: Mankind Divided, DiRT Rally, DiRT 4, Empire: Total War, F1™ 2015, F1 2017, GRID Autosport, Hitman, Life is Strange, Life is Strange: Before the Storm, Life is Strange 2, Mad Max, Medieval II: Total War, Middle-earth: Shadow of Mordor, Tomb Raider, Rise of the Tomb Raider, Shadow of the Tomb Raider, Total War Saga: Thrones of Britannia, Total War: SHOGUN 2, Total War: Shogun 2 - Fall of the Samurai, Total War: WARHAMMER, Total War: WARHAMMER II, Total War: THREE KINGDOMS, XCOM: Enemy Unknown, XCOM 2, Warhammer 40,000: Dawn of War II, Warhammer 40,000: Dawn of War II — Chaos Rising, Warhammer 40,000: Dawn of War II — Retribution, Warhammer 40,000: Dawn of War III.

Логотип Feral Interactive<br />
Логотип Feral Interactive

Но я уже точно говорил о качестве портов… возможно второго упоминания ситуация вокруг них не достойна. Да в них был низкий фпс по сравнению с вин версией, но это было играбельно и это не требовало танцев с бубном. Тем более некоторые игры шли очень хорошо например Torchlight 2 или первая часть Divinity: Original Sin.

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

DXVK: да придет спаситель.

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

Вообще, забавно несмотря на стереотипы о командной строке в линуксе как единственном способе управления системой, в большинстве современных дистрибутивах многое реализовано через графический интерфейс, а также есть годный магазин приложений в котором есть если не все, то большинство нужных программ, а командная строка просто помогает ускорить некоторые процессы, ну и дает те возможности, которым в GUI и делать то нечего. Т.е. выполняет такую же роль, как и cmd (ну и его более продвинутая версия PowerShell) в Windows.

Просто нажал установить, а после перезагрузил систему и готово. Даже на сайт нвидии заходить не надо.
Просто нажал установить, а после перезагрузил систему и готово. Даже на сайт нвидии заходить не надо.

И что еще важнее, нвидия не будет донимать вопросами о скачивании обновлений драйверов или их долгой установкой. В линуксе пакеты драйверов будут обновляться вместе с системой. При этом установка нового драйвера никак не будет мешать работе системы, ведь начнет использоваться он только после перезагрузки. Это одно из главных преимуществ линукса для меня, ему не нужны тонны googleupdater, mailupdater yandexupdater, vasyansoftupdater, обновление системы также скачивает новые пакеты программ и драйверов из различных в том числе и подключенных пользователем источников. Но что-то я отвлекся.

В 2015-2016 годах произошло два важных события, которые и стали виновниками того, о чем будет написано далее.

29 июля 2015 года состоялся релиз DirectX 12, а 16 февряля 2016 на свет появился Vulkan. Это новые графические API призванные улучшить работу с железом, снизить нагрузку на процессор и улучшить многопоточность, что в свою очередь должно было привести к более высокой производительности, а так-же добавить новые возможности такие как трассировка лучей. Однако если Dx12 поддерживает только Windows 10(по крайней мере так задумывалось изначально, вроде как некоторую совместимость со старыми системами они в итоге реализовали), то Vulkan работает и на w7, и на w8, и на w10, и на Linux, и на Android и в принципе не имеет каких-то эксклюзивных ограничений. Собственно, поддержка вулканом линукса, а также его кроссплатформенность и стали виновниками сегодняшней ситуации.

Итак, на сцену выходит проект vkd3d, а также DXVK и D9VK (последние два в конце 2019 года объединились в один проект). Все они нацелены на реализацию трансляций вызовов DirectX в API Vulkan. Если без долгих и сложных объяснений эти проекты, улучшают совместимость и производительность игр, запущенных под вайном. И говоря, улучшают совместимость и производительность, я имею ввиду, существенно. Запуск солидного количества игр стал возможен в принципе, да еще и без костылей, да еще и с нормальным фпс и без артефактов. В случае с vkd3d которая направлена на трансляцию запросов от DirectX 12 потери фпс могут быть и вовсе незначительными. Однако DXVK (DirectX 9-11) не все так гладко, потери могут составлять 10-15 фпс, но даже это отличный результат.

Но не меньшим, событием стал упомянутый мной ранее второй подарок линуксоидам от Гейба. Им стал Proton.

Proton - средство запуска win32 игр основанная на wine и всех его наработках (vkd3d, dxvk), а также собственных правках, и интегрированная в Steam. Запустился в 2018 году в качестве беты, изначально позволял запускать только небольшой протестированный список игр, однако достаточно быстро оброс всеми полезными функциями, такими как запуск любой игры из стимовской библиотеки, добавление сторонних .exe с последующим запуском через proton и выбор версии proton отдельно для каждой игры.

Стоит ли говорить, что запуск протона разделил линукс геминг на до и после? Исходя из данных ProtonDB на момент написания статьи через линуксовый стим можно запустить 11 024 игры. Правда 3 тысячи игр имеют статус Broken (т.е. не запускаются). Да, в большинстве своем просто нажав установить, а потом играть. GTA5, Ведьмак 3, Monster Hunter: world, Скайрим, Assassin's Creed Odyssey, Doom, Kingdom come: deliverance и многое другое теперь запускаются без костылей, да и костыли стали довольно лояльными(например применить небольшую команду в Divinity OS 2 (игра работает без проблем, но лаунчер обновленной версии не запускается и если запускать игру в обход лаунчера то все будет хорошо), или например установить сертификат для того, чтобы онлайн в Dirt Rally 2.0 заработал) Более того, все эти решения линукс геймеры собирают в ProtonDB, так что зачастую и думать не нужно, если это можно запустить, там написано как.

Минутка офигительных историй. Один раз вышла забавная ситуация. Life is Strange упорно отказывалась запускаться на винде ругаясь на библиотеки PhysX. При этом решения в интернете были максимально противоречивы. Одним помогло одно, другим другое, кому-то не помогло ничего. Поэтому я решил "Пфф... на линуксе пройду" и прошел.

Linux Gaming: Кровь, пот и командная строка. Часть 1

Конечно ложкой дегтя является то, что в лучшем случае фпс будет незначительно ниже, например, если игра уже работает на Вулкане или DirectX 12. Но это запускается и работает, и даже не требует выкручивать графику на минимум, чтобы быть хотя бы играбельным(и то, раньше и это давало гарантий). И даже более того, новые версии протона регулярно выходят (в основном они привязаны к появлению новой версии wine) и за чуть больше года было решено много проблем. Например, начал работать physX и Hairworks, правда последний все также становится причиной большой потери фпс, что для ситуации, когда фпс и без того теряется из-за запуска под линуксом не очень хорошо.

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

159159
140 комментариев

Пол года. Целых пол года эта статья...пылилась в гугл документах. Наконец я смог найти в себе силы додедать ее.

39
Ответить

Молодцом, респект тебе!

1
Ответить

Всегда считал, что пытаться запускать игры от Линукса - бред.

Я просто не понимаю - зачем? Зачем эти извращения, когда можно просто поставить вторую систему и играться там.

15
Ответить

Потому, что переключаться между системами не самая удобная вещь. Тогда уж лучше вообще одну систему оставить.

34
Ответить

Ну это интересно. Иногда. Я не говорю про запуск игр из steam или gog. Иногда читаешь что-то, а там фраза "есть порт под Linux, но его нужно собрать". Начинаешь искать, оказывается это пытались собрать последний раз лет десять назад, пытаешься собрать сам, перерываешь кучу информации и через пару вечеров все таки запускаешь. Всё, дальше играть не обязательно. Или как мой вариант - у меня есть rpi3. Я прикрутил к нему эмуляцию x86, wine, ещё какие-то движки от игр, но не играл во все это ни минуты. Цель не важна, главное путь. 

18
Ответить

Смена между системами уже долго, если нет ссд. Да и настраивать параллельно 2 системы не очень удобно. Там сенса другая, хоткеи другие и т.п.

2
Ответить

Комментарий недоступен

1
Ответить