как работают игры на линуксе

Игры на Linux: какие уже есть и стоит ли разрабатывать новые?

Linux — мощная ОС, сопоставимая по возможностям с Windows. Но геймеру под этой системой будет невесело. Разбираемся, насколько всё плохо.

как работают игры на линуксе

как работают игры на линуксе

Я познакомился с Linux около семи лет назад. Система мне понравилась,
но из-за того, что на ней нельзя было запускать игры, я решил вернуться к Windows.

Конечно, можно было использовать Wine и другие программы, которые позволяют запускать приложения для Windows, но тогда это было слишком сложно. Гораздо проще просто нажать на ярлык и начать играть, чем всё время возиться со слоем совместимости, драйверами и прочим.

Нативные игры для Linux были редкостью, да и то копии вроде Quake и Mahjong. Сейчас ситуация изменилась, хотя до сих пор существует миф, что на Linux играть нельзя.

как работают игры на линуксе

Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Во что можно поиграть на Linux

Почти во всё. Многие разработчики выпускают свои игры сразу для нескольких ОС: Windows, OS X и Linux. Особенно это касается современных и инди-игр — разработчики делают всё, чтобы получить больше аудитории.

Так, например, небольшим студиям, которые делают игры на Unity или Unreal Engine, ничего не стоит выпустить игру сразу на нескольких ОС. Студии покрупнее часто обращаются за услугами к сторонним компаниям вроде Feral Interactive, которые портируют игры. Поэтому у пользователей Linux есть возможность без проблем поиграть, например:

К Linux со временем адаптируют многие тайтлы. Например, Metro 2033 была доступна только для Windows, но потом вышла версия Redux (переработанная и улучшенная), которая работает и на Linux.

Вот примерные данные о количестве портированных игр ( актуально на апрель 2020 года).

МагазинВсего игрС поддержкой Linux
Steam40 0007 000
GOG.com3 0001 000
Origin?0
Microsoft Store2 0000
Epic Games??
UPLAY2000

Цифры достаточно скромные, даже на Mac OS X в Steam поддерживается 11 000 игр, однако для Linux создают различные инструменты, которые значительно увеличивают количество работающих игр.

Запуск игр для Windows на Linux

Кроме Wine есть и другие способы запустить игру. Например, Lutris — ПО, которое позволяет добавить ещё около 3 000 игр к предыдущим. Однако дальше всех в этом плане зашёл Proton.

Proton — это слой совместимости для игр от Steam. Он позволяет запускать ещё 7 000 игр и, в отличие от Wine и Lutris, не требует дополнительных действий:

Исключение — некоторые старые игры.

как работают игры на линуксе

Энтузиасты создали сайт ProtonDB, где есть список поддерживаемых игр, оптимальные настройки, какую версию Proton лучше использовать для определённой игры и так далее.

как работают игры на линуксе

Proton был выпущен в 2018 году и с тех пор постоянно обновляется. Со временем, скорее всего, не останется игр, недоступных на Linux.

Ложкой дёгтя остаются онлайн-игры. Вы могли слышать, о массовых банах игроков в Battlefield V — игра восприняла DXVK (об этом ниже) за читерское ПО. Такие проблемы могут быть и с VR: не все разработчики шлемов добавляют поддержку Linux либо же делают это с большой задержкой.

Почему игр на Linux так мало

Несмотря на то что почти вся техника работает на Unix или Unix-подобных системах (в том числе Linux), Windows прочно заняла нишу ОС для персональных компьютеров. И хотя в последнее время её доля падает (в 2009 году она составляла 95%, а в 2020-м — уже 77%), практически все компьютерные игры выходят именно на Windows.

Благодаря популярности Windows все инструменты и библиотеки, необходимые для разработки и запуска игр, создавались именно под неё. Например, графическая библиотека DirectX поддерживается только в Windows. Единственным серьёзным аналогом долгое время был OpenGL, который хоть и является кроссплатформенным, но уступает в производительности.

Сейчас достаточно близко к DirectX подобрался Vulkan — улучшенная версия OpenGL. Если разработчики добавляют в свою игру поддержку Vulkan, то её гораздо проще портировать на Linux. Кроме того, существуют различные обёртки (например DXVK) — библиотеки, которые позволяют запускать DirectX с помощью Vulkan.

Подробнее о графических библиотеках читайте в статье «На чём создавать игры».

