UMU: лучший инструмент для объединения ваших игр на Linux

  • UMU копирует среду выполнения Steam для запуска Proton вне Steam с теми же гарантиями.
  • umu-run объединяет переменные и исправления, применяя протонфиксы в соответствии с GAMEID и STORE из общей базы данных.
  • Гибкая установка: классическая сборка, пакеты uv и nixpkgs с расширенными опциями.

UMU Launcher

UMU Launcher стал одним из тех инструментов, которые, не привлекая к себе особого внимания, меняют способ игры в Linux. Далеко не типичный графический лаунчер, его миссия — унифицировать работу игр для Windows с Proton вне Steam , чтобы любой клиент или скрипт мог использовать ту же среду, что и Valve, не завися от самого Steam.

Проще говоря: UMU копирует контейнерную модель Steam Runtime (ту же самую, что используется в Proton и Steam Linux Runtime) с некоторыми изменениями, поэтому Proton работает идентично Steam, но из любого совместимого лаунчера, такого как Lutris, Heroic или Bottles, и даже из простой команды в терминале. И да, для его использования не обязательно устанавливать Steam .

Что такое UMU Launcher и откуда взялось его название?

UMU — это, по сути, адаптация Steam Linux Runtime "sniper" и Steam Runtime Tools , со своей собственной точкой входа и утилитами для интеграции со сторонними сервисами. Название "umu" выбрано не случайно: оно отсылает к полинезийской печи, сделанной из нагретых вулканических камней , на которой "готовится" всё, что вы на неё положите. Эта метафора подходит и к контейнерному инструменту Valve под названием "pressure-vessel": UMU — это та самая "печь", на которой размещается сосуд высокого давления, чтобы подготовить среду, в которой Proton "готовит" ваши игры.

Когда Steam запускает игру с Proton, он запускает цепочку процессов, в которых он обычно появляется Steam-launch-wrapper (просто бегун который пересылает переменные среды) и, что особенно важно, SteamLinuxRuntime_sniper с _v2-entry-point который собирает контейнер и загружает Протон. UMU воспроизводит эту логику: сценарий _v2-entry-point он переименован в umu, он добавляет umu-run заменить steam-launch-wrapper и необходимые детали корректируются Используйте Proton вне Steam поддержание ожиданий в отношении окружающей среды, необходимых Proton (включая переменные окружающей среды).

Как это работает: переменные среды, контейнер и umu-run

Ключ в запустить игру в том же типе контейнера, который использует Steamс правильными переменными для Proton. UMU позволяет вам вызывать umu-run указание исполняемого файла игры, аргументов и, необязательно, WINEPREFIX, версия Proton и магазин из которого игра исходит для применения определенных исправлений.

Основные параметры и переменные umu-run , которые вам следует знать:

  • ВИНОПРЕФИКС: Путь к префиксу WINE. Если вы его не укажете, UMU создаст его по умолчанию в $HOME/Games/umu/GAMEID. Если вы не определите GAMEID, префикс по умолчанию будет $HOME/Games/umu/umu-default.
  • ИГРОВОЙ ИД: может быть произвольным значением или допустимым идентификатором в umu-база данных. Если вы не определите это, используется umu-default (без автоматических исправлений).
  • ПРОТОННЫЙ ПУТЬ: полный путь к нужной версии Proton. Также поддерживает значение ГЭ-Протон для автоматически загрузить последнюю сборку от GE-Proton. Если вы не укажете это, УМУ-Протон (стабильная сборка от Valve с поддержкой UMU) — опция по умолчанию.
  • STORE: магазин или «витрина» игры (например, EGS, Гогии т.д.). UMU объединяет STORE + GAMEID для поиска конкретных исправлений в вашей базе данных.
  • PROTON_VERB: Протонный глагол для использования. Если вы его не установите, используйте "waitforexitandrun".
  • UMU_LOG: Включает журналы отладки UMU. Полезно для диагностировать проблемы.
  • UMU_ZENITY: если активен, отображение всплывающих окон с помощью Zenity при загрузке больших файлов.
  • UMU_RUNTIME_UPDATE y UMU_NO_PROTON: дополнительные опции для управление временем выполнения или сценарии, когда вы не хотите, чтобы UMU управлял Proton.

Кроме того, UMU автоматически загружает и использует необходимую среду выполнения Steam. для выбранной версии Proton и поместите ее файлы в $HOME/.local/share/umu. Теперь контейнер времени выполнения готов и Игра работает так, как будто она родная для Steam., недалеко от Steam.

Преимущества: почему это объединение важно

