Wine, Proton et UMU : Exécuter des jeux Windows sur Linux !

Wine, Proton et UMU : Exécuter des jeux Windows sur Linux !

Ces dernières années, l’écosystème Linux a fait d’énormes progrès pour permettre l’exécution des applications et jeux Windows. Les projets Wine et Proton sont devenus des piliers dans ce domaine. Dans le même temps, de nouvelles solutions émergent pour lancer ces jeux sans avoir recours à Steam, comme le projet UMU Launcher.
Découvrons ensemble les fondations de Wine et Proton, puis voyons comment UMU Launcher s’appuie sur les technologies de Valve pour offrir une expérience de jeu autonome, hors du client Steam.


Lexique essentiel :

Avant de plonger dans les détails, voici quelques termes clés :

Conteneur : Un conteneur est un environnement isolé dans lequel on exécute un logiciel. Il inclut toutes les librairies et dépendances nécessaires, sans interférer avec le reste du système.

pressure-vessel : Développée par Valve, *pressure-vessel* est une technologie de conteneurisation, créant un conteneur dans lequel les jeux Steam peuvent tourner. Elle regroupe tout ce dont ils ont besoin (bibliothèques, dépendances, etc.).

– Le Steam Runtime Tools et Steam Linux Runtime regroupent un ensemble de bibliothèques, dépendances et outils (dont pressure-vessel) que Steam fournit afin de garantir que les jeux s’exécutent dans un environnement standardisé.


1. Wine et Proton : qu’est-ce que c’est ?

Wine

  • Wine est un logiciel libre qui permet d’exécuter nativement des applications Windows sur d’autres systèmes (Linux, macOS).
  • Son nom signifie « Wine Is Not an Emulator » : il ne virtualise pas Windows, mais réimplémente les API Windows, traduisant à la volée les appels système Windows en appels système Linux.
  • Au fil des années, Wine est devenu un véritable « couteau suisse » pour faire tourner les programmes Windows, qu’il s’agisse de logiciels professionnels ou de jeux.

Proton

  • Proton est un fork (une version modifiée) de Wine, développé par Valve plus des outils maison. L’objectif principal est de faciliter et d’optimiser l’exécution des jeux Windows sur Linux via la plateforme Steam.
  • Proton inclut divers outils comme DXVK (pour convertir Direct X 9/10/11 en Vulkan) et vkd3d-proton (pour DX12).
  • Contrairement à Wine, qui cible une compatibilité large pour toutes sortes d’applications, Proton se concentre sur les jeux, en privilégiant la performance et l’intégration dans Steam.

2. Pourquoi Wine et Proton misent-ils sur Vulkan ?

Sous Linux, la technologie DirectX (propriétaire de Microsoft) n’est pas disponible nativement. Pour contourner cela, Wine et Proton utilisent Vulkan, une API graphique multiplateforme et de bas niveau. Les appels Direct3D (DirectX) des jeux Windows sont donc convertis en Vulkan grâce à :

  • DXVK : conversion de Direct X 9, 10, 11 vers Vulkan.
  • vkd3d / vkd3d-proton : conversion de Direct X 12 vers Vulkan (vkd3d-proton étant une version optimisée par Valve).

Cette couche de traduction est essentielle pour faire tourner les jeux Windows sous Linux avec des performances proches de leur exécution native sur Windows.


3. Les différentes versions de Proton

Valve propose plusieurs branches, chacune répondant à un usage précis.

  1. Proton Stable
    • Proton stable figé en version, ex. Proton 9.0-4.
    • Passe par des tests approfondis avant d’être publiée.
    • Garante de la meilleure stabilité possible.
  2. Proton Next
    • Version de test permettant aux joueurs de découvrir à l’avance la prochaine version Stable.
    • Permet d’identifier les régressions potentielles avant leur arrivée dans la branche Stable.
  3. Proton Experimental
    • Inclut des fonctionnalités et correctifs expérimentaux qui n’ont pas encore franchi le cap du Stable.
    • Idéal pour tester de nouveaux jeux ou patches qui pourraient devenir officiels par la suite.
  4. Proton Hotfix
    • Version “d’urgence” pour corriger un problème critique (nouveau jeu populaire qui ne se lance pas, bug majeur, etc.).
    • Éphémère, elle ne doit plus être utilisée une fois le correctif fusionné dans les autres branches.
  5. Proton Bleeding Edge
    • Branche de développement, intégrée en continu dans la version bêta de Proton Experimental.
    • Récupère instantanément les dernières modifications de projets comme dxvk, vkd3d-proton, dxvk-nvapi, etc.
    • Peut être instable et casser vos préfixes de jeu ou sauvegardes.