Также трудности могут возникнуть из-за особенностей игры. Например, «Космические Рейнджеры 2» на самом деле состоят из двух игр. Такое решение хоть и помогает снизить нагрузку на компьютер, но мешает портированию или запуску на других ОС.

Стоит ли разрабатывать игры на Linux

Раньше разработчикам приходилось использовать графические библиотеки напрямую. Сейчас эту задачу берёт на себя движок, а всё, что остаётся сделать, — выбрать библиотеку в настройках.

Так что вы можете создать игру для Windows на DirectX, а потом просто скомпилировать её для Linux на Vulkan. В большинстве случаев для этого понадобится всего несколько кнопок, но иногда нужно немного поправить код.

Источник

Win-игры под Linux: миф или реальность?

Топик написан под влиянием множества заявлений (в том числе в хабрасообществе) о том, что игр под Linux почти нет, соответственно последний не является десктоп-системой, способной конкурировать с Windows. Используется данный аргумент, в паре с другим — «под ваш линукс нет нужного для работы софта» — в качестве последней линии обороны, когда говорить об «удобстве», «простоте освоения» или «безопасности» уже бесполезно. Любая домохозяйка без проблем освоит Ubuntu, особенно если обучать её именно на этой системе, а не переучивать с винды. Да и вирусы под эту ОС пока что приходится собирать вручную, с чтением мануала. И вот тут-то выступает некто, заявляющий примерно следующее: «Но ведь у домохозяйки есть дети, которые хотят погонять в игрушки, а их-то на вашей красноглазой недооси и нету! Ха-ха-ха! (здесь смех киношного злодея)».

Важное уточнение. Я не являюсь Linux-евангелистом, не пиарю эту ОСь или какой-либо из её дистрибутивов, также мне нет дела до популярности проекта Wine. Я просто долгое время занимался обзором игр из-под линукса, запуская стоящую параллельно винду лишь в случае крайней необходимости. А потому знаю, о чём говорю. И да, линукс рассматривается на примере Ubuntu, для всех остальных что-то может незначительно меняться.

Вообще-то игры именно под линукс существуют. Большинство — бесплатные. Некоторые даже пытаются конкурировать со своими коммерческими аналогами. Но они редко могут сравняться по качеству исполнения с коммерческими, а потому чаще всего мы либо имеем портированную версию (World of Goo, например), либо запуск из-под не-эмулятора Wine. А что вы хотите, если разработчикам сейчас просто невыгодно адаптировать свои игры для ещё одной ОС? Они и без того прижаты двойной разработкой: приставки+PC. Приходится вертеться.
Но всё не так уж и плохо. Попробуем разобраться на практике. Большого количества игр в пример приводить не буду, для этого существует winehq, всё, что там отмечено «платиной» или «золотом» можно смело ставить и пользоваться. А вот возможные варианты развития событий после установки опишу.

Для начала — собственно процесс установки. Ставим Wine из репозиториев (если ещё не установлен). Запускаем конфигуратор из меню или winecfg из консоли. Настраиваем, если нужно, или сразу нажимаем ok. Запускаем установщик игры, как обычно. Всё. Дальше с каждой игрой потребуется повторять только последний пункт. Сложно?
Важный момент: никогда не запускайте wine и виндовый софт из-под суперпользователя/через sudo. Чревато непредсказуемыми последствиями.
Второй важный момент: если что-то поставилось неправильно, тупит, глючит или вы вообще умудрились запустить какой-нибудь виндовый вирус (да, и такое бывает. ) — не бойтесь потереть полностью домашнюю папку вайна. Следующий запуск конфигуратора снова её создаст.
Ну и третий: проверьте, нет ли для игры, которую вы хотите поставить, линуксовой версии? Сэкономит кучу сил и времени.

ПОсле этого возможны три варианта. Итак, первый: игра помечена высшей оценкой на winehq, а соответственно проблем при её установке и в процессе игры быть не должно. Как правило, их и нету. Главный косяк, с которым вы можете столкнуться в таком случае — проблема с правами доступа. Какие-то папки могут неведомым образом оказаться read-only или доступными только для суперпользователя, и если они нужны игре не только для чтения — она будет вылетать с ошибкой или странно себя вести. Такая проблема точно существует в Ubuntu 9.04, проявляется совершенно рандомно. Лечится ручной установкой прав.

