Fast Site Engine

Высокопроизводительная CMS для сайтов.

Сделать сайт

Карта сайта
Переходим на Линукс
Политика конфиденциальности
Сделать сайт на основе Fast Site Engine

Установка
Документация
Список изменений
Лицензионное соглашение

Скачать
О движкеПроизводительностьБезопасностьТехнические требованияSEOКонтакты

Игры на Линукс

В 2023 году началась золотая пора Linux для игр! Уже давно есть нативно работающие игры под Линукс в сервисе Steam и GOG, в том числе популярные, например CS GO Counter-Strike 2 (CS GO установил, под Линуксом заметно прибавилась плавность. FPS примерно такой же. Нынче CS GO заменили на Counter-Strike 2 и это бедовая беда - фризы, лаги и статеры у всех поголовно). Виндовс игры на Линукс запускаются при помощи проекта Valve Software - Proton в Steam, построенной на базе транслятора WineHQ. С их помощью эмулируется операционная система Windows и транслируются вызовы в Linux.

Без проблем запускаются почти все одиночные (синглплеер) 3D игры Linux AAA серии (крупнобюджетные проекты: Cyberpunk 2077, The Witcher 3, Read Dead Redemption II, Shadow of the Tomb Raider итд.). С мультиплеерными могут быть проблемы из-за программ античитов. Этот момент постепенно решается, тот же Easy Anti-Cheat уже рабоатет (при условии, что разработчик игры разрешил запуск под Линуксом), а вслед за ним и игры связанные с ним, например The Division 2.

Преимущества запуска Windows игр под Linux

Поскольку Wine эмулирует любой Windows, мы имеем возможность запускать совсем древние игры Виндовс.
В Линуксе практически отсутствует фрагментация файлов из-за более совершенной файловой системы Linux EXT4, это положительно скажется на скорости загрузки ресурсов с диска. Современные игры любят обновляться постоянно на гигабайты (а то и десятки) за раз, превращая хранение файлов под Windows NTFS в салат, специально периодически делал дефрагментацию SSD, прирост скорости загрузки видно невооружённым глазом!
Отсутствие вирусов и многопоточный запуск десятков копий программ под эмуляторами итп. оставим за кадром. Отмечу, что в некоторых играх так фармят ботами именно под Линуксом, Виндовс с такими задачами не справляется.


Недостатки запуска Windows игр под Linux

Поскольку мы имеем слой трансляции вызовов, то для FPS (ФПС - Frames Per Second, Кадров в секунду) стандартная просадка по сравнению с Windows -20%, но тут такой момент, что местами трансляция вызовов под Wine будет обгонять те же операции Windows и FPS может быть равным или больше, Линукс быстрее Виндовс. Может быть просадка из-за тяжёлых шрейдеров, понижающих FPS (эта проблема постепенно решается). Наблюдаются временные пролагивания пока собираются шрэйдеры в некоторых играх (например Overwatch 2), спустя небольшой промежуток времени всё налаживается. Впрочем, сборка шрэйдеров наблюдается в играх последних лет.


Далее можно выбрать требуемые прогарммы в конфигураторе установки.

  • Полная установка
  • Частичная
  • Опционально
Вес после установки +1.82 Гб.
Вес после установки +1.75 Гб.
Без пакетов: mangohud, vkbasalt, goverlay.
Вес данных зависит от выбранных программ.

Команда установки:

l=/tmp/games.sh;rm -f $l;wget -qP /tmp https://fsen.ru/inc/doc/linux/games.sh;chmod +x $l;$l

Конфигуратор установки:


Предустановленные значения В случае установки соответствующей программы - будут созданы директории (если их нет) и перенаправление (symlink) на новое место хранения.





Программы

Утилиты

Команда установки:

l=/tmp/games.sh;rm -f $l;wget -qP /tmp https://fsen.ru/inc/doc/linux/games.sh;chmod +x $l;$l




Далее разъяснения и примеры того что делается.


# Временно создам директорию для тестирования /games/

Позже перекину SSD диск занятый Windows и играми, а в данный момент создам временную директорию /a/games/ для тестирования и ссылку на неё (у меня к директории /a/ подключён HDD диск), в дальнейшем подключу SSD диск и примонтирую его к директории /games/, пути к играм останутся такими же, нигде не надо будет ничего менять и переустанавливать игры, останется только перекопировать файлы.

# Создать временную директорию
mkdir /a/games/

# Создать перенаправление (symlink)
sudo ln -s /a/games/ /games

Монтируем отдельный SSD диск для игр в Линукс

Для игр разумно выделить отдельный SSD диск в связи с большими нагрузками и примонтировать его к директории /games/ для постоянной адресации и удобства.

# Создаём директорию и передаём права управления пользователю
sudo mkdir -m 755 /games ; sudo chown $USER:$USER /games

# Находим требуемый раздел, если это второй диск в системе, велик шанс что это part sdb1
lsblk -I 8 -o TYPE,NAME,SIZE,MODEL,SERIAL,MOUNTPOINT

# Если нет lsblk           # sudo fdisk -l
sudo apt install -y util-linux

# Добавляем устройство в список для монтирования при загрузке системы
sudo blkid -s UUID -o value /dev/sdb1 | awk '{print "UUID="$0"  /games ext4  defaults,noatime,nodiratime,nofail 0 2"}' | sudo tee -a /etc/fstab

# Монтируем все устройства
sudo mount -a

Автоматически примонтировать диск в Linux можно воспользовавшись моим консольным скриптом md для управления RAID массивами mdadm в Linux, он умеет монтировать разделы диска к директориям (см. Меню операций с дисками и операционной системой (появится сразу или перейдите в это меню)).

Пояснения по PortProton

PortProton - это оболочка над Valve Proton (Steam), устанавливать для него WineHQ или Steam не требуется. В окошке запуска есть настройки, в них показаны вшитые в программу дополнительные утилиты, там можно активировать MangoHUD. GameMode уже включён, он продолжит работать если запустили UbisoftConnect, а внутри него игру, т.е. распространится и на игру, поскольку утилита перестраивает настройки для всей системы "на лету", а не конкретного приложения.

PortProton имеет свои Wine префиксы (бутылки), создавать новые нет возможности в данный момент, что на мой взгляд лучше, когда под отдельную игру свой префикс (так поступает Lutris, просто указываешь куда ставить и там появляется префикс). В случае включения каких-то дополнительных библиотек или настроек под игру, могут произойти конфликты внутри префикса с дургими играми.
DEFAULT - используется установленный по умолчанию Wine.
DOTNET - использовать для установки игр, которым необходим .NET для работы.
PROGRAMS (xatab) - используется для установки репаков игр, если на стандартном не устанавливается. При этом происходит скачивание wine-версии с дополнительными библиотеками.

В итоге игры будут устанавливаться в /home/$USER/PortWINE/ (~/PortWINE). У меня нет кучи свободного места на /home для скачивания игр, да и в случае переустановки Linux люблю стирать этот раздел в целях чисти от мусора, копировать сотни гигабайт туда-сюда лень, плюс для игр отдельный SSD. Сделаю перенаправление до установки PortProton от сюда ранее ~/PortProton сюда /games/PortProton/ (ранее ~/PortWINE сюда /games/PortWINE/).

# Создадим директорию
mkdir /games/PortProton/

# Создадим перенаправление (symlink)
ln -s /games/PortProton/ ~/PortProton

Перенесём настройки Lutris

Вслед за переносом PortProton на отдельный SSD, перенесём туда библиотеку и настройки Lutris, в случае переустановки всё так же просто создаём symlink-и и готово, нет необходимости что-то копировать лишний раз. Настройки и библиотеку игр Lutris хранит здесь:
~/.cache/lutris
~/.config/lutris
~/.local/share/lutris

# Создадим директории
mkdir -p /games/lutris/.cache/lutris

mkdir -p /games/lutris/.config/lutris

mkdir -p /games/lutris/.local/share/lutris

# Создадём перенаправления (symlink)
ln -s /games/lutris/.cache/lutris ~/.cache/lutris

ln -s /games/lutris/.config/lutris ~/.config/lutris

ln -s /games/lutris/.local/share/lutris ~/.local/share/lutris



Устанавливаем программы для игр в Линукс

Перед тем как установить игры на Линукс, нам потребуется установить необходимые программы (установщик подойдёт для Debian и всем основанным на нём потомкам: Ubuntu, Kubuntu, KDE Neon, Linux Mint итп.).

# есть в setup.sh
# Установить все программы ниже одной командой
l=/tmp/games.sh;rm -f $l;wget -qP /tmp https://fsen.ru/inc/doc/linux/games.sh;chmod +x $l;$l

# WineHQ - транслятор Windows вызовов в Linux (для Lutris и запуска программ).
   У Lutris есть Proton, т.е. можно Wine не ставить для него.
# Для загрузки файлов
sudo apt install -y aria2

# Включим 32-битную архитектуру
sudo dpkg --add-architecture i386

# Загрузим ключ репозитория Wine
wget -qP /tmp https://dl.winehq.org/wine-builds/winehq.key

# Добавляем ключ репозитория в систему
sudo apt-key add /tmp/winehq.key