Les versions “custom” de Proton

En parallèle, la communauté maintient ses propres builds de Proton, dont la plus célèbre est Proton-GE (Glorious Eggroll).

  • Il intègre des patchs supplémentaires, parfois issus de Wine-Staging, la communauté ou d’autres sources, afin de prendre en charge des jeux hors Steam (Epic Games, GOG…)
  • Proton-GE intègre des codecs que Valve en tant qu’entreprise ne peut inclure dans proton, permettant par exemple de lire certaines cinématiques en jeu que le Proton de Valve ne pourrait lire.

Exemple n°1 :
Imaginons que Red Dead Redemption 2 ait besoin d’un correctif pour fonctionner correctement sur Linux avec Proton. Du côté de Valve, la priorité serait de faire en sorte que Proton détecte l’ID du jeu et applique le correctif à la version Steam. En revanche, Valve ne se focalisera pas nécessairement sur les versions lancées par d’autres plateformes (par exemple, la version du Rockstar Launcher via Lutris).
GE, quant à lui, se montre plus attentif à ces correctifs pour les jeux hors Steam.

Exemple n°2 :
Récemment, une mise à jour de Battle.net a provoqué un dysfonctionnement sous Linux. GE a réagi très rapidement en publiant Proton-GE-9-23 dans les heures qui ont suivi, intégrant le correctif. De son côté, Valve, en tant qu’entreprise, ne peut pas se permettre de déployer des mises à jour aussi vite. Même dans Proton Experimental, il a fallu quelques jours de test avant que le correctif ne soit disponible.


4. Le rôle du Steam Runtime et du WINEPREFIX

Steam Runtime

  • Ensemble de bibliothèques et d’outils normalisés que Valve fournit.
  • Assure que tous les joueurs (sur différentes distributions Linux) disposent d’un environnement cohérent pour lancer leurs jeux.
  • Évite les problèmes de dépendances manquantes ou de versions incompatibles d’une distribution à l’autre.
  • Lance un conteneur pressure-vessel (technologie de conteneurisation de Valve), dans lequel les jeux Steam s’exécutent.

WINEPREFIX

  • Dossier où Wine ou Proton créent l’équivalent d’un “C:\” Windows (avec le registre Windows, le dossier « Program Files », etc.).
  • Chaque jeu peut être installé dans un WINEPREFIX séparé, préservant ainsi l’indépendance de ses fichiers et sa configuration.

5. Comment ça fonctionne concrètement ?

  1. Création d’un conteneur pressure-vessel : Contenant tout ce qu’il faut pour garantir le lancement du jeux et isolant l’exécution du reste du système.
  2. Traduction en temps réel : Wine/Proton interceptent les appels Windows et les convertissent en appels Linux.
  3. Conversion graphique :
    • DXVK traite les appels Direct X (9/10/11) vers Vulkan.
    • vkd3d-proton gère Direct X12.
  4. WINEPREFIX : Dossier où Wine ou Proton recrée l’arborescence Windows (simili “C:\”), stockant le registre Windows et les dossiers « Program Files ».
  5. Optimisations et patchs : Proton et les builds custom intègrent des correctifs spécifiques pour améliorer la compatibilité et les performances.

UMU Launcher : jouer hors Steam grâce à la conteneurisation mais avec le même niveau de compatibilité.

1. Qu’est-ce que UMU ?

UMU-launcher est un projet permettant de lancer des jeux Windows sous Linux en utilisant Proton, mais sans le client Steam, particulièrement utile pour des applications comme Lutris ou Heroic Game Launcher. Il exploite la technologie pressure-vessel de Valve et rend les outils de Valve comme les Steam Runtimes disponibles de façon autonome. L’idée est de proposer la même « expérience conteneurisée » que Steam, mais en dehors de Steam et de pouvoir appliquer les patchs de la communauté contenus dans une base de données pour améliorer la compatibilité des jeux n’appartenant pas à la bibliothèque Steam.

