7 лет Proton!
В далёком 2018 году произошло событие, разделившее мир видеоигр на ДО и ПОСЛЕ — в клиенте Steam на Linux появилась возможность запускать игры, у которых есть лишь версия под Windows.
Ранее пользователям лучшей операционной системы приходилось или держать две установки Steam — родную для линукса и виндовую в Wine, или осквернять свой компьютер присутствием Windows, или жить почти без игр.
Я совмещал два первых способа, пока после очередного обновления Windows 10 не обнаглел настолько, что посчитал мой компьютер своим и стал бороться с конкурентами путём порчи линуксовых файловых систем на всех разделах при каждой загрузке. Я, конечно, терпеть такое не стал, и принял единственно верное решение — удалить виндовс нафиг.
Лучшее решение в моей жизни, но сразу последовала проблема: а играть-то во что? Остались доступны лишь игры со свободным исходным кодом вроде Doom (и нет, зумерки, ещё до Doom 2016 был Doom 1993), эмуляторы, простенькие инди-игрушки и то, что тянул Wine. А тянул он немного, всякие старенькие игрушки вроде Tomb Raider (и нет, зумерки, ещё до Tomb Raider 2013 был Tomb Raider 1996). Как наследие умерших при рождении Steam Machine, изредка появлялись говнопорты на линукс более-менее современных игр, например Tomb Raider (а вот теперь уже 2013), с урезанными графическими эффектами и производительностью втрое ниже, чем на Windows. Иногда происходило чудо, и новенький Doom (а вот теперь уже 2016) внезапно работал отлично и сразу — а всего-то и нужно было разработчикам брать пример с id Software и делать игры на свободных инструментах, а не завязывать всё на трэш-технологиях от Микрософта, сделанных по принципу «говно, зато своё, проприетарное, и мы заставим весь мир этим пользоваться».
В общем-то, жить так было можно, но чего-то не хватало. Запускаешь стим, видишь сотни своих честно купленных игр, а запустить можешь единицы. Видишь ААА полугодовой давности на распродаже за 150 рублей, купить можешь, а поиграть — нет.
Последней каплей был анонс порта Final Fantasy 15 на ПК. Я не был фанатом, но событие было неординарное — ранее Square Enix, как и другие дремучие японские компании, ещё не осознавала, что консоли давно умирают, а будущее находится в больших руках Габена, и продолжала выпускать эксклюзивы загнивающего плейстейшна, не считая говнопорты древних финалок и говнопорты говнопортов с андроида ещё более древних финалок. А тут — самая большая жрпг — и на ПК! На русском языке! С РУССКОЙ ОЗВУЧКОЙ! Ну всё, отныне Square Enix — не контора японских оптимистов, будет выпускать всё в стиме, качественно, с переводом и совершенно точно не запретит в России покупать свои игры когда-нибудь в будущем! Настоящая контора красавчиков!
Короче, пропустить такое я никак не мог. Но что же делать? От одной лишь мысли о том, что на моём компьютере снова появится Windows 10, у меня возникали вьетнамские флэшбэки и начинало трясти. «А чё такого?» — спросит рядовой виндузятник, — «подумаешь, виндовс. Мне норм». Но человек с опытом видит и знает, как даже самую элементарную вещь виндовс делает медленнее и хуже линукса, как на любую деталь, которая раздражает пользователя, можно ответить: «А в линуксе такой проблемы нет, там это сделано лучше». Когда воспитанный виндовсом человек нажимает на ярлык Проводника Windows и по выработанной годами привычке замирает на несколько секунд, пока не вылезет и отрисуется полностью окошко, мне его аж жалко становится. Ну не знает он, что файловый менеджер может запуститься в тот же миг, в который отпустишь кнопку мыши! Показываешь ему, как в линуксе нажимаешь «выключить компьютер», и он искренне удивляется, когда компьютер ВЫКЛЮЧАЕТСЯ! «Что, так сразу? Моментально? А где же "подождите, подождите, подождите" на полминуты? А точно выключилось?»
Был найден компромис — Windows 7. Система уже тогда устаревшая, но всё ещё поддерживающаяся всеми разработчиками игр, проверенная и не замеченная во вредительстве при соседстве с линуксом. Можно устанавливать все игры и начать с финалки.
Игра так себе оказалась, кстати. Графон есть, выглядит красиво, но играть не шибко интересно. Но суть не в финалке, а в том, что проблема игр решена. Конец инди-диете. Что же могло пойти не так?
Прошло всего несколько дней, и Нвидия выпустила кривой видеодрайвер, убивающий всё — причём только на моей модели видеокарты и на Windows 7. Я понял, что Вселенная подала мне знак, и во второй раз удалил Windows — теперь уже точно навсегда.
Иронично, что в своё время я выбирал между GTX 1060 6 ГБ и Radeon RX 480 8 ГБ, которые примерно одинаково стоили и были одинаковой мощности, и выбрал Нвидию как раз потому, что у неё был один понятный стабильный драйвер для всех платформ, который точно работал, а АМД кидало из стороны в сторону, постояно новые архитектуры, новые ветки драйверов, и прочая головная боль для владельца Радеона. Для той же RX 480 было штуки три разных драйвера, что-то работало с одним, что-то с другим. Главный девиз геймера на линуксе тех лет: «Бери Нвидию, избегай АМД». А дополнительные гигабайты видеопамяти у RX 480 — да чем их загрузить-то? У моей прошлой было 2 ГБ, и ни одна игра не жрала больше полутора, а необходимость обновы возникла из-за нехватки мощности, а не памяти. Что 6, что 8 — это ж такие дикие объёмы, что ой не скоро игры до них дорастут, а к тому времени давно уже успею ещё не раз сменить видюху. 8 гигабайт видеопамяти всегда будет достаточно каждому. Дженсен Хуанг тоже взял себе эту фразу как основной жизненный принцип.
Вдвойне иронично, как всё перевернулось в мире видеокарт. АМД выбрала один драйвер, свободный, и стала его развивать. С каждым обновлением производительность RX 480 росла и однажды перегнала мою GTX 1060. А Нвидия то и дело выпускала кривые драйверы для линукса, и каждая перезагрузка после обновления была лотереей — увижу я привычный рабочий стол или же чёрный экран со строчкой белого текста? Ну, и третий слой иронии — это что архитектура карт серии GTX 1000 была своеобразной, и в линуксе игры с DX12 показывали намного меньше фепесов, чем было бы в виндовсе. Сначала в играх был переключатель между DX11 и DX12, позднее остался только DX12. Играй при 30 кадров в секунду, хотя мог бы иметь больше, если бы несколько лет назад не сделал неверный выбор при покупке видеокарты. Потом вышла игра Steelrising, последняя хорошая игра от французов, и она на видеокартах GTX 1000 не работала вообще. На любой другой — пожалуйста. GTX 970 — легко, RTX 2060 — без проблем, RX 480 — вообще супер. А будь у вас хоть топовая дорогущая GTX 1080 — фигушки, а не играть. Тогда-то я и сделал второй лучший выбор в своей жизни и купил новую видеокарту Radeon. С тех пор — ноль проблем с видеодрайверами. А вполне возможно, что я бы до сих пор жил с RX 480, если бы купил её, когда раздумывал над этим.
(Пишу всё по памяти и не уверен, были ли проблемы у Steelrising только с GTX 1000 или же со всеми видеокартами Нвидии вообще. Но суть одна — Valve сейчас в первую очередь занимается совместимостью с АМД, особенно на Steam Deck, а всё остальное — потом. Раньше создаёшь тему на гитхубе, и через полчаса сотрудник Valve предлагает помощь. Но после выхода дека — полный игнор, сами всё тестируют, но лишь на деке. Через несколько месяцев после выхода Steelrising на Нвидии заработал, кстати. Но мне до сих пор приходят уведомления из той темы, что что-то обновлилось, или драйвер, или Proton, и снова всё поломалось.)
Но это я отвлёкся, мораль истории — хватит кормить Хуанга, покупайте радеоны, ну или хотя бы интелы, а мы возвращаемся в 2018 год, когда ничего этого не было, никаких ещё DX12.
Итак, я уже почти смирился с тем, что остаток жизни проведу, осваивая библиотеки GBA и SNES и модификации для Doom 2. Уж лучше так, чем снова Windows. Да, НАСТОЛЬКО я ненавижу Windows и любое ПО от Микрософта. Кто Windows XP администрировал, тот в цирке не смеётся.
Но вдруг промчалась новость: появилась такая штука — DXVK, какой-то анимешник с бабороботом из Nier: Automata на аватарке взял и сделал графическую библиотеку, которая перехватывает вызовы функций DX11 виндовых игр в Wine и переделывает их в вызовы функций нового, модного и открытого Vulkan. Можно подсунуть её игре, любой новой игре, и она заработает! Не в 5 кадров в секунду с дичайшими артефактами на экране, как при WineD3D, а нормально! С заметной потерей производительности, не без этого, но полноценно и играбельно!
Я не поверил. Ну очевидно же, что такое невозможно? Когда-то очень давно, когда появились паровые машины и некоторые разработчики вызвались портировать игры на SteamOS, выступил Джон Кармак и сказал, что портировать игры по одной — затратно и тупо, а лучше бы доработать вместо этого один-единственный Wine и получить тысячи игр одним махом. Я тогда подумал: да что этот говнокодер понимает вообще, ежу понятно, что Wine НИКОГДА даже не приблизится к тому, чтобы запускать что-то тяжёлое, ему бы с Word 2010 для начала справиться без вылетов.
Но шли недели, до меня доносились новости о прогрессе DXVK, о том, как ещё одна игра заработала, которая не работала вчера, а в старых играх разрыв производительности по сравнению с Windows уже не в два раза, а всего 20 FPS, 15, 10…
В какой-то момент я не выдержал и решил сам это проверить. Запустить игру с DXVK — это не секундное дело, это надо с каждой игрой повозиться отдельно, с конфигом DXVK, с параметрами запуска. Без особых надежд, я взял гениальную игру гениального гения, проделал с ней всё это, запустил, и…
И оно и правда заработало! Полосы на картинке — это почему-то скриншоты так захватывались в играх с DXVK, в самой игре всё нормально выглядело.
Дал третий шанс Dark Souls 2 меня увлечь, и третий раз через час сказал: «Не, по-прежнему говно какое-то. Эти разработчики безнадёжны». Что ж, хоть в одном прогнозе на будущее из этой статьи я оказался прав.
Потратился на распродаже на Nier: Automata, из-за которой всё это началось. После прикольного вступления увидел самую унылую и некрасивую игру в мире, которая может нравиться лишь анимедрочерам, но всё же вдруг и правда без неё автор DXVK не начал бы свой проект? Что бы сейчас было? Так что пусть получает от меня немного признания за свою роль в истории, очень неохотно.
Получается, теперь я могу запустить что угодно! Виндузятник-читатель опять скажет: «Я тоже могу запустить что угодно, тоже мне, достижение. А ещё я смотрел на ютубе тесты вчерашней АААА-новинки, там моя видеокарта в венде выдаёт 120 фпс, а в этом вашем люпихе — 119, буквально неиграбельно. Зачем мне это надо?»
Но он не в курсе того длинного пути от «игорь тонет» до «игорь ест» с многочисленными промежуточными остановками, который я прошёл, и потому меня не поймёт. Когда новая большая игра с графоном внезапно становится играбельной после следующего обновления DXVK, в котором автор этой игрой занялся — для меня это была как настоящая революция. Всё, отныне виндовс официально не нужен! Буквально ни одной причины не осталось держать его вне виртуальной машины, только внутри которой он не опасен для вашего компьютера. Мудрый Джон Кармак опять оказался прав во всём.
И вот, наступило 21 или 22 августа (смотря какой у вас часовой пояс) 2018 года, в стиме выступил Габен через работника Valve Пьера-Лу Гриффе, и рассказал, что он стоит за всем этим, что разработчик DXVK давно стал работать на него, что Valve сотрудничает с производителями видеокарт и разработчиками Vulkan. Включите музыку из «Пилы» или «Тетради смерти», когда будете читать тот пост, для большего впечатления. И самое главное — теперь прямо в клиенте Steam для линукса будет видна часть библиотеки игр с Windows, пока что в виде белого списка, где каждой игре подобраны свои параметры совместимости. Самый первый список можете найти в том посте. То есть, с этого дня не только Windows можно удалять, но и установку Steam в Wine! Ведь в стиме появился свой Wine — Proton!
Тот Proton был основан на Wine 3, DXVK туда не добавляли по умолчанию, большинство игр из первого списка — простенькие и старенькие, но начало было положено. У линуксоидов появилось новое развлечение — запускать игры, которые не хотят запускаться. Помимо трансляции с DX11, качеством которой занимался разработчик DXVK, встречались и палки в колёсах. Вставлял их, например, Микрософт, подсадивший большинство разработчиков игр на свою кривую проприетарщину даже там, где проще было обойтись и без неё. Скажем, видеоролики были сделаны на несвободных виндовых кодеках и требовали для воспроизведения виндовые библиотеки, которые есть в любой сборке виндовса, но которые по причине нарушения авторских прав нельзя распространять как-то ещё. А значит, в игре не будет видеороликов. Можно было самому откопать нужные библиотеки и подсунуть Proton, пока никто не видит, но это тоже приходилось делать для каждой игры индивидуально, да ещё и не ошибиться в версии и не забыть, что в папке с игрой что-то постороннее находится, что может потом помешать.
Но сам факт того, что можно потратить немного времени и запустить только что вышедший ремейк Resident Evil 2, хотя ещё недавно об этом и мечтать было нельзя, уже очень многое значил.
Кстати, проблема кодеков до сих пор не имеет красивого решения по описанной мной причине «Микрософт — контора этихсамых» и иметь не может, и Валве выкрутились так: они перекодируют видеоролики из микрософтских трэш-кодеков в человеческие, и стим скачивает их вместе с шейдерным кэшем. Соответственно, если вы запускаете пираточку, там кэша не будет, и придётся возиться, как в старом добром 2019 году, и подбирать неофициальные сборки Proton, который клали болт на авторские права Микрософта. Когда в следующий раз запустите пиратку на своём стим деке и будете материть Габена из-за настроечной таблицы вместо видеороликов, материте лучше Билла Гейца. Габен для вас старается, а вы это не цените.
Проблема с проприетарщиной — главная и по сей день. Тогда звук мог не работать или глючить из-за этого — скажем, обе версии Skyrim были лишены речи персонажей, все молча едут в телеге, в тишине, без лицевой анимации, без субтитров. Сейчас разработчики любят впендюрить в игру DRM, свои говнолаунчеры внутри говнолаунчеров, античиты, которые могли бы и работать в линуксе, но разработчики сами это запретили сознательно. Пользуйтесь только опенсорсом, особенно если вы разработчик ПО, не доставляйте проблем людям. Если у вас установлен фотошоп, вы и есть проблема.
Но сегодня любая случайно выбранная игра из стима скорее запустится по одному нажатию кнопки «Играть», чем не запустится (но лучше всё-таки почитать отзывы прежде, чем покупать). Сегодня есть Steam Deck, совершенная игровая система, которая может ВСЁ и не будет вам мешать делать с ней что хотите. Сегодня доля линукса в статистике стима достигает 3%. «Подумаешь, 3%», — скажет виндузятник. — «Мне винда столько свободной оперативки оставляет, когда запустится». Но ещё недавно это было полпроцента. А ещё раньше, до появления сборки Steam для Linux — 0%. Смотрите на относительный прирост, а не абсолютный, и так будет видна тенденция. Увеличение в несколько раз за несколько лет — вендекапец неизбежен и наступает на наших глазах.
Габен свои планы не раскрывает. Говорит, что Steam Deck его устраивает, а новая версия выйдет нескоро и будет чем-то принципиально новым, а не «то же, только мощнее». Я ставлю на Steam и Proton для Linux-arm64 и андроида. Уже давно развиваются проекты наподобие Box64 и Winlator, цель которых — запускать виндовые приложения и игры в этих окружениях. Что, если в один день выйдет Габен и снова скажет, что взял их разработчиков под своё крыло, и вот оно, обновление мобильного Steam, теперь там не примитивный чат+магазин, а вся ваша библиотека игр с компьютера, и вы носите в своём кармане Skyrim и GTA 5, запускайте и играйте.
Хотя всяких разных слухов полно. Ну знаете, 20 лет не выпускают Half-Life 3, но прошёл новый слух, который совсем не как старые, а совершенно другое дело, и сейчас HL3 confirmed, точно-точно. Недавно вот увидели слово «Valve» в каком-то рандомном бенчмарке и нафантазировали себе второе пришествие паровых машин.
Как по мне, смысла в них хоть и больше, чем в первый раз, ведь есть Proton и мощные встройки ГП, но не сильно. Они не смогут конкурировать с мини-ПК, коих сотни на любые вкус, цену и производительность. Я не верю никаким слухам в принципе. Представьте только — до сих пор ходят слухи, что Hollow Knight: Silksong существует! Уже и Джеф Кили присоединился к розыгрышу и анонсировал, и фейковый трейлер сварганили, и даже утверждают, что игра выйдет 4 сентября! И верит же кто-то? Что ж, в этот день дружно посмеёмся над ними.
А вот во что хотелось бы верить, это в новый Steam Controller, который тоже где-то кто-то запостил.
Удобный по форме, с трекпадами, со всеми кнопками стим дека — я бы такое хотел. Стим дек всё же стареет, разработчики всё чаще перестают учитывать его существование, покупать всякие леновы-асусы и ставить на них SteamOS — лишняя трата денег, на мой взгляд, и хороший геймпад-декозаменитель был бы кстати.
Придумывать заключение к статьям — самое сложное и неинтересное для меня, так что обойдусь без него. Просто поздравлю ПК-бояр на линуксе и стимдекогоспод с годовщиной и тем, что произошло в мире Steam. А чего за те же 7 лет добился Epic Games Store?