Plusieurs outils à destination des développeurs de jeux vidéo ont été libérés récemment. Ces outils permettent de porter des jeux Direct3D vers OpenGL ou encore de les débugger ou mesurer leurs performances, ce qui facilite et encourage grandement le développement de jeux vidéos de qualité pour GNU/Linux. Ces outils sont publiés à destination des développeurs de jeux libres ou non (grâce à des licences très permissives).
C'est l'occasion d’évoquer brièvement quelques ports sous GNU/Linux de moteurs de jeux notables (bien que non-libres) révélant l’intérêt grandissant porté par l’industrie du jeu vidéo pour cette plate-forme.
ToGL
ToGL est un outil libéré par Valve (l’éditeur de Steam). Cet outil sert de traducteur de Direct3D vers OpenGL (objets, shaders…), le code provient du jeu Dota 2. Valve a publié le code de ToGL sur GitHub dans le but d’aider d’autres développeurs de jeux à porter vers OpenGL leur code initialement développé pour Direct3D. Le code est sous licence MIT, une licence libre très permissive qui permet d’inclure le code dans un programme non-libre.
Rappelons que Valve porte un intérêt majeur à la plate-forme GNU/Linux puisque la console de jeu Steam utilise une variante de Debian (SteamOS) et la plate-forme non-libre Steam a été portée sous GNU/Linux depuis plus d'un an déjà. La stratégie de Valve est donc de faciliter au maximum le port de jeux vers GNU/Linux.
Si Steam n’est pas un logiciel libre, le poids d’un acteur comme Valve est non négligeable et il pousse ainsi de nombreux projets libres qui lui sont favorables. Par exemple, les développeurs de Valve collaborent étroitement avec les développeurs de pilotes graphiques (libres inclus) et les améliorations apportées profitent même à ceux qui ne sont pas clients de Valve.
VOGL et VOGLperf
Valve a d’abord publié un debugger OpenGL : VOGL. VOGL s’utilise de la même manière qu’APITrace, une autre application pour examiner un code OpenGL : il suffit de précharger une bibliothèque avec LD_PRELOAD
avant de lancer un binaire pour que cette bibliothèque intercepte les appels OpenGL dudit binaire.
Valve choisit des licences permissives pour couvrir les codes qu’ils publient afin de permettre la réutilisation de ces codes par les jeux non-libres. La volonté de Valve étant de voir le maximum de produits qu’il revend (majoritairement non-libres) portés sous GNU/Linux, une licence libre sans copyleft est ce qu’il y a de plus efficace pour cela.
Ici le libre est réduit à n’être qu’un moyen technique efficace, mais ces codes profitent aussi aux projets qui font de la liberté un idéal. Par exemple le jeu libre Xonotic est connu pour se servir de VOGL, et il ne sera pas le dernier jeu libre à profiter de cet outil très utile.
Après VOGL, Valve a publié VOGLperf. VOGLperf permet de récupérer les informations de trame (FPS, temps de la trame et valeurs min/max), seconde par seconde, lorsqu'une application utilisant OpenGL est lancée. L’outil permet ainsi de réaliser des benchmarks de jeux OpenGL sous GNU/Linux, et permet donc de mesurer finement des variations de performances dans un même jeu ou de comparer deux versions de développement, par exemple.
HLSLParser
Valve n’est pas le seul à libérer du code utile. Unknown Worlds, l’équipe qui développe Natural Selection 2, a libéré son outil HLSLParser qui sert à traduire des shaders HLSL (Microsoft High-Level Shader Language, utilisé dans Direct3D) vers des shaders GLSL (OpenGL Shader Language).
Ces quatres outils, ToGL, VOGL, VOGLPerf et HLSLParser sont publiés sous licence MIT.
Quelques ports notables
Ces libérations s’inscrivent dans un mouvement plus global qui témoigne d’un intérêt grandissant pour la plate-forme GNU/Linux. C’est l’occasion de faire un point vers les travaux de portage en cours. Après les annonces de Valve on peut citer le port du CryEngine ou d’Unreal Engine 4 (qu’UrbanTerror HD a déjà annoncé vouloir utiliser).
Si vous avez connaissance d’autres outils libérés récemment à destination des développeurs de jeu, ou si vous connaissez d’autres jeux majeurs en bon chemin vers GNU/Linux, n’hésitez pas à laisser un commentaire pertinent. ;-)
Ça sera peut-être l’occasion d’initier un second épisode à cette dépêche d’avril 2013 : « État des jeux sous Linux ».
Aller plus loin
- ToGL sur GitHub (122 clics)
- VOGL sur GitHub (68 clics)
- VOGLPerf sur GitHub (47 clics)
- HLSLParser sur GitHub (71 clics)
- Journal Linuxfr : quelques nouvelles intéressantes pour le jeu linux (par devnewton) (142 clics)
# Direct3D vs DirectX
Posté par Olivier (site web personnel) . Évalué à 6.
Petite question : il est parlé ici de convertisseur Direct3D -> OpenGL, donc pour ce qui concerne la vidéo. Mais qu'en est--il du reste ?
En plus de l'affichage, DirectX offre aussi la gestion du son, des inputs (clavier/souris/joystick/pad/…), du réseau. Est-ce qu'il existe d'autres mécanismes de conversion pour ces parties-là ?
Ou alors, les développeurs ne les utilisent pas ou utilisent d'autres toolkits, que l'on doit migrer indépendamment ?
[^] # Re: Direct3D vs DirectX
Posté par Narishma Jahar . Évalué à 3.
Presque plus aucun jeu n'utilise le reste de DirectX qui a été déprécié et remplacé par des bibliothèques externes (XAudio2, XInput, XNA Math, etc…) depuis belle lurette.
[^] # Re: Direct3D vs DirectX
Posté par xcomcmdr . Évalué à 2. Dernière modification le 04 mai 2014 à 14:38.
Xaudio2 (remplace DirectSound, peut-être DirectMusic aussi) et Xinput ça reste un bidule Microsoft pour Windows et Xbox :
http://msdn.microsoft.com/en-us/library/windows/desktop/ee415802%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ee417014%28v=vs.85%29.aspx
et XNA, c'est abandonné depuis longtemps.
Bref, la question reste entière. Quid de XACT (audio), Xinput (contrôles), Xaudio2, Direct2D, DirectWrite (textes), DirectShow/MediaFoundation (lecture audio/video) ?
(rien ne semble remplacer DirectPlay pour le réseau, d'ailleurs ?)
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
# NS2
Posté par Thom (site web personnel) . Évalué à 8.
La dernière fois, je râlais un peu contre Natural Selection 2 qui m'était impossible de lancer.
Avec la dernière d'ubuntu 14.04, un noyau classique 3.13, une carte ATI HD 6870 sous drivers libres, je peux lancer enfin lancer le jeu. Le tutoriel des deux camps est accessible. Il y a bien quelques artefacts comme sur l'arme ou le shader ne se charge pas (artefact n’apparaissant pas sur l'image). J'ai également pu me faire plusieurs parties entières sans bug (mais pas sans lag, je pense que je vais devoir revoir les graphismes un peu à la baisse) notamment sur la nouvelle map : Kodiak, bon par contre, je plante encore assez souvent sur biodome et parfois sur le server browser.
Bref, ça avance bien et ça fait plaisir. Mais bon, je suis assez nul à ce jeu pour me moment.
De même Metro 2033 LL passe maintenant à fond sur cette même config. (Ce fov horrible)
Bref, en une mise à jour (c'est surtout dû au fait, que je n'avais pas réessayé depuis quelques temps) j'ai accès à deux jeux en plus. Plus que les graphismes, c'est surtout l'ambiance qui est bonne dans ce bouquin.
Initier, peut-être pas, mais collaborer, avec plaisir pour un : « État des jeux sous Linux mi-2014».
La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick
# Torque 2D version 3.0
Posté par Thom (site web personnel) . Évalué à 5.
J'ai vu passé ça auojourd'hui sur GamingOnLinux.
La version 3.0 du moteur Torque 2D apporte le multi-plateforme avec le support d'Android, Linux et du web. Ainsi que d'autre amélioration plus technique avec un meilleurs support de la manette xbox 360 et la possibilité de créer des applications 64bits.
La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick
# Godot engine
Posté par ovski . Évalué à 4.
On peut aussi citer Godot engine qui a été libéré récemment. Le code est sur github en MIT.
Il me parait être une sérieuse alternative à Unity (2D). Je m'amuse avec actuellement, j'essaierai de faire un retour.
Par contre, son gros point faible pour le moment est la documentation.
[^] # Re: Godot engine
Posté par freem . Évalué à 4.
Bon, bah, reste plus qu'a attendre que quelqu'un en fasse quelque chose…
Désolé, pas pu m'en empêcher, surtout que ce… truc m'a méchamment traumatisé… 10 ans après je me souviens de l'ennui qui en irradie :/
[^] # Re: Godot engine
Posté par ariasuni . Évalué à 3.
Un des meilleurs livres que j'ai lu.
Écrit en Bépo selon l’orthographe de 1990
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.