Pourquoi le nom “UMU” ?

Le mot umu fait référence à un four polynésien chauffé par des pierres volcaniques. Par analogie, umu représente la « plaque de cuisson » sur laquelle repose le “pressure-vessel” (en français, récipient sous pression) de Valve : un conteneur isolé pour exécuter les jeux Windows dans un environnement standardisé.

2. Origine du projet

En 2023, lors de l’Ubuntu Summit, Glorious Eggroll (créateur de Proton-GE), des développeurs de Lutris et Heroic Game Launcher ont discuté avec un employé de Valve, Érik, qui leur a présenté la documentation autour de pressure-vessel. Séduits par l’idée, ils ont lancé le projet UMU pour exploiter cette technologie en dehors de Steam.

3. Comment UMU Launcher fonctionne-t-il ?

Lorsqu’on lance un jeu Windows via Steam, sous le capot, Steam exécute une série de scripts et d’outils :

  • Démarrage du Steam Linux Runtime
  • Mise en place d’un conteneur “pressure-vessel” avec les runtimes de Steam
  • Lancement de Proton
  • Application de correctifs spécifiques au jeu

umu-launcher reproduit ce processus sans dépendre du client Steam.

  • Il utilise la même logique de conteneur pour isoler le jeu,
  • Charge Proton (et ses patchs)
  • Gère un WINEPREFIX approprié
  • Applique éventuellement des correctifs communautaires grâce à une base de donnée.

4. Avantages

  1. Autonomie : pas besoin d’avoir Steam installé ou lancé.
  2. Unification des correctifs : UMU s’appuie sur les mêmes correctifs officiels de Proton, mais intègre aussi ceux de la communauté (Proton-GE, Lutris, HGL…).
  3. Simplicité : les lanceurs comme Heroic ou Lutris peuvent appeler UMU pour garantir un environnement standardisé, de la même manière que Steam.
  4. Base de données commune : grâce à un identifiant de jeu (Game ID), UMU peut automatiquement identifier un titre et appliquer les réglages nécessaires. Gorious Eggroll et les développeurs de Lutris, Heroic Game Launcher et Bottles l’alimentent.
  5. Meilleure compatibilité avec les jeux hors Steam (epic, gog, battle.net, Star Citizen, etc.).
  6. Software et distribution agnostiques : Si le jeu se lance sur Ubuntu avec Lutris alors il se lancera aussi sur Arch Linux avec Heroic. Ce qui facilite aussi la détection et la remontée de bug parce que de la même façon si ça bug à un endroit ça bug partout.

Pour résumer :

On utilise :

WINE : pour des applications Windows hors jeux vidéo.

Proton Experimental : Dans Steam il couvrira 99% des jeux avec un bon compromis stabilité / compatibilité.

Proton GE : Dans Steam dans des cas rares et particuliers, comme par exemple si une cinématique ne se lit pas.

Proton GE + UMU : Dans Heroic Game Launcher ou Lutris pour les jeux hors bibliothèque Steam.

Conclusion

Wine et Proton ont révolutionné la possibilité d’exécuter des applications et jeux Windows sous Linux. Wine couvre un spectre d’applications très large (bureautique, outils professionnels…), tandis que Proton s’est spécialisé dans le domaine ludique, optimisant les performances pour les jeux et s’intégrant parfaitement à Steam.

Toutefois, pour ceux qui veulent lancer des jeux issus de plateformes tierces (Epic, GOG, etc.). C’est dans ce contexte que UMU Launcher prend toute son importance. En proposant un équivalent du Steam Runtime (à travers pressure-vessel) et en tirant parti de la puissance de Proton, UMU lance des jeux Windows sans nécessiter Steam.

Désormais, qu’on veuille profiter du confort de Steam ou de Lutris et Heroic Game Launcher, l’écosystème Linux dispose de tous les outils nécessaires pour jouer à un large catalogue de jeux Windows. Et grâce à l’API Vulkan, la performance et la compatibilité ne cessent de s’améliorer, permettant aux joueurs de choisir librement leur système d’exploitation sans trop de compromis.

Sources :

1 commentaire

Laissez votre commentaire

Articles similaires