
Ang UMU Launcher ay naging isa sa mga kagamitang, nang hindi gaanong maingay, ay nagbabago sa paraan ng paglalaro natin ng mga laro sa Linux. Malayo sa pagiging isang tipikal na graphical launcher, ang misyon nito ay pag-isahin kung paano tumatakbo ang mga laro sa Windows gamit ang Proton sa labas ng Steam , upang ang anumang client o script ay mapakinabangan ang parehong kapaligirang ginagamit ng Valve nang hindi umaasa sa Steam mismo.
Sa madaling salita: Kinokopya ng UMU ang Steam Runtime container model (ang parehong ginagamit ng Proton at Steam Linux Runtime) na may ilang pagbabago, kaya gumagana ang Proton nang katulad ng ginagawa nito sa loob ng Steam, ngunit mula sa anumang compatible na launcher tulad ng Lutris, Heroic , o Bottles, at maging mula sa isang simpleng terminal command. At oo, hindi mo kailangang mag-install ng Steam para magamit ito.
Ano ang UMU Launcher at saan nagmula ang pangalan nito?
Ang UMU ay mahalagang isang adaptasyon ng Steam Linux Runtime "sniper" at ng Steam Runtime Tools , na may sarili nitong entry point at mga utility para sa third-party integration. Ang pangalang "umu" ay hindi nagkataon lamang: ito ay tumutukoy sa isang Polynesian oven na gawa sa pinainit na mga batong bulkan , kung saan anumang ilagay mo sa ibabaw ay "naluluto." Ang metapora ay akma sa container tool ng Valve na tinatawag na "pressure-vessel": Ang UMU ay ang "stove" kung saan inilalagay ang pressure vessel upang ihanda ang kapaligiran kung saan "niluluto" ng Proton ang iyong mga laro.
Kapag nagsimula ang Steam ng isang laro sa Proton, naglulunsad ito ng isang hanay ng mga proseso kung saan ito karaniwang lumalabas steam-launch-wrapper (isang lang mananakbo na nagpapasa ng mga variable ng kapaligiran) at, higit sa lahat, ang SteamLinuxRuntime_sniper kasama ang _v2-entry-point na nag-assemble ng lalagyan at naglo-load ng Proton. Ginagaya ng UMU ang lohika na iyon: ang script _v2-entry-point pinalitan ito ng pangalan sa umu, dagdag nito umu-run upang palitan steam-launch-wrapper at ang mga kinakailangang detalye ay inaayos sa Gumamit ng Proton sa labas ng Steam pagpapanatili ng mga inaasahan sa kapaligiran na kailangan ng Proton (kasama ang mga variable ng kapaligiran).
Paano ito gumagana: mga variable ng kapaligiran, lalagyan, at umu-run
Ang susi ay nasa simulan ang laro sa loob ng parehong uri ng lalagyan na ginagamit ng Steam, na may mga tamang variable para sa Proton. Pinapayagan ka ng UMU na mag-invoke umu-run na nagpapahiwatig ng laro na maipapatupad, ang mga argumento at, opsyonal, ang WINEPREFIX, ang bersyon ng Proton at ang tindahan kung saan nagmumula ang laro upang maglapat ng mga partikular na pag-aayos.
Mga pangunahing parametro at baryabol ng umu-run na dapat mong malaman:
- WINE PREFIX: WINE prefix path. Kung hindi mo ito tinukoy, nilikha ito ng UMU bilang default sa
$HOME/Games/umu/GAMEID. Kung hindi mo tinukoy ang GAMEID, ang default na prefix ay magiging$HOME/Games/umu/umu-default. - GAMEID: ay maaaring isang arbitrary na halaga o isang wastong ID sa umu-database. Kung hindi mo ito tinukoy, ay ginagamit
umu-default(nang walang awtomatikong pag-aayos). - PROTONPATH: buong landas sa bersyon ng Proton na gusto mong gamitin. Sinusuportahan din ang halaga GE-Proton para awtomatikong i-download ang pinakabagong build mula sa GE-Proton. Kung hindi mo ito ipahiwatig, UMU-Proton (isang matatag na build mula sa Valve na may suporta sa UMU) ay ang default na opsyon.
- IMBAK: tindahan ng laro o "storefront" (halimbawa, egs, GOG, atbp.). Pinagsasama-sama ng UMU STORE + GAMEID para maghanap ng mga partikular na pag-aayos sa iyong database.
- PROTON_VERB: Proton verb na gagamitin. Kung hindi mo ito itinakda, gamitin ang "waitforexitandrun".
- UMU_LOG: Pinapagana ang mga log ng debug ng UMU. Kapaki-pakinabang para sa mag-diagnose ng mga problema.
- UMU_ZENITY: kung aktibo, magpakita ng mga pop-up na may Zenity kapag nagda-download ng malalaking file.
- UMU_RUNTIME_UPDATE y UMU_NO_PROTON: karagdagang mga opsyon para sa pamamahala ng runtime o mga senaryo kung saan ayaw mong pamahalaan ng UMU ang Proton.
Bukod dito, Awtomatikong dina-download at ginagamit ng UMU ang kinakailangang Steam Runtime para sa napiling bersyon ng Proton, at ilagay ang mga file nito $HOME/.local/share/umu. Sa pamamagitan nito, handa na ang runtime container at Ang laro ay tumatakbo na parang ito ay katutubong sa Steam, sa labas lang ng Steam.
Mga Bentahe: Bakit mahalaga ang pagsasama-samang ito
Dahil sa pamamaraan ng UMU, mas madali para sa lahat ng launcher na magsalita ng iisang "wika" kapag nagpapatakbo ng mga laro gamit ang Proton. Nagbibigay ito ng ilang malinaw na bentahe para sa parehong mga gumagamit at developer:
- Walang mga kinakailangan sa Steam: Hindi mo na kailangan ang Steam client o binaries para magamit ang Proton.
- Pinag-isang base ng pag-aayos- Ang mga pag-aayos na partikular sa laro (mga protonfix) ay ibinabahagi sa buong komunidad at sa iba't ibang launcher.
- Parity sa Steam: Nagsisimula ang mga laro sa Proton sa loob ng parehong uri ng lalagyan na ginagamit ng Steam, ginagaya ang kapaligiran nito.
- Sentralisadong pagpapanatili: kung may magbago, ina-update ito sa Proton GE at/o mga protonfix o sa pinag-isang Proton build, positibong nakakaapekto sa lahat.
Ngayon ang protonfixes ay nag-i-package ng isang lokal na folder ng "mga gamefix", ngunit ang proyekto mismo ay nagmumungkahi na maaaring umunlad sa online na pag-download upang ang anumang tool na iyong ginagamit umu-run makuha ang mga pag-aayos na kailangan mo sa gitna.
ProtonFixes at ang UMU Database: Paano Inilalapat ang Mga Pag-aayos
Nagmumungkahi ang UMU ng isang simpleng daloy ng trabaho para matukoy ng isang launcher ang laro, ang imbakan nito, at ang kaukulang solusyon, at awtomatikong ilapat ito bago patakbuhin gamit ang Proton. Ang proseso, gaya ng inilarawan, ay binubuo ng mga hakbang na ito:
- Lumikha ng isang database na may mga pamagat ng laro, ang kanilang mga ID sa iba't ibang mga tindahan at ang umu-ID nakakaugnay.
- Hinahanap ng pitcher ang base para sa data ng laro at kinukuha ang umu-ID, na nangyayari sa
umu-runkasama STORE, Proton, WINEPREFIX, executable at mga argumento. - Kapag sinimulan ang laro sa
umu-run, mga protonfix nakita ang STORE + umu-ID, hinahanap ang naaangkop na script ng pag-aayos at inilalapat ito bago ang pagbitay. - inaayos ng mga protonfix ang mga script sa mga folder sa bawat tindahan. Ang parehong laro ay nagpapanatili ng parehong umu-ID sa maraming tindahan; maaaring mayroon itong mga script na tukoy sa tindahan o link sa isang umiiral na pag-aayos kung nagbabahagi ka ng mga pangangailangan.
Ang isang halimbawang ibinibigay nila ay Borderlands 3 sa Epic Games Store (EGS). Ginagamit ng EGS "mga codename" parang "Catnip". Nakikita ng launcher na ang tindahan ay egs at ang codename ay Halaman ng katmint, kumunsulta sa database, iniuugnay ito sa "Borderlands 3" at sa umu-ID katumbas (halimbawa, umu-12345), at ipapasa ang ID na iyon sa umu-run. Ito ay kung paano ginagarantiyahan ang mga tamang pag-aayos kahit na hindi ginagamit ng tindahan ang brand name ng laro.
Mga sanggunian para sa paggamit: mga opsyon at halimbawa
Kasama sa UMU ang karaniwang dokumentasyon pahina ng tao para umu-run, na may mga paraan ng paggamit tulad ng umu-run , umu-run ] o umu-run winetricks , Plus --config <FILE> y --helpKabilang sa kanilang mga halimbawa ay kanilang iminumungkahi praktikal na mga kaso bilang:
- Magpatakbo ng laro direkta.
- Magpatakbo ng laro na may partikular na protonfix.
- Paggamit ng configuration file para i-parameter ang execution.
- Gumawa ng WINEPREFIX UMU at ilunsad ito sa Proton.
- Awtomatikong piliin ang Proton (at lumikha ng prefix kung kinakailangan).
- Tukuyin ang isang wastong pandiwa ng Proton tahasan.
- Paganahin ang mga debug log upang masuri ang mga pagkakamali.
- Pilitin ang isang partikular na bersyon ng Proton ayon sa pangalan.
- Gamitin ang pinakabagong build ng GE-Proton awtomatiko.
- Ipatupad ang mga pandiwa ng winetrick mula sa
umu-run. - Huwag paganahin ang application ng mga protonfix kung kailangan mo ito
Kabilang sa mga kaugnay na kagamitan ang mga sanggunian sa winetricks , zenity , umu(5) mismo , at dokumentasyon para sa runtime ng Steam container . Nagli-link din ito sa mga repositoryo ng Proton , umu-protonfixes , at ang umu-database para sa mga nais pang mag-explore o mag-ambag.
Pagbuo at pag-install: mula sa make hanggang sa nixpkgs
Para sa mga mas gustong mag-compile o mag-package, idinodokumento ng UMU na ang build ay nangangailangan ng mga tool na bash , make , scdoc , at Python (build, hatchling, installer, pip). Bukod pa rito, nangangailangan sila ng minimum na MSRV na katumbas ng pinakabagong stable na bersyon ng mga direct dependencies nito.
Ang inirerekomendang daloy ay: i-download ang code, ipasok ang direktoryo, isagawa configure.sh --prefix upang itakda ang prefix ng pag-install (halimbawa /usr/local o /app kung pupunta ka sa pakete sa Flatpak), tumakbo make at kung magiging maayos ang lahat magkakaroon ka ng mga artifact ./builddir. Pagkatapos ay maaari kang tumakbo make install i-install.
Para sa pag-install ng user, Inilalagay ng UMU ang executable $HOME/.local/bin. Siguraduhin na idagdag ang direktoryo na iyon sa iyong PATH (halimbawa, pag-export nito sa $HOME/.bash_profile) kung gusto mong i-invoke ito nang walang buong landas.
Bilang kahalili, iminumungkahi nila ang paggamit ng `uv` upang lumikha ng isang virtual na kapaligiran at mabilis na i-configure ang UMU . Iminumungkahi ng gabay ang pagbuo ng isang script sa direktoryo ng proyekto , paglikha ng virtual na kapaligiran gamit ang `uv` , pag-install ng mga dependency, at pagpapatakbo ng script sa pamamagitan ng ` uv`.
En NixOS/nixpkgs, available ang UMU bilang pkgs.umu-launcher mula noong 25.05 (hindi matatag na sangay sa ipinahiwatig na oras). Detalye din nila kung paano gamitin mga natuklap kung kailangan mo ng mas kamakailang snapshot kaysa sa channel, at nagbibigay pa nga sila Mga halimbawa para sa NixOS at Home-Manager. Kung nagtatrabaho ka sa mga mas lumang channel (tulad ng nixos-24.11), iminumungkahi ang pagsasama-sama ng maraming channel o hilahin ang iyong natuklap.
Mga parameter ng packaging na maaari mong i-override sa nixpkgs:
- extraPkgs: magdagdag ng mga karagdagang pakete sa kapaligiran ng FHS (default)
pkgs: []). - extraLibraries: magdagdag ng mga karagdagang aklatan sa kapaligiran ng FHS (bilang default)
pkgs: []). - kasama ang MultiArch: Isama ang 32-bit na mga aklatan sa kapaligiran ng FHS (bilang default) totoo).
Kung gumagamit ka ng flake, maaari mong i-configure ang mga opsyonal na dependencies gaya ng:
- saTruststore: nagbibigay-daan sa paggamit ng system trust store (default totoo).
- kasama ang DeltaUpdates: i-activate ang mga dependencies para sa Ang "delta updates" ng Proton (default totoo).
Nagpapakita rin sila ng mga paraan upang mailapat ang overlay sa pamamagitan ng specialArgs o direkta sa flake.nix, kasama ang isang halimbawa ng mga overriding na argumento ng package.
Steam Runtime, Mga Log, at Pag-debug
Ang UMU ay umaasa sa Steam Runtime na nakabatay sa container (ang parehong ginagamit ng mga katutubong laro sa Linux at Proton 8.0+ ). Upang masuri ang mga problema sa environment na ito, sinusuportahan mismo ng runtime ang mga kapaki-pakinabang na environment variable kapag inilunsad gamit ang Steam client, na nagsisilbi ring sanggunian kapag ginagamit ang container:
- STEAM_LINUX_RUNTIME_LOG=1: pinapagana ang mga log na lumalabas sa
SteamLinuxRuntime_sniper/var/slr-*.log(na may AppID sa pangalan).slr-latest.logay isang symlink hanggang sa huling nabuo. - STEAM_LINUX_RUNTIME_VERBOSE=1: mas maraming verbosity sa output (sa mga file kung mayroong LOG=1 o sa parehong lugar bilang output ng
steamngunit). - PRESSURE_VESSEL_SHELL=sa halip: sa halip na simulan ang laro, nagbubukas ng interactive na shell sa loob ng container para sa inspeksyon.
Ang mga dokumento ng balbula ay mga pagpapalagay tungkol sa mga suportadong pamamahagi, mga tip sa pag-debug, at pinapanatili ang mga tala sa paglabas at mga kilalang isyu sa runtime. Kung bumuo ka ng mga laro at interesado sa target na kapaligiran, tingnan ang SDK nito at teknikal na impormasyon para sa mga developer. Ang buong runtime ay nagsasama software ng third party kasama ang mga bukas na lisensya nito at ang source code ay magagamit sa mga bersyon na direktoryo (tingnan VERSIONS.txt upang makita ang mga sulat).
Mga kamakailang update at hotfix
Sa isang kamakailang update, naglabas ang mga maintainer ng hotfix na nagbabalik ng mga pagbabago sa "reaper" dahil sinisira nila ang mga UMU sa loob ng mga sesyon ng GameScope sa Flatpak . Nakasaad sa listahan:
- Pagbabalik-tanaw ng "umu_run: kumpletuhin ang pagpapatupad ng reaper sa umu".
- Pagbabalik-tanaw ng "umu_run: magpatakbo ng steammode workaround sa pangunahing proseso".
- Pagbabalik-tanaw ng "umu_run: gumamit ng hardcoded display values ​​​​sa ngayon".
- Na-update na mga tala sa paglabas (mga tala ng bump release).
Ipinapakita ng ganitong uri ng hotfix na mabilis na tumutugon ang proyekto sa mga regresyon sa mga partikular na kapaligiran tulad ng Flatpak + gamescope, na mahalaga para sa mga gumagamit ng Steam Deck o mga desktop na gumagamit ng stack na iyon.
Katayuan ng proyekto: unang opisyal na bersyon at tunay na layunin
Ang Bersyon 1.1.1 ay itinampok bilang unang opisyal na paglabas ng Unified Linux Wine Game Launcher ni Thomas "GloriousEggroll" Crider at ng komunidad ng Open Wine Components. Binigyang-diin nila na hindi ito isang graphical launcher tulad ng Steam/Heroic/Lutris , kundi isang karaniwang layer na magagamit ng mga launcher na iyon upang patakbuhin ang mga larong nakabase sa Proton sa labas ng Steam nang may parehong katapatan tulad ng sa loob ng Steam.
Ipinapahiwatig nila na dapat itong gumana sa loob ng Flatpak at Snap , at nagbibigay ng mga tagubilin sa pag-iimpake para sa parehong format sa kanilang repository. Ang layunin ay para sa anumang app na makapaglunsad ng mga titulo mula sa mga tindahan tulad ng Epic, GOG, o Amazon na may parehong kalidad tulad ng sa Steam, na makikinabang sa mga protonfix at sa pinag-isang database para sa patuloy na pagpapabuti ng compatibility.
Mga link at inirerekomendang dokumentasyon
Para sa karagdagang impormasyon, ang dokumentasyon ay naka-link sa mga mapagkukunan tulad ng mga tala ng paglabas ng Steam Runtime Sniper , mga kilalang isyu sa runtime at kung paano mag-ulat ng mga bug , pati na rin ang dokumentong container-runtime . Sulit din itong suriin:
- Winetricks: https://github.com/Winetricks/winetricks
- Proton: https://github.com/ValveSoftware/Proton
- umu-protonfixes: https://github.com/Open-Wine-Components/umu-protonfixes
- umu-database: https://github.com/Open-Wine-Components/umu-database
- Runtime ng container: opisyal na dokumentasyon
Ang proyekto ay pinapanatili ng Open Wine Components sa tulong ng iba pang mga kontribyutor. Kung nais mong mag-ambag, inirerekomenda nila ang pag-install ng Ruff mula sa iyong distribusyon at pagpapagana ng Ruff server sa iyong editor upang mapanatili ang pare-parehong istilo ng code.
Ang UMU ay nagsisilbing teknikal na pandikit sa pagitan ng Proton at mga launcher, na may standardized runtime at shared fix base; nagbibigay-daan ito sa komunidad na mas mabilis na sumulong at may mas kaunting alitan, at nagkakaroon ng katatagan at pagiging simple ang mga user kapag pinapatakbo ang kanilang mga laro sa labas ng Steam nang may parehong kalidad.