Подход UMU упрощает использование единого «языка» для всех лаунчеров при запуске игр с помощью Proton. Это дает ряд очевидных преимуществ как для пользователей, так и для разработчиков:

  • Нет требований Steam: Для использования Proton вам больше не нужен клиент Steam или исполняемые файлы.
  • Единая база исправлений- Исправления для конкретных игр (protonfixes) распространяются среди сообщества и между различными лаунчерами.
  • Паритет со Steam: Игры начинаются с Proton внутри того же типа контейнера, который использует Steam, копирование своей среды.
  • Централизованное обслуживание: если что-то меняется, это обновляется в Proton GE и/или protonfixes или в унифицированной сборке Proton, положительно влияет на всех.

Сегодня protonfixes упаковывает локальную папку «игровые исправления», но сам проект предполагает, что может развиться в онлайн-загрузку так что любой инструмент, который вы используете, umu-run централизованно получать необходимые исправления.

ProtonFixes и база данных UMU: как применяются исправления

UMU предлагает простой алгоритм работы лаунчера для идентификации игры, её магазина и соответствующего исправления, а также автоматического его применения перед запуском с помощью Proton. Описанный процесс состоит из следующих шагов:

  1. Создать базу данных с названиями игр, их идентификаторами в разных магазинах и umu-ID коррелируют.
  2. Пичер ищет на базе данные об игре и извлекает их. umu-ID, что происходит с umu-run вместе с STORE, Proton, WINEPREFIX, исполняемый файл и аргументы.
  3. При запуске игры с umu-run, протонфиксы обнаруживает STORE + umu-ID, находит соответствующий скрипт исправления и применяет это перед казнью.
  4. protonfixes организует скрипты в папок на хранилище. Одна и та же игра поддерживает один и тот же UMU-ID в нескольких магазинах; у неё могут быть специфичные для магазина скрипты или ссылка на существующее исправление если у вас есть общие потребности.

Вот пример, который они приводят: Borderlands 3 в Epic Games Store (EGS). EGS использует «кодовые имена» Как и «Кошачья мята». Лаунчер обнаруживает, что магазин EGS и кодовое имя - Кошачья мята, обращается к базе данных, связывает ее с «Borderlands 3» и umu-ID соответствующий (например, umu-12345), и этот идентификатор передается umu-run. Вот как гарантируется правильность исправлений. даже если магазин не использует название бренда игры.

Рекомендации по использованию: варианты и примеры

UMU включает стандартную документацию справочная страница для umu-run, с такими формами использования, как umu-run , umu-run ] o umu-run winetricks , Plus --config <FILE> y --helpСреди примеров они предлагают практические случаи как:

  • Запустить игру непосредственно.
  • Запустить игру с определенным протонфиксом.
  • Использование файла конфигурации для параметризации выполнения.
  • Создайте WINEPREFIX UMU и запустить его с помощью Протона.
  • Выбрать Протон автоматически (и создайте префикс, если необходимо).
  • Определите допустимый глагол Proton явно.
  • Включить журналы отладки для диагностики неисправностей.
  • Принудительно указать конкретную версию Proton по имени.
  • Используйте последнюю версию GE-Proton автоматически.
  • Выполнить глаголы winetricks от umu-run.
  • Отключить приложение protonfixes если вам это нужно.

В числе связанных утилит — ссылки на winetricks , zenity , сам umu(5) и документацию по среде выполнения контейнеров Steam . Также есть ссылки на репозитории Proton , umu-protonfixes и базу данных umu для тех, кто хочет изучить их подробнее или внести свой вклад.

Сборка и установка: от make до nixpkgs

Для тех, кто предпочитает компилировать или упаковывать, в документации UMU указано, что для сборки требуются bash , make , scdoc и инструменты Python (build, hatchling, installer, pip). Кроме того, требуется минимальный MSRV, равный последней стабильной версии прямых зависимостей.

Рекомендуемый поток: загрузить код, войти в каталог, выполнить configure.sh --prefix чтобы задать префикс установки (например /usr/local o /app если вы собираетесь упаковать в Flatpak), запустите make и если все пойдет хорошо, у вас будут артефакты ./builddir. Тогда вы можете бежать. make install для установки.

Для установки пользователем, UMU помещает исполняемый файл в $HOME/.local/bin, Убедитесь, что добавьте этот каталог в ваш PATH (например, экспортируя его в $HOME/.bash_profile), если вы хотите вызвать его без полного пути.

В качестве альтернативы они предлагают использовать `uv` для создания виртуальной среды и быстрой настройки UMU . В руководстве предлагается сгенерировать скрипт в каталоге проекта , создать виртуальную среду с помощью `uv` , установить зависимости и запустить скрипт через ` uv`.

En NixOS/nixpkgs, UMU доступен как pkgs.umu-launcher с 25.05 (нестабильная ветка на указанное время). Там также подробно описано, как использовать хлопья если вам нужен более свежий снимок, чем у канала, и они даже предоставляют Примеры для NixOS и Home-Manager. Если вы работаете со старыми каналами (такими как nixos-24.11), предлагают объединить несколько каналов или потяните свою чешуйку.