Второй: это игра, помеченная «золотом» или «серебром». Тут возможны нюансы. Например, может потребоваться включить или отключить аппаратное ускорение звука в настройках вайна. Или потребуется насильное переключение в OpenGL-режим. Все эти проблемы, как и их решения, описываются в комментариях к игре на том же appdb. Как правило, игры всё равно запускаются, но без выполнения рекомендаций случаются казусы вроде заикающегося звука или битой графики. Редко. Но случаются. А OpenGL — это почти гарантированно неработающий аппаратный курсор, тоже неприятная мелочь.

Третий: — оценка ниже «серебра». Тут уже всякое бывает, начинается стандартная для Linux история, которую попробую изобразить в лицах:
(форум)
(истеричный вопль новичка) — Аааа, у меня ничего не работает, помогите.
(ехидный голос гуру-1) — А у меня всё работает. ЧЯДНТ?
(ехидный голос гуру-2) — Мальчик, а ты с какими параметрами ядро собирал?
(новичок) — Чиго?
(гуру-2) — А, всё понятно… *многозначительное молчание*
(голос из зала) — Да он даже не знает, что такое ядро, чего вы с ним церемонитесь?
(благородный рыцарь) — Уважаемый, вам стоит сделать *рекомендация-1* и *рекомендация-2*, а также почитать мануалы.
(голос из зала) — Да он даже не знает, что такое мануалы!
(уже-не-новичок) — О, спасибо, всё получилось!
(новичок-2) — Зато у меня ничего не работает, советы не помогли…
(все хором) — Аргх.

Проще говоря, либо всё заработает сразу, либо не сразу, либо вообще не заработает. Игры, использующие DX10 в обязательном порядке, а также кое-что ещё, скорее всего сразу отметается. Проще сразу перезагрузиться в винду, чем с ними мучаться. Но вообще стоит почитать форумы, вдруг вашу проблему уже решили?

Помимо взаимодействия игр с Wine, неприятности также может генерировать hardware. Например, видеокарты ATI/AMD. С ними всё до сих пор сложно, хоть и не у всех. Как и всегда, находятся люди, у которых проблем нет даже с самым капризным железом.
Некоторые контроллеры (джойстики, геймпады, рули, клавиатуры Zboard) неспособны нормально взаимодействовать с линуксом, некоторые экземпляры работают неправильно, другие не работают совсем. Нет драйверов. Дружное спасибо производителям.
Внешний звук, особенно в формате usb/firewire-коробочек, тоже может вызывать проблемы.

Ну и наконец, в случае глюков стоит проверить установленный софт. В крайне редких случаях что-то может конфликтовать. Как пример — Pulseaudio в Ubuntu вызывает очень неприятный эффект «рваного» и «заикающегося» звука. Ну и драйвер на видео всё-таки должен быть установлен, а то были случаи…

Напоследок — несколько примеров из собственного опыта. Выбраны почти случайно.
Stalker, S:Clear Sky. Всё работает нормально. Больше добавить нечего.
World of Warcraft. «Платина» в appdb, работает без проблем, иногда быстрее, чем в Windows. Иногда медленнее, раз на раз не приходится, но и прирост и снижение производительности в пределах 5-10 fps (насколько могу судить). Пинг стабильно ниже. Из багов могу припомнить только два: отсутствие аппаратного курсора в OpenGL-режиме и не всегда срабатывающий ping timeout (игрока не всегда выбрасывает на экран логина в случае разрыва связи — так и оставляет в «зависшем» мире).
Starcraft: Brood War. Работает отлично, хотя в appdb почему-то получил «серебро». Ни единой проблемы мной лично не замечено.
Diablo 2. При выходе из игры выбрасывает табличку с ошибкой, но реальных проблем не замечено.
Red Alert 3 и дополнение. Проблем бы не было, если бы не отсутствие воды. В смысле, движок из-под wine отказывается отрисовывать воду как таковую. В результате можно наблюдать забавные казусы вроде плывущих по воздуху танков-амфибий. Возможно, это правится какой-то настройкой.
Painkiller Overdose. Заработал без проблем, ничего править не пришлось.
Warhammer 40k Dawn of War, все дополнения к нему и Dawn of War 2. Запускаются, работают, fps чуть ниже, чем на аналогичной конфигурации под виндой.
Freelancer. Работает. Не работает аппаратный курсор, что в режиме free flight может доставить ряд проблем. FLMM работает. DS не проверял.
TES: Oblivion. Всё работает без проблем.
Half-Life/HL2/TF2 итд. Работает. В Cedega вообще заявлена поддержка всего этого хозяйства «искаропки», но зачем нам платный продукт, когда есть бесплатный и /dev/hands?
Heroes of Might and Magic 3, HoMM 5, аддоны к ним. Как ни странно — работают. А что ещё нужно для счастья?
А вот Settlers, начиная со второй версии и заканчивая пятой, у меня не запустились. Жаль.