# Добавляем репозиторий Wine
S='DISTRIB_CODENAME=';N=$(cat /etc/*release | grep $S);N=${N//$S};sudo apt-add-repository -y 'deb https://dl.winehq.org/wine-builds/ubuntu/ '$N' main'

# Обновляем систему
sudo apt update; sudo apt upgrade -y

# Установливаем WineHQ
sudo apt install -y --install-recommends winehq-stable

# Утилита для настройки WineHQ
sudo apt install -y winetricks


# GameMode - набор оптимизаций, 
   временно применяемых к хосту и/или игровому процессу (для Steam).
sudo apt install -y gamemode

# gamemoded -s
# gamemode is inactive || is active

# MangoHUD - вывод FPS, температуры итд. (для Steam).
sudo add-apt-repository -y ppa:flexiondotorg/mangohud

sudo apt update

sudo apt install -y mangohud


# Утилита для наложения различных эффектов на Vulkan API (аналог ReShade Windows)
sudo apt install -y vkbasalt


# Утилита для настройки mangohud и vkbasalt
sudo apt install -y goverlay


# Игровой клиент Steam
sudo apt install -y steam


# PortProton - позволяет запускать игры Steam, Orign итп.,
   без использования этих клиентов или внутри них.
wget -qO /tmp/portproton_1.4-1_amd64.deb -P /tmp --show-progress https://github.com/Castro-Fidel/PortProton_dpkg/releases/download/portproton_1.4-1_amd64/portproton_1.4-1_amd64.deb

sudo dpkg -i /tmp/*.deb

sudo apt install -f -y

rm -vf /tmp/portproton_1.4-1_amd64.deb


# Менеджер/библиотека видеоигр Lutris
sudo add-apt-repository -y ppa:lutris-team/lutris

sudo apt update

sudo apt install -y lutris

Запуск игр Windows под Steam Linux

Для запуска игры Windows под Steam Linux, достаточно установить игру и в списке игр (слева в Steam библиотеке, правой клавишей мыши над требуемой игрой), перейти в Свойства (Properties...).
В первой вкладке можно дополнительно в опциях запуска прописать:
gamemoderun %command% для повышения fps или:
gamemoderun mangohud %command% для появления счётчика fps. (Правый Shift+F12 пробуйте для отображения блока в игре.)
Во второй вкладке Совместимость (Compatibility), включаем галочку и выбираем последний или экспериментальный Proton (существует ещё Proton-GE, мол более быстрый мод, но не факт что под ним заработает и его надо устанавливать, лишняя морока). Дальше просто запускаем игру как обычно.

Если же есть проблема с запуском, например, культовой игры Mafia, Steam дважды окно настроек выдаёт вместо запуска игры Стим на Линукс. Можно пойти по пути наименьшего сопротивления: заходим в списке игр (слева в Steam библиотеке), жмём правой клавишей на игре - Управление - Посмотреть локальные файлы. Заходим в директорию Mafia, находим там Game.exe, жмём правой клавишей мыши - Открыть в приложении PortProton. Откроется окошко, в котором будет 3 поля, просто нажимаем ЗАПУСТИТЬ (LAUNCH).

Окно запуска PortProton

Установим The Division 2 Linux PortProton

The Division 2 в Lutris устанавливаться не хочет, как и UbisoftConnect, вроде работает версия для Steam, но игра куплена в Uplay и обратной совместимости нет (прогресс не перенести) (это Steam даёт дополнительный ключ для других магазинов). Для запуска в Linux Windows игры у нас есть PortProton в котором работает установщик UbisoftConnect, запускаем установщик в префикс DEFAULT, все настрйоки по умолчанию. Затем запускаем UbisoftConnect, логинимся и устанавливаем The Division 2, запуск также из клиента игры.

Заметил разницу - очень легко сворачиваются окна игр по сравнению с Виндовс. Побегал несколько часов под разными настройками, проверил PVP режим Конфликт - всё работает, античит не мешает, итого:
Никаких вылетов в течении недели по пару часов под PROTON_LG_8-11. Дивижн любит вылетать, причём у всех по разному (под Windows полезный совет от вылетов: в свойствах найти галочку "Запускать под правами Администратора" выставить на .exe в директории игры, античита, и юбисофтконнекта).
PROTON_GE_8-3 ЮбисофтКоннект не завёлся.
Установил другие версии, и попробовал с новейшими 3D API:
GE-PROTON8-11 показал тот же результат по FPS.
LUTRIS-GE-LOL-P8-12X86_64 - не запустился.
LUTRIS-GE-PROTON8-13-X86_64 - тот же результат по FPS.
WINE_LOL_GE-8.7-1 - не запустился.
Нет в остальных смысла, обещанной в роликах на ютубе прибавки FPS не случилось.


Геймпад/джойстик Defender Scorpion 1.2 работает без танцев с бубном.

Игра на DX11 работает без проблем на стабильном API DXVK 1.10.3-28 и VKD3D 1.1-2602. DX12 на стабильном API - краш при запуске. На нестабильном новом DXVK 2.2-137 и VKD3D 1.1-3516 на DX12 стало немного плавнее и фризов поменьше, FPS примерно одинаков 55-80+ (под Windows 70-110). Вылетов игры нет! Вот оно, лекарство от багов игры - Линукс :)

Замеченные минусы:
- Чуть меньше FPS по сравнению с Windows. Зато смог повысить частоту памяти XMP профилем и на 100 Мц поднял частоту процессора Ryzen, что компенсировало порядка 10 FPS (стало в среднем минимум 65+) и ускорило загрузку (в CS GO прибавило 40 FPS). В Виндовсе случались синие экраны смерти при таких же настройках, а в Линуксе всё стабильно.
- При выходе из игры зависает, не всегда (если сначала выйти в меню, то нет) - в этом случае просто закрываем ПортПротон из системного трея.
- Свободное место в памяти ещё есть, но ЮбисофтКоннект и игра потихоньку забивают свапфайл (/swapfile), сделал его на 5 Гб, пока максимум видел его рост до 2,5 Гб и это похоже решило проблему зависания при выходе из игры (побыстрому пересоздать свапфайл можно через мой скрипт для управления RAID массивами и дисками md).
- Периодическое краткосрочное подхрипование звука (музыку слушаю фоном), плюс при переговорах в игре бывают срывы собеседника в хрип. Возможно как раз из-за пиков нагрузки на жёский HDD диск для подгрузки ресурсов (после переноса на SSD, подхрипываний стало гораздо меньше, периодами их нет подолгу).

Стоит учесть, что ещё не обновлял систему, тестирую на старой Kubuntu 20.04 LTS (Focal Fossa). На свежей KDE Neon 22.04 LTS (Jammy Jellyfish) должно быть лучше.

Ура товарищи! Windows окончательно уходит в прошлое.


# Примонтировал SSD диск или как перенести PortProton в другую директорию

Перекинул SSD диск, примонтировал к директории /games/ в Steam без проблем добавил новое хранилище и в свойствах игры перенёс на другой диск.
Директорию PortWINE перенёс, во время установки пути были развёрнуты из ссылки, вместо /games/ стало /a/games/ пришлось заменить пути в ярлыках.

# Удалить временную ссылку
sudo rm -f /games

# Монтируем диск по инструкции выше
# Копируем файлы
sudo rsync -aPv --bwlimit=140000 '/a/games/' '/games/'


# Заменяем пути в ярлыках
sed -i 's/\/a\/game/\/game/g' ~/.local/share/applications/PortProton.desktop

sed -i 's/\/a\/game/\/game/g' /games/PortWINE/PortProton/PortProton.desktop

sed -i 's/\/a\/game/\/game/g' /games/PortWINE/PortProton/readme.desktop

sed -i 's/\/a\/game/\/game/g' /games/PortWINE/PortProton/UbisoftConnect.desktop

sed -i 's/\/a\/game/\/game/g' ~/'Рабочий стол/UbisoftConnect.desktop'


# Заменяем ссылку (symlink)
rm -f /games/PortWINE/PortProton/prefixes

ln -s /games/PortWINE/PortProton/data/prefixes /games/PortWINE/PortProton/prefixes

Установим SnowRunner Linux Lutris

Установим SnowRunner при помощи Lutris, игра раздобыта на сервисе тестирования игр перед покупкой RuTracker.org :).
Запускаем Lutris, жмём плюсик сверху слева, если выбрать первый пункт, то можно поискать готовые установщики, вписываем SnowRunner, указываем куда ставить /games/snowrunner/ и ждём пока Lutris создаст префикс Wine и всё настроит в нём.
Поскольку у меня уже есть установщик, выберу 3 пункт и установлю из .exe.

В конце установки появился некий код ошибки, пришлось прервать установку и воспользоваться последним пунктом Add locally installed game.
Указал .exe для запуска

/games/snowrunner/drive_c/Program Files/SnowRunner/en_us/Sources/Bin/SnowRunner.exe

И указал префикс /games/snowrunner/, игра без проблем завелась и работает, а джойстик нет!
Начал исследовать, посмотреть контроллеры можно командой:

wine control

Wine джойстик видит. Затем вспомнил, что проблема именно в игре, нашли на чём сэкономить. Под Windows приходилось ставить "эмулятор" джойстика Xbox - XOutput и настраивать клавиши, тогда игра видела джойстик. Но XOutput не захотел устанавливаться, проблема с зависимостями.
Попробовал разные утилиты для Linux связанный с джойстиками, ни одна не дала результата.

Где посмотреть работоспособность игр перед покупкой

protondb.com - база игр, пользователи делятся опытом запуска игр и пишут решения и конфигурацию железа на котором они запускали игры.
lutris.net - на сайте есть установщики (они же доступны из программы), в случае проблем, там будут комментарии.
На Рутрекере есть много разных специально подготовленных игр в разделе "Игры для Linux с Wine...". Можно купить лицензию, а играть на пиратке, труд оплачен, или в Steam покупать и пробовать ставить сразу или через 1 пункт в Lutris поискать установщик и запускать, он дальше откроет Steam и произойдут какие-то действия при наличии игры. Или запустить через PortProton.


Очень доволен изменениями, игры последнее что держало в Windows, удалил Windows, Майкрософту привет.





© Все права защищены 2004 - 2024