Параметры упаковки, которые можно переопределить в nixpkgs:

  • extraPkgs: добавить дополнительные пакеты в среду FHS (по умолчанию) pkgs: []).
  • extraLibraries: добавить дополнительные библиотеки в среду FHS (по умолчанию) pkgs: []).
  • сMultiArch: Включить 32-битные библиотеки в среду FHS (по умолчанию) правда).

Если вы используете flake, вы можете настроить дополнительные зависимости, такие как:

  • с Truststore: позволяет использовать системное хранилище доверия (по умолчанию правда).
  • сDeltaUpdates: активировать зависимости для «Дельта-обновления» Proton (по умолчанию правда).

Они также показывают способы применения наложение через specialArgs или прямо в flake.nix, а также пример переопределения аргументов пакета.

Среда выполнения Steam, логи и отладка

UMU использует среду выполнения Steam на основе контейнеров (ту же самую, что используется в нативных играх для Linux и Proton 8.0+ ). Для диагностики проблем в этой среде сама среда выполнения поддерживает полезные переменные окружения при запуске вместе с клиентом Steam, которые также служат ориентиром при работе с контейнером:

  • STEAM_LINUX_RUNTIME_LOG=1: включает журналы, которые появляются в SteamLinuxRuntime_sniper/var/slr-*.log (с AppID в названии). slr-latest.log является символическая к последнему сгенерированному.
  • STEAM_LINUX_RUNTIME_VERBOSE=1: более подробный вывод (в файлы, если есть LOG=1 или в то же место, что и вывод steam но).
  • ОБОЛОЧКА_СОСУДА_ДАВЛЕНИЯ=вместо: вместо того, чтобы начать игру, открывает интерактивную оболочку внутри контейнера для проверки.

Valve документирует предположения о поддерживаемые дистрибутивы, советы по отладке и заметки о выпуске и известные проблемы во время выполнения. Если вы разрабатываете игры и интересуетесь нацельтесь на эту среду, ознакомьтесь с его SDK и технической информацией для разработчиков. Вся среда выполнения интегрирована стороннее программное обеспечение с открытыми лицензиями и исходным кодом, доступным в версионных каталогах (см. VERSIONS.txt (чтобы увидеть соответствия).

Последние обновления и исправления

В недавнем обновлении разработчики выпустили исправление, отменяющее изменения в «жнеце», поскольку они нарушали работу UMU в сессиях GameScope на Flatpak . В списке указано:

  • реверсия «umu_run: завершить реализацию reaper в umu».
  • реверсия «umu_run: запустить обходной путь steammode в главном процессе».
  • реверсия «umu_run: пока использовать жестко заданные отображаемые значения».
  • Обновленные заметки о выпуске (примечания к выпуску Bump).

Подобные экстренные исправления показывают, что проект быстро реагирует на регрессии в конкретных средах, таких как Flatpak + GameScope, что имеет ключевое значение для пользователей Steam Deck или настольных компьютеров, использующих этот стек.

Статус проекта: первая официальная версия и реальная цель

Версия 1.1.1 была названа первым официальным релизом Unified Linux Wine Game Launcher Томасом "GloriousEggroll" Крайдером и сообществом Open Wine Components. Они подчеркивают, что это не графический лаунчер, как Steam/Heroic/Lutris , а скорее общий слой , который эти лаунчеры могут использовать для запуска игр на основе Proton вне Steam с тем же качеством , что и внутри Steam.

Они указывают, что это должно работать в Flatpak и Snap , и предоставляют инструкции по упаковке для обоих форматов в своем репозитории. Цель состоит в том, чтобы любое приложение могло запускать игры из таких магазинов, как Epic, GOG или Amazon, с тем же качеством, что и в Steam, используя преимущества protonfixes и единой базы данных для постоянно улучшающейся совместимости.

Ссылки и рекомендуемая документация

Для получения дополнительной информации в документации приведены ссылки на такие ресурсы, как примечания к выпуску Steam Runtime Sniper , известные проблемы во время выполнения и порядок сообщения об ошибках , а также документ по среде выполнения контейнеров . Также стоит ознакомиться со следующими документами:

Проект поддерживается Open Wine Components при участии других разработчиков. Если вы хотите внести свой вклад, они рекомендуют установить Ruff из вашего дистрибутива и включить сервер Ruff в вашем редакторе для поддержания единообразного стиля кода.

UMU выступает в качестве технического связующего звена между Proton и лаунчерами, обеспечивая стандартизированную среду выполнения и общую базу исправлений; это позволяет сообществу быстрее и без лишних сложностей развиваться, а пользователям — получать стабильность и простоту при запуске игр вне Steam с тем же качеством.


Добавить в качестве предпочтительного источника в Google