В общем, особых проблем у детей линукс-домохозяйки не будет, и скучать им не придётся. В крайнем случае нужно будет повозиться с настройками да почитать форумы… Мне не кажется это такой уж большой проблемой. Те, у кого в детстве был «Спектрум» или его аналоги, поймут. В конце концов, современных детей не заставляют писать игры самостоятельно, чтобы в них поиграть, правда?

Источник

[ГАЙД] Установка и оптимизация Linux для игр

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

Тестовый пк и Linux

Для установки на компьютер операционной системы Linux, выбор автора пал на дистрибутив ArchLinux, что является одним из лучших, если речь идёт об игровой производительности и выжимки максимума.

Подготовка

Для установки системы будет использоваться AnarhyInstaller это графический установщик ArchLinux.
Для установки системы необходим съёмный носитель информации: USB флешка, CD-DVD диск, съёмный Hard.

1. Скачиваем образ системы c Github.
2. Скачиваем средства записи Rufus или любой другой аналог.
3. Вставляем USB флешку в компьютер и запускаем Rufus, выбираем образ формата iso через кнопку выбрать и нажимаем старт, на все вопросы отвечаем да.

4. По завершении записи перегружаем компьютер и нажимаем горячие клавиши, мы должны выбрать съёмный носитель, как загрузчик, у всех по-разному, но обычно это клавиши F11 или F2.

Установка

В установке нет ничего сложного, просто следуйте шагам ниже, я постараюсь давать пояснение к каждому параметру.
Выбираем самый верхний параметр UEFI.

1. После окончания загрузки служб вводим 1 и нажимаем ENTER.
2. Нас приветствует выбор языка установщика, выбираем Русский.
3. Выбор языка раскладки клавиатуры, пожалуйста, выбирайте US во избежание бага.
4. Выбор и сортировка зеркал серверов обновления системы и программ, просто тыкаем ENTER.
5. Выбор страны зеркал вашей страны, я выбираю RU — Россия.
6. Выбор языка программ и системы, я выбираю ru_RU — UTF 8 — для Русского языка.
7. Настройка времени, выбираем или местное время по странам или сразу UTC.
8. Разметка диска, выбираем автоматически и жмём ENTER.
9. Выбираем на какой диск хотим установить систему и жмём ENTER.
10. Выбор файловой системы зависит от предпочтений, но автор советует BTRFS.
11. Выбор файла подкачки, на ваше усмотрение, но я жму нет.
12. Выбор раздела разметки, если у вас новый пк — жмите да.
13. Подтверждаем запись.
14. Выбираем ядро и графическое окружение сами для избежания мусора, Anarhy-Advenced.
15. Выбор ядра, zen, ибо оно быстрее.
16. Выбор шела, на вкус и цвет, но автор выбирает zsh.
17. ENTER.
18. ENTER.
19. ENTER.
20. 32-битные библиотеки необходимы для работы Steam, включаем.
21. Включать ли интернет при старте, да.
22. Включить ли поддержку WIFI? Выбираем сами.
23. Нет, но если вы из 2004, то вам это нужно.
24. Если вы хотите установить рядом с Windows или любой другой системой, то жмите да, я же жму нет.
25. Да.
26. Выбираем More-Desctop, нажимаем ENTER.
27. Выбираем Gnome и жмём пробел, а потом ENTER.
28. Отказываемся от EXSTRA, ибо оно ведёт к захламлению системы.
29. Если у вас ноутбук, то ставим.
30. Устанавливаем менеджер входа.
31. Я выберу gdm.
32. Водим имя нашего пк.
33. Вводим пароль для root.
34. Создаём нового пользователя и аналогично указываем для него пароль, жмём готово.
35. Запускаем установку и PROFFIT.

На самом деле в установке нет ничего сложного, ибо она занимает минут 8, главное, следовать шагам и у вас всё получится.

Видео если не понятно.

Оптимизация

После установки системы и успешного входа необходимо выполнить оптимизацию и настройку системы для удобства работы.

1. Удаление лишнего мусора и программ в Gnome 3.
Открываем терминал — обзор>> T>>терминал.


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

2. Все последующие программы будем собирать с нативными флагами, то есть компилировать их под наше оборудование, но сначала установим зависимости.

Привести строчки CFLAGS и СXXFLAGS в параметры native, как на картинке.
Сохранить изменения Ctrl+x, Y, ENTER.

3. Установка Русского языка, драйверов и программ.
Русский язык устанавливается весьма просто — обзор >>параметры>>Регион и язык и жмём +>>добавить.

Компиляция игрового ядра под процессор.

Особенностью Linux-систем, в отличие от Windows, является открытость исходного кода ядра, что позволяет выполнить нативную компиляцию ядра под оборудование, но и не простого ядра, а игрового.

Предварительно создадим папку tools в домашнем каталоге.

Открываем консоль и вводим.

Выполняем в точности, как на картинках, полный размер доступен под спойлером.

как работают игры на линуксе

Мы выполнили с вами оптимизацию под центральный процессор, отключили динамические тики процессора, отключили ненужные проверки Tracers, а также выполнили оптимизацию общения внутренних компонентов cpu под малоядерные 4-6. Возвращаемся в главное меню с помощью ESCAPE и нажимаем F6, а потом ещё ESCAPE и пойдёт компиляция.

Установка ядра успешно выполнена и прежде чем переходить на него, давайте выключим Spectre и Meltdown с прочей гадостью, что снижают производительность.

Вводим данные команды в параметр ядра.
quiet splash noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off rootfstype=btrfs lpj=изменить на ваш nowatchdog raid=noautodetect ipv6.disable=1 nvidia-drm.modeset=1 mitigations=off

Узнать свой.
dmesg | grep ‘lpj=’
nvidia-drm.modeset=1
# Только для nvidia.
rootfstype=btrfs
# Ваша файловая система.

Сохраняем и переходим в первую вкладку, переносим linux-lqx в самый верх с помощью стрелочки и сохраняем.

Для установки микрокода вводим по порядку.

Теперь выключаю компьютер и проверяю микрокод. # Не перезагрузка — это важно.
Загрузка заняла 4 секунды.

Установка демонов-служб контроля для повышения производительности

В Linux — службы зовутся демонами, а в нашем ArchLinux после установки не хватает парочки, а значит давайте это исправим, благо автор собаку съел и знает, что необходимо для качественной производительности.

1.2 Ananicy — это демон повышающий приоритет задач, его установка очень сильно повышает отклик.
cd tools # Переход в папку tools.
git clone https://aur.archlinux.org/ananicy.git # Скачивание исходников.
cd ananicy # Переход в ananicy.
makepkg-si # Сборка и установка.
sudo systemctl enable ananicy # Включаем службу.

1.3 Включаем TRIM — полезно SSD и жестким дискам.
sudo systemctl enable fstrim.timer # Включаем службу.

Оптимизация интерфейса и установка игр с программами

1. Gnome-shell — добавляем полуофициальные патчи, что ускоряют отзывчивость системы.
cd tools # Переход в папку tools.
git clone https://aur.archlinux.org/gnome-shell-performance.git # Скачивание исходников.
cd gnome-shell-performance # Переход в gnome-shell-performance.
makepkg-si # Сборка и установка.

1.2 Mutter-perfomance — ещё сильнее ускорит интерфейс.
cd tools # Переход в папку tools.
git clone https://aur.archlinux.org/mutter-performance.git# Скачивание исходников.
cd mutter-performance # Переход в mutter-performance.
makepkg-si # Сборка и установка.

Поздравляю, мы полностью выполнили оптимизацию под нашу систему, конечно, ещё осталось пару фокусов, но они нам ни к чему, так давайте установим Ведьмака 3 и посмотрим, что это нам даст.

Запуск Ведьмака 3 и других Windows программ

Для запуска 3 ведьмака устанавливаем Wine.

После установки открываем наш lutris и добавляем нашего ведьмака.
Как добавлять и настраивать.

Выводы

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *