MX Linux и игры: Основные проблемы Linux для игр
Наверное каждый слышал фразы в стиле "линукс не для игроманов", "линукс не для игр", "хотите игры, идите на винду", знакомо? Но в последнее время фанатики демонстративно запускают некоторые игры и показывают скриншоты, мол смотрите, якобы всё прекрасно с играми в линуксах:
реклама
Конечно, Valve вкладывает много ресурсов разрабатывая костыли для запуска игр из своей библиотеки Steam в столь недружелюбной среде как Linux, естественно они это делают не из каких-то там благотворительных побуждений, они просто пытаются первыми занять нишу, да и бесплатный Linux гораздо интереснее использовать в коммерческих целях, чем ту же Windows... Правда почему-то люди не спешат переходить на линуксы, особенно любители поиграть в игры, интересно, почему же?
Ещё меня забавляют статейки в стиле "Linux лучше Windows":
реклама
Эх, а кто-то действительно может поверить что в линуксах нет вирусов... И это при около нулевой (~3%) популярности в сегменте ПК/ноутбуков:
Короче говоря, в зависимости от контекста фанатики рассказывают всё что угодно, лишь бы выставить линуксы как можно лучше, ну и как без легендарного "это не линуксы кривые, это у вас руки косые":
реклама
Так к чему эта болтовня? Просто нужно с чего-то начинать, нельзя просто взять, и показать как у линуксов на самом деле обстоят дела с играми, при этом умудриться рассказать какие проблемы можно встретить при попытке поиграть. И претензии в стиле "дистрибутив не дистрибутив", "руки не руки" и т.п. мною будут проигнорированы, как минимум потому что разнообразие дистрибутивов часто выставляется как преимущество, мол выбирайте любой по вкусу и наслаждайтесь...
Одно дело посмотреть как у какого-то там фанатика работает игра под линуксом, якобы просто с двух кликов по ярлыку, но совсем другое дело увидеть реальный процесс запуска игр, и какие предварительные танцы с бубном нужно сплясать, прежде чем что-либо вообще заработает. Будут ли эти "танцы с бубном" сложнее чем в Windows, уже решать вам, читателям, моё дело попробовать и показать опыт.
Напомню, ранее я пытался перейти на Linux Mint, Manjaro, Xubuntu и другие дистрибутивы (без учёта нескольких десятков в виртуальной машине), сейчас же занялся дистрибутивом MX Linux, и везде есть проблемы, которые мягко говоря мешают нормально использовать систему, но как говорят - всё настраивается и ковыряется с бубном, а если не настраивается и не ковыряется, ну значит руки кривые, дистрибутив неправильный, всё неправда и т.п., короче начинаем продолжать!
-
--
---
Основные проблемы Linux для игр
реклама
Начнём с основных проблем, благодаря которым, по моему мнению, линуксы не способны стать полноценными операционными системами для ПК и ноутбуков.
Что значит полноценная операционная система? Возьмём Microsoft Windows, это отличный пример полноценной операционной системы, ведь серьёзный профессиональный софт вроде Autodesk 3ds Max или Altrium Designer выпускается только для Windows, большинство игр выпускается только для Windows (игровые консоли в учёт не берём по понятным причинам), большинство разработчиков всевозможного софта "попроще" в первую очередь разрабатывают под Windows, даже сервис GeForce NOW официально не поддерживает линуксы, хотя NVIDIA очень хорошо поддерживает Linux драйверами, но с сервисом видимо что-то не смог даже такой гигант:
Хотя оно и понятно, почему NVIDIA не захотела поддерживать Linux для сервиса облачного гейминга GeForce NOW, поди ещё объясни каждому пользователю как правильно танцевать с бубном, да ещё под каждый дистрибутив в отдельности, чтобы установить и правильно запустить всё необходимое для работы сервиса, а потом ещё выслушивать какие они плохие от линуксоидов...
Что из этого всего вытекает? Можно всех назвать мудаками за то что не хотят поддерживать "прекрасный" линукс, но если посмотреть на ситуацию без фанатизма, то вытекает много интересных причин "нелюбви" к "пингвину"...
Первая, и по моему мнению самая главная проблема линуксов это драйверы видеокарт. Нельзя просто взять, и по-человечески установить драйвер видеокарты, а игры как раз в первую очередь зависят от видеокарты, в конце концов постоянно выходят новые версии драйверов, а с ними исправления порой необходимые для самых современных игр, но в линуксах просто установить драйвер это уже геморрой на голову, подробнее о проблеме в отдельной статье:
Драйвер видеокарты: Как выглядит одна критическая проблема практически любого дистрибутива Linux
Да, у меня видеокарта не от "православной" AMD, а от NVIDIA, но кто сказал что с AMD в линуксах проблем нет? Если вдруг установлена R9 290/390 всё ещё позволяющая комфортно играть в большинство игр, то пердолинг с заклинаниями в терминале обеспечен, чтобы просто сменить драйвер на более адекватный...
Причём не факт что вся эта возня сработает как надо, многие кто сталкивался и без меня прекрасно знают, как легко можно нарваться на "устаревшие" инструкции в интернете для линуксов и всё поломать ещё сильнее, но именно про эту инструкцию ничего не скажу, лично не проверял:
И если кто-то скажет "выбрось невидию, купи видеокарту от АМД", ну вы поняли, такое сказать могут только прожжённые фанатики:
Только не подумайте что я фанат NVIDIA, ни в коем случае, раньше я покупал б/у Radeon HD 7850, прекрасная была видеокарта по соотношению цена/производительность, потом были видеокарты HD 7870, HD 7870XT, R9 280, R9 390, R9 290, RX 560, даже был небольшой опыт с RX Vega 56, но по итогу использую MSI GeForce GTX 1070 AERO OC, она тихая, достаточно производительная, 8 ГБ памяти на борту.
Проблем обычно не возникает ни в играх, ни в приложениях, CUDA/OpenCL и всевозможные API прямо из коробки в драйвере от NVIDIA, даже без возни с ручным прикручиванием API через заклинания в терминале, и менять эту видеокарту на что-то другое вообще не вижу смысла, так что попрошу охладить свои стулья если вдруг накалились.
Идём дальше.
Вторая проблема это репозитории, разрабатывать игру и распространять её через линуксоидные репозитории? Просто попробуйте обратиться к репозиториям из какой-нибудь Ubuntu 13.04 или старее, и вы обнаружите, что репозитории давно мертвы...
Довольно сомнительная перспектива для разработчиков игр, не замечаете? Мало того репозиторий не один единственный на все линуксы, так ещё нужно умудриться добавить свою игру туда, ну или создавать свой "особенный" репозиторий и просить каждого пользователя танцевать с бубном, чтобы добавить его в список операционной системы.
Может репозитории и хороши для серверов, банально потому что взаимодействие с серверами происходит через терминал, но в десктопе, как показывает практика, от репозиториев больше плюются, нежели радуются, даже в Windows...
Безусловно есть и любители репозиториев, но принуждать всех к репозиториям зачем? Например, разработчики GIMP, они прямо принуждают пользователей к репозиториям, либо держи ссылку на репозиторий Flatpak, и мутись как хочешь если вдруг нужно установить этот графический редактор на десяток разных ПК, ибо на каждую систему в отдельности придётся выкачать через интернет около гигабайта трафика (точно не помню), или берите исходный код и мучайтесь с ним как можете! С - свобода выбора!
Проще скачать Windows версию этого самого GIMP и через Wine запустить, который кстати тоже нужно ещё каким-то раком умудриться правильно установить в линукс, особенно если надо всё сделать на автономной системе...
Из этого вытекает невозможность распространения софта и игр в целом, ибо большинство людей привыкли установить - запустить, или распаковать - запустить, а как именно пользователь получил приложение это должно быть его личное дело, хоть дискетами!
Буквально по всему миру люди рано или поздно зовут соседа "программиста", чтобы тот переустановил "шиндовс", и практически везде есть такой сосед "программист", как думаете, такие "программисты" станут работать с линуксами и репозиториями, когда можно просто взять флешку с Windows и спокойно всё разом установить полным комплектом даже без интернета, в том числе игры? Не думаю, и реальность показывает, что такие люди не заинтересованы возиться с линуксами, иначе Linux уже давно вытеснил бы Windows, а Microsoft не наглела бы с аппаратными закладками вроде Microsoft Pluton, и не принуждала бы пользователей подключать ПК к интернету при настройке Windows 11 сразу после установки.
Третья проблема, неполноценность исполняемых файлов Linux и зависимости.
Неужели нельзя скомпилировать и дать пользователю готовое для использования приложение? Конечно можно, если бы только разработчики линуксоидного софта не были "верблюдами"...
Можно распространять софт/игры в виде скомпилированных бинарных файлов, правда тогда нужно смириться с кучей линуксоидных косяков, например с неполноценностью ELF (невозможно встроить иконку в исполняемый файл), с отсутствием стандартного расширения исполняемых файлов, просто в линуксах расширения файлов вообще что-то "неправильное" по своей сути, да и граница совместимости размыта и размазана между дистрибутивами, в одном дистрибутиве заработает, в другом не заработает, просто потому что в дистрибутиве может отсутствовать какая-то очень базовая зависимость, а потом объясняй пользователю что это он поставил неполноценный хлам вместо операционной системы, а не игра кривая...
Порой разработчики и для одной единственной Windows не могут вылизать игру до идеала, и проскакивают косяки приводящие даже к синим экранам, что будет при попытке поддерживать хотя бы десяток дистрибутивов Linux, можно только догадываться.
Да, разработчики игрового движка Godot Engine проделали огромную работу, игры сделанные на Godot Engine 3.5 способны работать как в современных дистрибутивах Linux, так и в старых вроде Ubuntu 13.04, но есть проблема, не каждый дистрибутив 2013 года имеет в себе нужную для работы зависимость GLibc версии 2.17, а более старые версии не подходят.
Установить GLibc версии 2.17 в каком-нибудь Debian 7 это такой жуткий геморрой на голову, что наверное проще свой GLibc написать с нуля, там просто лютый геморрой творится, что словами описать это отдельную здоровенную статью написать...
А Godot Engine версии 4 тем временем уже в дистрибутивах 2015 года не желает работать, и вот как быть разработчикам игр, которые желают охватить максимальное количество игроков? Особенно разработчикам, которые хотят иметь передовой функционал для разработки игры, но при этом удержать и "бомжей" на слабом железе со старыми версиями ОС?
Писать свой игровой движок работающий даже в дистрибутивах 2010 года? А завтра какой-нибудь дурачок выбросит какую-нибудь мелкую, но необходимую для движка зависимость из дистрибутива, на котором базируются многие другие дистрибутивы, и всё переделывать ломая голову над костылями для замены теперь нерабочего кода...
Линуксы 2015 года не умеют в Vulkan API? Извольте, но даже старая Windows 7 выпущенная в 2009 году прекрасно работает с играми на основе Vulkan API, так что это не оправдание плохой поддержке старых дистрибутивов игровым движком, а OpenGL 2.x/3.x поддерживает даже Windows XP выпущенная в 2001 году, так что это не оправдание и для Godot Engine 3.5, что не работает на дистрибутивах старее 2013 года.
Как думаете, разработчики игр находятся в восторге от такого жёсткого сокращения возможной аудитории, просто потому что это линуксы? Я точно не в восторге...
Четвёртая проблема это совместимость, нельзя просто взять, и запустить что-то современное в дистрибутиве 10 летней "тухлости", как и наоборот, что-то старое запустить в современном дистрибутиве.
Да, эта проблема вытекает из зависимостей, про которые уже было сказано ранее, тем не менее, можно добавить ещё несколько слов.
Для примера есть игра Genshin Impact, десятки миллионов игроков, постоянно выходят новые обновления расширяющие и без того немаленький игровой мир, и эта игра прекрасно работает на Windows 7 в 2023 году:
Тем временем в линуксах обычно плевали на совместимость.
Если в Windows можно собрать на флешку автономные установочные пакеты NET Framework, VC Redist, DirectX, и этого будет достаточно для покрытия практически всех зависимостей необходимых для большинства софта и игр, то в линуксах целое болото из разных зависимостей, что-то заменяют/добавляют, что-то даже имеют наглость выбрасывать из системы. И в каждом дистрибутиве своё особенное болото...
Оно надо разработчикам? Постоянно переписывать игру под бурлящее болото зависимостей, да ещё и под 600+ дистрибутивов? Ладно Windows, если что-то в редких случаях и ломают, есть смысл выпустить патч исправляющий проблему, как-никак есть ради кого работать, а что в трёхпроцентных линуксах... Ради кого брать на себя дополнительную работу по исправлению косяков совместимости, которые всплывают после очередных линуксоидных обновлений?
Может ещё разработчикам создавать под каждую свою игру особенный дистрибутив линукса? Ну чтобы наверняка всё работало, и пользователи массово не изнасиловали отдел технической поддержки игры бесконечными проблемами на ровном месте... Ну тогда дистрибутивов будет не 600+, а 100000+, кому оно надо?
И это ведь далеко не полный список проблем, благодаря которым "линукс не для игр", но больше примеров я не буду приводить, иначе будет набран просто неприличный объём материала на статью.
Раз уж всё равно не выйдет всё разместить в пределах одной статьи, то хотя бы некоторые моменты постарался разжевать, чтобы было понятие, почему даже я не особо горю желанием что-либо разрабатывать под линуксы, хотя уже разрабатываю ChimbaBench...
-
--
---
Продолжение следует
Если бы линуксы были совсем непригодны для игр, сейчас я не писал бы эту статью, да и в принципе не обращал внимание на столь недружелюбную ОС, так что давайте просто посмотрим что из линукса выйдет в плане игр, но уже в следующих статьях.
Эта часть можно сказать была вводной, как раз для людей, которые вообще не имеют опыта с линуксами, и понятия не имеют что "там" происходит, в отличие от меня, прямо сейчас пишущего статью из под MX Linux:
Только непонятно почему в качестве терминала числиться ChimbaBench.exe... Хотя ясно, я же принял стандартное расширение ".exec" для исполняемых файлов в среде Linux, а NeoFetch скрипт как раз обрезал расширение, вот и получилось ".exe", в общем всё как всегда в линуксах, радует что это не мой косяк, но само наличие косяка не радует:
Вполне возможно у кого-то будет другой опыт в другом дистрибутиве, что в принципе не удивительно, однако сути это не меняет. Есть дистрибутивы, и они как-то работают, обычно не очень хорошо, и вместо исправления недостатков дистрибутивов, почему-то меньшинство (любители линукса) предпочитают обмазываться тоннами костылей рассказывая как у них вот игра от Windows якобы в два клика запускается под линуксом, да ещё и производительность чуть ли не в 2 раза выше, чем под Windows, для которой собственно игра и разрабатывалась.
У любого нормального человека уже на этапе "производительность выше чем под Windows" возникнут сомнения, а не халтурит ли там с чем нибудь этот линукс, и не привирает ли человек, который рассказывает про более высокую производительность... Да и почему вообще занимаются этими костылями для запуска Windows игр, почему не писать игры под линукс изначально, раз он такой прекрасный весь из себя... Так много вопросов, но так мало действительно адекватных ответов...
В общем я могу сказать что под линуксами действительно можно получить производительность выше, чем под Windows, однако это палка с двумя концами, порой производительность оказывается даже ниже, чем была под старой Windows 7.
И на этом закончим, хватит, оставим самое интересное на следующую статью.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила