Steam linux runtime soldier что это
Steam linux runtime soldier что это
Введение
Steam для Linux доступен для всех пользователей Steam. Учитывая тот факт, что каталог поддерживаемых на Linux игр растёт, а группа сообщества Steam для Linux очень активна, настало время портировать вашу игру на Linux.
Разработка игры на Linux может вызвать определенные трудности у разработчиков, хорошо знакомых с разработкой на Windows или macOS. Следующая информация поможет вам успешно портировать вашу игру в Steam для Linux.
Подготовка к работе
Сборка игры на Linux требует:
Инструменты Linux
Число инструментов разработки на Linux огромно, начиная от разнообразных интерфейсов командной строки и заканчивая интегрированными средами разработки с графическими интерфейсами. Следующая информация основана на опыте команды разработчиков на Linux, работающих в Valve.
Для тех, кто больше всего знаком со средствами разработки на Windows, простейшим решением будет использовать Visual Studio на Windows вместе с WinGDB — расширением Visual C++, которое позволяет отладку удаленных процессов Linux, используя интерфейс отладки Visual Studio.
API для Linux
Vulkan — предпочтительная библиотека для высокопроизводительной графической визуализации. Это открытый аналог DirectX12 и Metal.
OpenGL является устаревшим стандартом графической визуализации. Большинство игр напрямую вызывают OpenGL, но есть и другие игры, которые используют метод перевода, который заключается в том, что устаревший код визуализации переводится в вызовы OpenGL. Этот подход использовался для таких старых игр на движке Source, как Team Fortress 2 и Counter-Strike: Source. Если для вашей игры вы выберете OpenGL, рекомендуем использовать основные функции OpenGL 3.0.
Simple DirectMedia Layer (SDL) 2.0 помимо прочего предоставляет низкоуровневый доступ к работе с аудио и окнами. Поддержка 3D-визуализации осуществляется с помощью OpenGL. Инструкции по установке можно найти здесь. Документация и подробная информация представлены на wiki-странице проекта. Valve использует SDL в Steam и большинстве наших игр для работы с окнами. SDL также предоставляет серверную поддержку для API ввода Steam.
Репозитории GitHub
Частые вопросы
В. Моя игра на Linux зависит от многих внешних библиотек. Как решить эту проблему?
О. Многие популярные библиотеки, такие как SDL, OpenAL, FreeType и Fontconfig для вашего удобства включены в Steam Linux Runtime. Если ваша игра зависит от других библиотек, которых нет в Runtime, но они распространяются свободно, пожалуйста, сообщите о них в разделе обсуждений разработчиков Steamworks по Linux и SteamOS.
В. Поддерживается ли Steam DRM на Linux?
О. Да! Новый инструмент DRM drmtoolp поддерживает Linux. Дополнительная информация доступна в разделе Steam DRM.
В. Чем отличается производительность драйверов для Ubuntu и для Windows?
О. Если говорить о стабильности, производительности и наборе характеристик, проприетарные драйверы Nvidia сравнимы с версией для Windows. Проприетарные драйверы как AMD, так и Intel также доступны, но их текущие показатели стабильности и производительности ниже, чем аналоги для Windows.
Что касается производительности Linux, то она зависит от того, какие видеокарты и какие типы драйвера используются (открытые или проприетарные). Обычно проприетарные драйверы показывают лучшую производительность по сравнению с открытыми и имеют больший набор функций. Кроме того, производительность проприетарных и открытых версий драйверов зависит от их возраста, который может различаться.
Steam linux runtime soldier что это
I’ve been looking all over the web for some clarification but it was no use.
Thanks for your time. I’m using Ubuntu 20.04 by the way.
It seems to be a set of libs used to compile games on.
It seeks to provide a compatible way for Game creators to make Steam-hosted games.
The compilation is supposed to be done within a docker provided by valve, but there’s other techniques too.
It is definitely not proton since the products of steam runtime (i.e. game installation) wouldn’t need an emulator (Proton is just a python script wrapping a software emulator called wine).
its also steam’s answer to prolong game compatibility as distributions continue to drop older support.
ie: i386
its a basic set of libraries for games to run on, instead of the system libraries
which is why its on the steamplay tab. and you can run a game with that runtime selected
proton is an ’emulation’ layer for windows games.
steam linux runtime is a set of native linux libraries.
its also steam’s answer to prolong game compatibility as distributions continue to drop older support.
ie: i386
its a basic set of libraries for games to run on, instead of the system libraries
which is why its on the steamplay tab. and you can run a game with that runtime selected
Yes, that’s exactly it.
There are plenty of games on steam that have a native linux version available (all those with the SteamOS icon on the store, which used to be a penguin icon but foolishness struck them and they changed it. )
Proton is only for windows-exclusives (or to force-use the windows version of a game even when it has a native linux version).
Both the steam linux runtimes and proton are called into use by the steam launcher only when needed by a specific game.
And you can even have multiple versions of Proton coexisting to be able to select the ine that works best for a specific game.
So what I select in the dropdown menu in the Setting / Steam Play tab will be forced on all the titles? Or it will just be forced on games not native to Linux?
IIRC the global setting (Steam > Settings) won’t force linux native titles to use proton, but the game-specific setting (Steam > Library > Game > Properties) definitely does have that ability (I use it with Dicey Dungeons, which has a native linux version but on my PC only the Proton version launches correctly
There is one bit missing from the picture that may help you piece this design quirk together:
Valve calls the entire framework for compatibility layers «Steam Play».
Not all compatibility layers are for windows games, though the most prominent official layer (Proton) is there for that exact purpose.
They also made it possible for us to provide custom layers. and some folks jumped at the oportunity, making custom forks of DOSBox (for DOS games), ScummVM (for 2D click-and-play games like Curse of Monkey Island) and other opensource alternate game engines which can use game resources from an original game. These forks do more or less what proton did to Wine (integrating steam achievements, cloud sync for saves, steam controller and overlay integration, etc).
Steam Runtimes wasn’t seen by Valve exactly as a compatibility layer. first because it exists before «Steam Play» was invented. second, because it includes a base set of libs for games to be able to use Steam features consistently everywhere (including a windows version of the Steam Runtimes on Steam on Windows), plus a standard version of basic libs any executable needs, to avoid issues between distros with different versions of said libs, etc.
What put Steam Linux Runtimes in the list of compatibility layers was a more recent development (internally called Pressure Vessel) where Valve learned to use Linux namespaces to run a native linux game in a dedicated sandboxed space which provides a complete set of those Steam Linux Runtime libs in the sandbox.
. and to use this for a game they just added the stuff to Steam’s Steam Play framework, which already supported offering multiple compatibility layers of varied nature for any game including linux native ones.
They could have used «Pressure Vessel 1.0″ instead of Steam Linux Runtimes» in the droplist, or «namespaces 1.0». maybe it would avoid a couple mixups. but what’s inside the bottle is the runtimes and that is what needs more care with versioning control, etc.
Steam linux runtime soldier что это
Reporting SteamLinuxRuntime bugs
The Steam Linux container runtime runs each game in a container.
There are currently two runtimes available:
Steam Runtime 2 ‘soldier’, app ID 1391110 is used to run official releases of Proton 5.13 or newer. It might be used for newer native Linux games in future.
It is also used to run native Linux games that target Steam Runtime 1 ‘scout’, if the «Steam Linux Runtime» compatibility tool is selected for them.
Steam Runtime 1 ‘scout’, app ID 1070560 can be used on an opt-in basis to run native Linux games in a container. It uses the same libraries as the traditional LD_LIBRARY_PATH runtime, but instead of using them as an overlay over the host machine, they are used as an overlay over a Steam Runtime 2 ‘soldier’ container.
Unofficial third-party builds of Proton might use the container runtime like the official Proton 5.13, or they might use the traditional LD_LIBRARY_PATH runtime like the official Proton 5.0, or they might do something else entirely. We cannot provide support for unofficial builds of Proton.
The list of known issues describes some issues that cannot be fixed immediately, with workarounds where available.
If you encounter other issues, please report them to the Steam Runtime’s issue tracker: https://github.com/ValveSoftware/steam-runtime/issues.
When reporting bugs in the container runtime, please include a debug log. Since version 0.20210105.0, the easiest way to get this is:
Completely exit from Steam
Run a terminal emulator such as GNOME Terminal, Konsole or xterm
Run Steam with the STEAM_LINUX_RUNTIME_LOG environment variable set to 1, for example:
You can leave Steam running with this setting permanently if you’re testing multiple games.
Run the game, or do whatever else is necessary to reproduce the bug
Find the Steam Library directory where the runtime is installed, typically
/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier for soldier
Version numbers for some important runtime components are in VERSIONS.txt
The log file is in the var/ directory and named slr-app*-*.log for Steam games, or slr-non-steam-game-*.log if we cannot identify a Steam app ID for the game.
For native Linux games that use scout, the version number in `
/.steam/root/ubuntu12_32/steam-runtime/version.txt is also important
For Proton games, you can combine this with PROTON_LOG=1 to capture a Proton log file too.
For Proton games, putting STEAM_LINUX_RUNTIME_LOG=1 in the game’s Launch Options will not give us all the information we need, so please set it globally as described here.
If pressure-vessel is crashing on startup and does not produce a log, please do this instead:
Completely exit from Steam
Run a terminal emulator such as GNOME Terminal, Konsole or xterm
Run Steam with the PRESSURE_VESSEL_VERBOSE environment variable set to 1
Capture Steam’s output in a file
Run the game, or do whatever else is necessary to reproduce the bug
For example, this command will leave Steam output in a file named pressure-vessel.log in your home directory:
Again, doing this via the Launch Options does not provide all the information we need for Proton games.
Using a beta or an older version
Several branches of the Steam Linux Runtime are available. You can select a different branch from your Steam Library, in the same way you would for a game: follow the same procedure as https://support.steampowered.com/kb_article.php?ref=9847-WHXC-7326, but instead of the properties of CS:GO, change the properties of the Steam Linux Runtime.
The branches that are usually available are:
The default branch (SteamDB calls this public ) is the recommended version for most people.
The client_beta branch can be used to get a preview of what will be in the next update to the default branch. It is either the same as the default branch, or a bit newer.
Please use this in conjunction with the Steam Client beta, because it will sometimes rely on new Steam Client features that are not yet available in the non-beta client.
If this branch doesn’t work, please report a bug, then switch to the default branch.
The previous_release branch is an older version of the default branch. Only use this if the default branch is not working for you, and please report it as a bug if that happens.
It is very useful if you can show us a System Information report and a log for the version that fails, then switch to the version that works (without changing anything else!) and capture a new System Information report and a new log, so that we can compare them.
Common issues and workarounds
If you know your way around a Linux system, including using terminal commands, there are a few things you can try to help us get more information about games that aren’t working.
Getting a shell inside the container
Changing the runtime version
This will work best if the host system also uses build-ID-based detached debug symbols, like Debian and Fedora.
Почему вы должны использовать Proton вместо Steam Linux Runtime
Когда вы используете Steam для запуска игр на ПК с Linux, у вас может быть возможность запустить его с помощью одной из двух утилит: Proton и Steam Linux Runtime. Из этих двух вам, вероятно, следует выбрать Proton. Вот почему.
Что такое Steam Linux Runtime?
На ПК с Linux, на котором запущен Steam, откройте свойства любой игры и просмотрите доступные варианты после установки флажка «Принудительное использование определенного инструмента совместимости Steam Play». Вы можете увидеть «Steam Linux Runtime» рядом с несколькими версиями Proton.
Если у вас есть опция Steam Linux Runtime, это на самом деле означает, что разработчик игры предоставил Steam собственный порт игры для Linux. Конечно, не все разработчики делают это, так что в каком-то смысле вам повезло, что студия решила, что стоит обслуживать скромную толпу Linux.
Итак, это родное издание — это то, во что вы будете играть, если выберете опцию Steam Linux Runtime. Между игрой и вашей операционной системой не будет выполняться слой совместимости. Которые могут звук вроде идеальная ситуация. И действительно, он может работать отлично. Однако, скорее всего, это не так.
Почему Steam Linux Runtime — отстой
Когда вы выбираете собственный порт, вы предполагаете, что разработчики имели в виду выбранный вами дистрибутив Linux при создании порта Linux. В используемом вами дистрибутиве могут не быть установлены библиотеки, с которыми работали разработчики, что может оставить вас в «аду зависимостей».
Конечно, запуск Ubuntu — это, вероятно, беспроигрышный вариант. Но даже тогда разработчики могли работать со старой версией Ubuntu, используя пакеты, которые с тех пор устарели.
Что еще хуже, есть большая вероятность, что игровая студия потратила гораздо меньше времени и денег на версию для Linux по сравнению с версией для Windows или Mac. Простой факт заключается в том, что люди, занимающиеся Linux, значительно меньше чем у Windows и Mac, поэтому стимулов порадовать пользователей Linux полным и отполированным портом гораздо меньше.
Что делает протон лучше?
Когда вы пытаетесь запустить игру только для Windows в Steam на ПК с Linux, Proton — это то, что Steam запускает в фоновом режиме, чтобы убедиться, что он работает. Это собственный уровень совместимости Valve, который позволяет вам играть в игры для Windows без необходимости использования Windows. Этот дополнительный уровень может показаться ненужным, если у вас уже есть собственный порт, но по нескольким причинам у вас, вероятно, будет больше опыта с Proton.
Во-первых, Valve старается убедиться, что Proton совместим с множеством дистрибутивов, а это означает, что ваш предпочтительный дистрибутив с большей вероятностью будет поддерживаться. А поскольку он активно развивается, вам не нужно беспокоиться об обновлении ОС слишком далеко от разработчиков игры.
Кроме того, в отличие от игровой студии, которая выпустила вашу любимую игру, Valve очень заинтересована в том, чтобы в Linux можно было играть в большее количество игр. Steam Deck поставляется с SteamOS, собственным дистрибутивом Linux от Valve. Таким образом, у Valve есть серьезная финансовая заинтересованность в том, чтобы сделать Proton как можно лучше.
Клапан
Фактически, игровая студия может решить не переносить свою игру на Linux полностью, исходя из предположения, что Proton будет работать достаточно хорошо. Feral Interactive, разработчик с несколькими портами для Linux, написал в Твиттере, что «С тех пор, как Valve выпустила Proton, спрос на нативные игры в целом снизился». В качестве яркого примера, планы по созданию собственного порта Linux Сага о тотальной войне: Троя были исключены вскоре после того, как Valve анонсировала Steam Deck.
Конечно, вы также можете попробовать версию вашей игры Steam Linux Runtime, если она доступна. Опять же, это может сработать отлично. Однако проблемы, скорее всего, возникнут, если не сейчас, то позже, когда вы обновите свой дистрибутив. В этом неизбежном повороте Proton станет вашим лучшим выбором.
Как начать использовать Proton
Если вы хотите начать использовать Proton в Linux, это просто. Вы можете следовать нашему подробному руководству по началу работы с Proton. И когда вы не играете, вы должны знать, что Proton — не единственный вариант для запуска программного обеспечения Windows в Linux.
Что такое Steam Play Proton или как запускать игры на Linux
Желаете использовать дистрибутив GNU/Linux у себя на домашнем ПК, но при этом не хотите терять возможность играть в любимые игры?! Не проблема, проект собрал по крупицам данный гайд, дабы дать вам возможность сориентироваться в этой теме и понять насколько это реально для вас.
Прежде всего, что такое Steam Play?
Итак, теперь мы точно знаем, что функция Proton в Steam-клиенте для Linux, дает нам некий уровень совместимости, позволяя в итоге запускать Windows-игры на Linux.
Некоторые игры работают безупречно, в некоторых есть серьезные проблемы, некоторые работают с частичным функционалом. И тем не менее, сообщается, что в настоящее время работают тысячи игр!
Для того, чтобы посмотреть, как работает ваша игра и работает ли она вообще, советую всегда обращаться к ресурсу:
Как я могу проверить совместимость с моими играми для Windows?
Если игра получила рейтинг Platinum из отчетов пользователей, все готово. Если он имеет рейтинг Gold, в большинстве случаев он будет работать без проблем, но может потребоваться некоторые настройки. Все, что ниже Gold, вероятно, потребует некоторых ручных усилий.
Чтобы упростить просмотр рейтингов, вы можете попробовать плагин Firefox « Protonтакие страницы, как эта для DOOM:DB for Steam », который добавляет отдельный пункт с рейтингом ProtonDB, прямо на страничке игры в магазине Steam.
Как включить Steam Play?
Войдите в свои настройки, нажав Steam в верхнем левом углу клиента Steam, выбрав Настройки, а затем найдите Steam Play внизу списка, как показано ниже:
Что на самом деле делает каждый флажок?
Однако на самом деле вы можете принудительно установить определенную версию Proton (название инструмента Steam Play) на любой элемент в вашей библиотеке Steam. Делая это:
Это удобно по двум причинам:
Как проверить, установлен ли Proton?
Steam должен делать это автоматически. Если вы выполните поиск по запросу «proton» в своей библиотеке Steam, он должен отобразить список доступных в настоящее время официальных версий Proton.
Вы также должны убедиться, что у вас установлены «Steam Linux Runtime» и «Steam Linux Runtime — Soldier». Найдите их в своей библиотеке Steam и убедитесь, что они установлены.
Как обновить Proton?
Он автоматический, как и другие игры и приложения в Steam. Он появится в ваших загрузках Steam.
Можно ли принудительно установить Steam Play на игры для Linux?
Да! Просто следуйте тому же методу, описанному выше, чтобы заставить игру работать с нужной вам версией, даже если она нативная.
Почему вы хотите это сделать? Версия для Linux может быть устаревшей, плохо работать, не работать в новом дистрибутиве или по любой другой причине. Steam Play, по крайней мере, дает вам возможность резервного копирования, когда такое случается. А ещё есть кривые порты на Linux и иногда версия запущенная из под Proton, работает куда лучше.
Посмотреть более подробный ролик на канале:
Что такое экспериментальный протон?
Proton Experimental — это еще одна версия Proton, которая обычно включает в себя дополнительные функции и исправления ошибок, которые, возможно, требуют дополнительного тестирования. Вы можете переключиться на него так же, как и на другие версии Proton, в меню совместимости для каждой игры.
Что такое Proton GE / GloriousEggroll
Proton GE — это версия Proton, созданная сообществом. Поскольку это открытый исходный код, любой может создать свою собственную версию. Proton GE — это попытка как можно быстрее внести определенные исправления и улучшения. Несмотря на то, что он подвергается меньшему количеству тестов, иногда он помогает запустить более новые игры для Windows на Linux.
А что насчет Proton вне Steam?
Для русскоязычных пользователей, доступен интересный проект PortWine Linux, где автор собрал графическую утилиту, благодаря которой, в пару кликов можно попытаться запустить нужную нам игру, даже если её нету в нашей Steam библиотеке.