Предисловие и тестовые условия
Прежде чем начинать, представлю предыдущие две статьи по теме:
Почему Linux не для игр на примере игры 7 Days to Die
Почему Linux не для игр, на примере игры Control
В прошлый раз я тестировал игры Control и 7 Days to Die 20.6 b9, в обоих случаях использовался дистрибутив Chimbalix 23.1 Alphachi (находится в разработке) и Windows 7 SP1, проверялись только Windows версии игр.
Так как Linux не способен "нативно" запускать Windows приложения, при тестировании игр Control и 7 Days to Die 20.6 b9 использовался для запуска встроенный в дистрибутив Wine Staging версии 8.12 с кастомным префиксом собранным из частей следующих компонентов:
Конфигурация ПК так же остаётся неизменной:
На этот раз в тестировании будет участвовать игра 7 Days to Die 21 b324, нативная версия для Linux, а так же нативная версия для Windows, чтобы тестирование было объективным, использоваться будут отвязанные от DRM платформы Steam версии игры:
Почему я не использую "лицензионную" версию игры в Steam? Ведь "пиратство" якобы плохо, все дела... Только вот у меня уже давно куплено право на запуск игры 7 Days to Die в DRM платформе Steam, но мне нужно не право на запуск, а сама игра!
Steam, как DRM платформа, часто продаёт не игры, а права на запуск игр, это значит, что я не могу просто взять, и запустить игру без разрешения получаемого через интернет от серверов корпорации Valve, что по факту ущемляет мои возможности по копированию и запуску игры на других ПК, в том числе на других операционных системах в пределах одного ПК.
Конечно, не все игры на торговой площадке Steam заражены DRM, но конкретно 7 Days to Die заражена DRM костылями, и они ущемляют мои возможности запуска / резервного копирования игры, за которую между прочим были уплачены деньги...
Есть ли DRM-Free игры в Steam и как продают "право на использование" под видом продукта
Как можно заметить из результатов старой проверки, 129 игр из 359 сразу же оказались работать без разрешения DRM платформы Steam, которое можно получить только через интернет установив приложение от корпорации Valve и авторизовавшись в системе...
Причём важно заметить, большинство из протестированных игр из разряда "инди", более-менее серьёзные "тайтлы" практически все попали в категорию "отказались работать без доступа к Steam клиенту", а так же не учитывались игры от Valve, они очевидно повязаны на DRM. Стоит ли говорить, какой это геморрой на голову, когда нужно провести объективное сравнительное тестирование на трёх разных ПК без доступа к интернету?
Собственно вот ещё одна причина, почему я больше не трачу деньги на DRM платформы вроде Steam, что торгуют правом на запуск вместо игр... Была как-то у меня такая игра как "Dead Island: Epidemic", прикольная была игра, затягивающая и интересная, пока разработчики внезапно не "кинули" всех игроков, включая меня:
Вроде как игра есть, всё хорошо, но по факту она мертва, у неё даже страницы в магазине Steam давно нет, ну и конечно поиграть в игру тоже невозможно насколько помню... Это меня в те времена очень взбесило, и я послал на три "ласковые" буквы разработчиков пытавшихся переслать меня на другой проект...
Но тогда я всё ещё был глуп и неопытен, и продолжал пользоваться DRM платформой Steam, торгующей "правом" под видом игр.
Сейчас я уже поумнел, опыта набрался, и просто не трачу деньги на DRM платформы вроде Steam, и никому не советую покупать "права" под видом продукта (игр), ведь кто знает, какая ещё моча ударит в голову корпорациям торгующим "правами" под видом игр:
Собственно на этом завершу данный раздел статьи.
Ах, да, когда приверженцы Linux рассказывают сказки про то, что Linux для игр, они в большинстве случаев ссылаются на DRM платформу Steam, особенно на количество игр, мол, как линукс может быть не для игр, если так много "игр" там в Стиме... И это очень забавная ситуация, фактически вводящая окружающих людей в заблуждение, которые ещё не в курсе про продажу "права на запуск" под видом продукта.
-
--
---
Windows 7 (Native)
Ну что, начнём сбор результатов с Windows 7, не забываю запустить MSI Afterburner, которому нет никаких адекватных альтернатив со стороны Linux:
Начинаю с Vulkan API, настройки "Ultra", угол обзора 85 градусов, именно с такими настройками будет проводиться сравнительное тестирование в дальнейшем:
Жду некоторое время чтобы всё прогрузилось наверняка, и фотографирую результаты, получилось ~65 FPS:
OpenGL API, ~55 FPS:
DirectX 11 API, ~62 FPS:
На этом сбор результатов в среде Windows 7 завершён, переходим к Linux!
-
Linux (Native)
Ярым адептам Linux очень не по нраву пришлись мои предыдущие тесты (ссылка в начале статьи), цель которых изначально была протестировать игру, что была под рукой, т.е. Windows версию 7 Days to Die 20.6 b9, особенно громко кричали адепты про нативную версию игры для Linux, мол, я обязан был именно её скачать, чтобы сравнивать производительность:
Ну что могу сказать, хотели нативную версию игры под Linux? Получите и распишитесь! Только потом не жалуйтесь, это выглядит, мягко говоря, жалко и низко.
Причём важно заметить, в предыдущей статье я более чем конкретно указал, что участвовать в тестировании будет игра которая есть под рукой, и у меня не было желания качать что-то другое, но о таких нюансах, у адептов Linux обычно принято тактично умалчивать при написании гневных комментариев, ну да ладно:
По традиции начинаем с Vulkan API и перепроверки настроек игры:
Имеем 57-59 FPS, короче говоря ~58 FPS:
Заканчиваем на OpenGL API, увы, но больше ничего нет под Linux, получаем ~36 FPS, это явно меньше, чем было с OpenGL в Windows 7, забавно:
Собственно на этом результаты собраны.
-
Linux (Wine)
Для полноты сравнения запустим Windows версию игры через Wine, начинаем с Vulkan API и получаем ~33 FPS, что не сильно меньше, чем нативная версия игры в OpenGL режиме:
Далее OpenGL, имеем ~30 FPS:
DirectX 11 режим, получилось ~31 FPS, собственно на этом сбор результатов завершён окончательно:
-
--
---
Проблемы и заключение
Как уже все заметили я не просто взял игру и начал тестировать, нет, я сначала поиграл, посмотрел как работает нативная Linux версия игры, и у меня есть что сказать на этот счёт...
1) Утечка памяти...
Нативная версия игры под Linux выдает нормальный FPS на высоких настройках графики (не Ультра), играть действительно комфортно с моим ПК на основе R7 2700X и GTX 1070, но есть очень неприятная проблема, спустя примерно час игры происходит нехватка видеопамяти, как следствие происходит своппинг в ОЗУ и FPS начинает постепенно падать:
Но падение FPS это ещё половина беды, ведь помимо снижения производительности возрастает задержка вывода изображения, что обычно ошибочно называют "инпутлагом", т.е. задержкой ввода, и она по ощущениям нарастает вплоть до 150-250 мс, что крайне много, и не позволяет даже нормально прицелиться находясь в упор к противнику...
Да, можно снизить настройки графики, тогда 8 ГиБ памяти моей GTX 1070 хватит очень надолго, но это заметное снижение качества графики, что не очень приятно, но всяко лучше, чем пытаться играть в OpenGL режиме, о чем будет следующий пункт:
...
2) OpenGL
Казалось бы, если с Vulkan API под линуксом проблема, почему не перейти на OpenGL? Только вот производительность в OpenGL режиме под линуксом вышла печальной, приходится сильно снижать настройки графики, практически до минимума, чтобы получить больше 60 FPS, но это ещё пол беды...
Настоящая беда состоит в "дёрганой" картинке, т.е. вроде счётчик показывает 60-70 FPS, но на глаз выглядит как 20-30 FPS, только когда FPS устремляется на значения выше 110, тогда картинка действительно хорошо выглядит, но я не могу играть постоянно смотря под ноги или в небо, но и с "дёрганым" изображением играть тоже невозможно нормально.
Так что под линуксом приходится использовать именно Vulkan API без вариантов.
3) Отвал управления
Эта проблема настолько типичная для Linux, что о ней не знают только люди никогда не использовавшие Linux, и люди, которые делают вид, что не знают об этой проблеме...
Например, в нативной версии Terraria для Linux происходит отвал управления если переключить раскладку с английской на какую-либо другую, и это происходит прямо во время игры, т.е. достаточно обратно перейти на английскую раскладку и можно играть дальше.
Но 7 Days to Die это вам не Terraria, данная игра основана на Unity Engine, и разработчики видимо в курсе о характерном для Linux косяке с раскладками, игра в момент запуска фиксирует управление на основе активной раскладки, однако есть проблема... У игры происходит отвал управления если на момент запуска была выбрана не английская раскладка клавиатуры, и в процессе игры это никак не изменить, нужно полностью закрывать, переключать раскладку на английскую, и снова запускать игру.
Да, эта проблема вероятно обойдёт стороной пользователей, у которых раскладка автоматически выставляется на английскую для каждого приложения, но в моём случае происходит глобальное управление языком ввода для всех приложений, и случайно забытая раскладка перед запуском игры немного напрягает.
Причём важно заметить, в Windows такого косяка в принципе нет, даже игра запущенная через Wine не подвержена данной проблеме, это нативная Linux специфическая проблема, увы, но я не знаю что с этим делать в целом.
4) Краш при смене настроек игры
Это проблема игры, причём специфическая для Vulkan API, казалось бы, зачем я про неё пишу здесь?
Всё просто, играя в нативную Linux версию игры среди API доступен по факту только Vulkan, ведь с OpenGL играть невозможно, а DirectX недоступен по понятным причинам, и если прямо в процессе игры я решу сменить настройки графики, это обязательно приводит к крашу.
Причём в Windows 7 используя DirectX 11 я могу спокойно ковырять настройки без вылетов и не беспокоится об утечках памяти играя на высоких настройках графики.
Ну что, пожалуй на этом список можно завершить, самые основные проблемы с которыми сталкивался перечислены, можно перейти к сводке результатов:
Что сказать, нативная версия игры для Linux действительно работает лучше, чем запущенная через Wine, если конечно тактично закрыть глаза на вышеперечисленные проблемы...
В плане производительности конечно же чуда не случилось, Linux как не дотягивал даже до уровня древней Windows 7, особенно в OpenGL режиме, так и не дотягивает. Да и если бы в линуксе производительность оказалась выше, это не отменяет того факта, что в среде Windows гораздо меньше проблем в целом.
Вероятно начнутся оправдания от ярых адептов Linux, мол, дистрибутив не дистрибутив, драйвер не драйвер, видеокарта не видеокарта, тесты не тесты, настройки не настройки, руки не руки и так далее, только вот в таких порывах обычно забывают про тот факт, что в Windows просто запускается игра и играется, а в линуксах мне пришлось свой дистрибутив создать исправляя бесконечные, характерные практически для каждого линукса косяки, прежде чем смог сравнительные тесты нормально проводить...
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.