Nasra's games

A short blog about games and Linux

De gros changements s'annoncent dans l'avenir avec Wine. Le support de Vulkan directement dans l'API permettra une meilleure compatibilité avec un nombre important d'applications, dont des jeux.

Vulkan ?

Vulkan c'est une API graphique, bas niveau, qui remplace OpenGL. Beaucoup d'applications utilisent OpenGL, Blender pour ne citer que lui, mais aussi encore beaucoup d'applications professionnelles qui utilisent OpenCL pour leur rendus et l'accélération graphique qui en découle. Et cela que ce soit sous Linux ou sous Windows où les applications professionnelles préfèrent travailler avec OpenGL (la Nvidia Quadro par exemple a des pilotes spécifiques).

Vulkan

Le projet DXVK est un projet qui permet de traduire les appels DirectX en Vulkan sans passer par OpenGL. Utilisé essentiellement dans des jeux, avec Steam et le projet Proton, il permet la prise en charge de nombreux jeux avec des performances remarquables.

Concurrence avec DXVK ?

C'est ici qu'on peut se poser la question. DXVK est un projet jeune qui a beaucoup fait parlé de lui et est intégré à la team Linux de Steam. Mais il est très lié à Wine sur lequel il se base. De ce fait, les liens entre les deux sont rapides : DXVK pour la partie graphique et Wine pour le reste...

Oui mais non. D'une part, comme je l'ai indiqué plus haut, Wine ne s'adresse pas seulement aux gamers mais aussi à toute une partie de linuxiens qui souhaitent une couche de comptabilité pour leurs applications professionnelles. Wine est essentiellement développé et propulsé par Codeweavers dont c'est le business plan. D'autre part, la montée en puissance d'une API comme Vulkan va très certainement remplacer OpenGL à terme va exiger que Wine le supporte aussi.

DXVK

DXVK s'adresse principalement aux gamers, Wine profite des développements de DXVK tout comme Proton profite des développements de DXVK. Pour le moment en terme des performances dans les jeux, DXVK est à préférer, notamment le fait qu'il soit nativement supporté sur Steam. Mais pour d'autres logiciels, comme Lutris, intégrer Proton est un peu plus compliqué (même s'il intègre déjà DXVK) et demande une dépendance à Valve, pas cool pour des projets libres. L'avancement dans Wine de Vulkan permettra un meilleur support des applications et des jeux.

Le support de Vulkan dans Wine est attendu pour Wine 6.0.


Alan Wake

Autant vous le dire de suite, je suis partagé sur ce jeu.

Une technique efficace

Le jeu est sans conteste réussi sur pas mal de plans. La technique pour un jeu de 2010 est très bien maîtrisée, les environnements sont très bien représentés, la direction artistique est très efficace avec ce brouillard, ces sous-bois... L'ambiance sonore aussi, qui permet de s'immerger dans l'action, la réflexion et le scénario. Les phases “cinématiques” sont intéressantes... pour l'avancée du scénario. Et c'est bien cela qui est important dans ce jeu, son scénario, son ambiance.

Alan Wake arrive

Mais...

Tout cela est gâché à mon sens par une répétitivité des actions à mourir d'ennui et une maniabilité assez... particulière. On ne suit pas le personnage mais une sorte de vue de ¾ TPS (Third Person Shooter) plutôt maladroite qui nous cache une partie de l'action. On ne voit jamais devant le personnage mais “en biais”. Se retourner est une plaie, le personnage se meut comme un camion avec une caméra qui ne suit pas le perso. Sur la capture ci-dessous, vous ne voyez pas venir le second gus sur votre gauche...

Oups un spoil !

Quant à “éviter les coups”, une feature qu'on nous présente au début du jeu comme primordiale, c'est un coup de chance à chaque fois avec des ralentissements insupportables à la Burnout (mais sans le côté spectaculaire). Oui, mec, tu as juste évité une énième fois encore un fantôme avec une hache... on aura vu plus original. Le premier ça va, quand on en est à en réussir 3 d'affilé avec 10 ennemis qui vous tournent autour, ce n'est pas juste énervant, c'est injouable. Le jeu oscille constamment entre des phases d'actions plus faciles où le héro semble avoir tous les éléments pour s'en sortir et des phases au ralenti qui donnent un handicap artificiel au joueur.

Bref, ce jeu est répétitif, prévisible et ses choix de gameplay sont frustrants.

Info

J'ai essayé de jouer à la manette, oubliez tout de suite, la caméra est encore pire, préférez le combo clavier/souris (un comble pour un jeu sorti d'abord sur console). Tout tourne super bien sur Linux (Pop_OS) et Proton sur la version Steam. Il y a juste une commande à ajouter au démarrage du jeu pour que les cinématiques ne soient pas muettes. Ah oui, le jeu n'est pas cher si vous voulez tenter l'aventure et juger par vous-même.


Pourquoi cela ne va rien changer. Explications de texte.

Microsoft a annoncé récemment avoir développé une version de DirectX12 pour Linux dans son environnement de virtualisation WSL. Cela permet notamment à Microsoft de se passer de serveur X pour faire tourner des applications graphiques pensées pour Linux, avec des exemples de Nautilus tournant sur WSL.

Implémentation de DirectX12

À mon avis cela ne va rien changer ou à la marge.

Pour que des applications DirectX 12 tournent sous Linux (en natif) il faut bien plus que seulement la pile graphique. Là, c'est une implémentation dans WSL (2.0) d'une couche graphique qui vous permettra la même chose que si vous faisiez du PCI Passthrough avec Xen ou autres : les performances graphiques de l'hôte à portée de main dans une machine virtualisée (avec le VGA-Passthrough cela se fait grâce à deux cartes graphiques ou chipset graphiques). C'est pour concurrencer toutes les solutions de virtualisation concurrentes (VirtualBox, Xen, KVM, QEMU, Bochs...) et c'est directement en lien avec la stratégie de Microsoft et (feu) VMWare.

Pour de la rétro-ingéniérie et apprendre un peu plus du fonctionnement de DirectX 12, oui, ça peut aider des projets comme Wine ou DXVK, notamment pour la résolution de bugs graphiques, et encore voir si cette version n'est pas spécifique à WSL (avec des éléments qui ne permettraient pas la compilation directement sur un Linux sans passer par WSL).

Pour le reste (réseau, inputs, audio...), ça ne va pas révolutionner les choses.