Steam Proton: различия между версиями
IgorN (обсуждение | вклад) мНет описания правки |
IgorN (обсуждение | вклад) (Добавлено про использование Proton напрямую.) |
||
Строка 44: | Строка 44: | ||
** [https://github.com/GloriousEggroll/proton-ge-custom proton-ge-custom] — можно использовать из клиента Steam так же, как обычный Proton. | ** [https://github.com/GloriousEggroll/proton-ge-custom proton-ge-custom] — можно использовать из клиента Steam так же, как обычный Proton. | ||
** [[PortProton]] — отдельная обёртка-приложение, независящая от клиента Steam. Позволяет запускать программы вне библиотеки Steam без специфичных манипуляций. | ** [[PortProton]] — отдельная обёртка-приложение, независящая от клиента Steam. Позволяет запускать программы вне библиотеки Steam без специфичных манипуляций. | ||
== Использование Proton напрямую без задействования клиента Steam == | |||
{{Note|Для помания материала крайне желательно иметь представление об [[WINE|основах использования Wine]].}} | |||
В Proton реализован механизм прямого запуска тех или иных программ, размещённых в Proton-префиксе, без задействования клиента Steam. Использование напрямую позволяет запускать программы внутри конкретного Proton-префикса, включая штатные Wine-программы. В контексте игр это даёт удобную возможность установить русификатор, моды и подобное, а так же запускать различные инструменты: программу конфигурации, игровой редактор и подобное. | |||
=== Пример запуска установочного файла OpenGL-обёртки для игры Disciples 2 === | |||
Расположение префикса игры по умолчанию: | |||
<br> | |||
{{path|/home/$USER/.local/share/Steam/steamapps/compatdata/1640/}} | |||
Установочный файл OpenGL-обёртки (DisciplesWrapperV1.90.exe) был размещён в корне префикса: | |||
<br> | |||
{{path|/home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/''DisciplesWrapperV1.90.exe''}} | |||
Команда на запуск установочного файла: | |||
'''STEAM_COMPAT_CLIENT_INSTALL_PATH'''=/home/$USER/.local/share/Steam/ '''STEAM_COMPAT_DATA_PATH'''=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 ''/home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/'''proton''''' '''run''' /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/''DisciplesWrapperV1.90.exe'' | |||
Из-за длины путей выглядит громоздко и сложно, но на деле команда проста: | |||
* '''STEAM_COMPAT_CLIENT_INSTALL_PATH''' — передать этой переменной окружения путь до корневого каталога клиента Steam. В данном случае это ''/home/$USER/.local/share/Steam/'' | |||
* '''STEAM_COMPAT_DATA_PATH''' — передать путь до Proton-префикса, который создаётся при первом запуске игры. Путь из примера: ''/home/$USER/.steam/steam/steamapps/compatdata/1640/'', где имя каталога с префиксом соответствует ID игры в Steam — 1640. | |||
* '''/home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton''' — путь до python-скрипта ''proton'', с помощью которого производится задействование Proton. Путь будет отличаться в зависимости от установленной версии Proton. В данном случае используется Proton 8.0. Так же стоит отметить, что в имени каталога Proton присутствует пробел, его нужно экранировать обратной косой чертой (\) или экранировать кавычками путь целиком. | |||
* '''''run'' /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/DisciplesWrapperV1.90.exe''' — команда на запуск указанного исполняемого файла (DisciplesWrapperV1.90.exe) с помощью Proton. | |||
Результат: | |||
[[Файл:Altlinux steam proton окно установки обёртки.png|центр]] | |||
Важно отметить, что подобные установщики ожидают обнаружить файлы игры в границах префикса, но в структуре каталогов Steam каталог с игрой располагается вне префикса. В связи с этим, в диалоге выбора пути потребуется указать путь через структуру каталогов Linux. | |||
В некоторых случаях это вызывает проблемы (установщик может отказаться продолжать работу, выведя ошибку). Надёжнее создать в префиксе символическую ссылку на каталог с файлами игры, что позволит установщику получить привычный DOS-путь к файлам игры. Пример расположения точки входа: | |||
<br> | |||
{{path|"./drive_c/Program Files (x86)/Steam/steamapps/common/Символическая_ссылка_на_каталог_игры"}} | |||
Пример создания символической ссылки (пробелы и скобки в имени каталогов экранированы обратной косой чертой): | |||
ln -s /home/$USER/.local/share/Steam/steamapps/common/Disciples\ II\ Galleans\ Return /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/Program\ Files\ \(x86\)/Steam/steamapps/common/Disciples\ II\ Galleans\ Return | |||
=== Запуск стандартных Wine-программ в Proton-префиксе === | |||
В Proton-префиксе присутствует полный набор программ из стандартного Wine-префикса. Их можно задействовать так же, как это делается для Wine-префикса. Пример запуска '''winecfg''' всё в том же префиксе игры Disciples 2: | |||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run '''winecfg''' | |||
Результат: | |||
[[Файл:Altlinux steam proton winecfg.png|центр]] | |||
Пример запуска «Установка/удаление программ» (uninstaller): | |||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run '''uninstaller''' | |||
[[Файл:Altlinux steam proton uninstaller.png|центр]] | |||
Пример запуска редактора реестра (regedit): | |||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run '''regedit''' | |||
[[Файл:Altlinux steam proton regedit.png|центр]] | |||
Пример запуска Диспетчера задач (taskmgr): | |||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run '''taskmgr''' | |||
[[Файл:Altlinux steam proton taskmgr.png|центр]] | |||
=== Пример запуска сторонних игр в Proton-префиксе === | |||
Да, это работает. Демонстрация на примере запуска Konung 2. | |||
Установка из ''setup_konung2_russian_2.0.0.3.exe'': | |||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/'''setup_konung2_russian_2.0.0.3.exe''' | |||
[[Файл:Altlinux steam proton установка konung 2.png|600px|центр]] | |||
По запуску есть особенность. Если запускать исполняемый файл напрямую, то игра не запустится, но если её стартовать с файла-ярлыка (.lnk), запуск проходит успешно. lnk-файлы хранятся в каталоге {{path|./drive_c/ProgramData/Microsoft/Windows/Start Menu/Programs/}}. | |||
Запуск с lnk-файла (пробелы и скобки экранированы обратной косой чертой): | |||
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/ProgramData/Microsoft/Windows/Start\ Menu/Programs/Konung\ 2\ -\ Blood\ of\ Titans\ \[GOG\.com\]/'''Konung\ 2\ -\ Blood\ of\ Titans.lnk''' | |||
[[Файл:Altlinux steam proton konung 2 меню.png|700px|центр]] |
Версия от 13:09, 6 января 2024
Описание
Proton (SteamPlay) — слой совместимости для запуска Windows-программ, ориентированный на запуск компьютерных игр. Предлагается в качестве опции-инструмента в клиенте Steam для бесшовного запуска игр из библиотеки пользователя. В качестве составного произведения распространяется под лицензией 3-clause BSD.
- Является ответвлением Wine, развиваемым компанией Valve. Основные отличия от Wine:
- В качестве транслятора вызовов Direct3D (DirectX) в Vulkan задействует DXVK и vkd3d-proton.
- Реализована python-обёртка и набор библиотек для интеграции в клиент Steam.
- Используются дополнительные патчи, включая расширенную поддержку анти-читов, для достижения работоспособности отдельных игр и игровых устройств.
- Первый выпуск состоялся в 2018 году. Историческая справка: https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561
- Официальный репозиторий: https://github.com/ValveSoftware/Proton
- Официальное руководство пользователя: https://github.com/ValveSoftware/Proton#readme
- Справка по применению опций совместимости: https://github.com/ValveSoftware/Proton#runtime-config-options
- Каталог отчётов пользователей с рецептами запуска различных игр: https://www.protondb.com/
- Полная работоспособность достигнута для многих тысяч игр, но всё ещё остаётся небольшое число тех, что работают с некоторыми проблемами или требуют дополнительных манипуляций. Так же есть незначительное количество полностью неработоспособных, большая часть из которых не работает из-за намеренной блокировки запуска анти-читами.
Первоначальная настройка
Производится через клиент Steam. Для этого перейти в Steam / Настройки / Совместимость и отметить два пункта:
- Включить Steam Play для поддерживаемых продуктов.
- Включить Steam Play для всех других продуктов.
Для применения изменений необходимо перезапустить клиент Steam. После перезапуска появится возможность устанавливать Windows-игры и запускать их. Proton будет автоматически загружен при попытке запуска любой Windows-игры из библиотеки.
Использование веток
Пользователям предлагается следующий набор версий-сборок:
- Proton <номер версии> — стабильные версии, использующие в качестве основы стабильную версию Wine с переносом отдельных изменений из ветки разработки. В клиенте Steam по умолчанию предлагается крайняя стабильная версия.
- Proton Experimental — версия со свежайшими изменениями из ветки разработки.
- Proton Hotfix — версия с экстренными, экспериментальными и адресными исправлениями. Используется в исключительных случаях.
Версию Proton можно переключить глобально или для каждой игры отдельно. Глобальный переключатель:
Пример для отдельной игры. Чтобы появился список для выбора версий, необходимо отметить пункт "Принудительно использовать выбранный инструмент совместимости Steam Play":
Кроме официальных сборок, существуют варианты от сообщества. Среди них можно выделить следующие:
- proton-ge-custom — можно использовать из клиента Steam так же, как обычный Proton.
- PortProton — отдельная обёртка-приложение, независящая от клиента Steam. Позволяет запускать программы вне библиотеки Steam без специфичных манипуляций.
Использование Proton напрямую без задействования клиента Steam
В Proton реализован механизм прямого запуска тех или иных программ, размещённых в Proton-префиксе, без задействования клиента Steam. Использование напрямую позволяет запускать программы внутри конкретного Proton-префикса, включая штатные Wine-программы. В контексте игр это даёт удобную возможность установить русификатор, моды и подобное, а так же запускать различные инструменты: программу конфигурации, игровой редактор и подобное.
Пример запуска установочного файла OpenGL-обёртки для игры Disciples 2
Расположение префикса игры по умолчанию:
/home/$USER/.local/share/Steam/steamapps/compatdata/1640/
Установочный файл OpenGL-обёртки (DisciplesWrapperV1.90.exe) был размещён в корне префикса:
/home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/DisciplesWrapperV1.90.exe
Команда на запуск установочного файла:
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/DisciplesWrapperV1.90.exe
Из-за длины путей выглядит громоздко и сложно, но на деле команда проста:
- STEAM_COMPAT_CLIENT_INSTALL_PATH — передать этой переменной окружения путь до корневого каталога клиента Steam. В данном случае это /home/$USER/.local/share/Steam/
- STEAM_COMPAT_DATA_PATH — передать путь до Proton-префикса, который создаётся при первом запуске игры. Путь из примера: /home/$USER/.steam/steam/steamapps/compatdata/1640/, где имя каталога с префиксом соответствует ID игры в Steam — 1640.
- /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton — путь до python-скрипта proton, с помощью которого производится задействование Proton. Путь будет отличаться в зависимости от установленной версии Proton. В данном случае используется Proton 8.0. Так же стоит отметить, что в имени каталога Proton присутствует пробел, его нужно экранировать обратной косой чертой (\) или экранировать кавычками путь целиком.
- run /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/DisciplesWrapperV1.90.exe — команда на запуск указанного исполняемого файла (DisciplesWrapperV1.90.exe) с помощью Proton.
Результат:
Важно отметить, что подобные установщики ожидают обнаружить файлы игры в границах префикса, но в структуре каталогов Steam каталог с игрой располагается вне префикса. В связи с этим, в диалоге выбора пути потребуется указать путь через структуру каталогов Linux.
В некоторых случаях это вызывает проблемы (установщик может отказаться продолжать работу, выведя ошибку). Надёжнее создать в префиксе символическую ссылку на каталог с файлами игры, что позволит установщику получить привычный DOS-путь к файлам игры. Пример расположения точки входа:
"./drive_c/Program Files (x86)/Steam/steamapps/common/Символическая_ссылка_на_каталог_игры"
Пример создания символической ссылки (пробелы и скобки в имени каталогов экранированы обратной косой чертой):
ln -s /home/$USER/.local/share/Steam/steamapps/common/Disciples\ II\ Galleans\ Return /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/Program\ Files\ \(x86\)/Steam/steamapps/common/Disciples\ II\ Galleans\ Return
Запуск стандартных Wine-программ в Proton-префиксе
В Proton-префиксе присутствует полный набор программ из стандартного Wine-префикса. Их можно задействовать так же, как это делается для Wine-префикса. Пример запуска winecfg всё в том же префиксе игры Disciples 2:
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run winecfg
Результат:
Пример запуска «Установка/удаление программ» (uninstaller):
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run uninstaller
Пример запуска редактора реестра (regedit):
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run regedit
Пример запуска Диспетчера задач (taskmgr):
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run taskmgr
Пример запуска сторонних игр в Proton-префиксе
Да, это работает. Демонстрация на примере запуска Konung 2. Установка из setup_konung2_russian_2.0.0.3.exe:
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/setup_konung2_russian_2.0.0.3.exe
По запуску есть особенность. Если запускать исполняемый файл напрямую, то игра не запустится, но если её стартовать с файла-ярлыка (.lnk), запуск проходит успешно. lnk-файлы хранятся в каталоге ./drive_c/ProgramData/Microsoft/Windows/Start Menu/Programs/. Запуск с lnk-файла (пробелы и скобки экранированы обратной косой чертой):
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.local/share/Steam/steamapps/compatdata/1640 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run /home/$USER/.local/share/Steam/steamapps/compatdata/1640/pfx/drive_c/ProgramData/Microsoft/Windows/Start\ Menu/Programs/Konung\ 2\ -\ Blood\ of\ Titans\ \[GOG\.com\]/Konung\ 2\ -\ Blood\ of\ Titans.lnk