./play.it 2.10 : Debian, Gentoo et jeux vidéo

Posté par (page perso) . Édité par Davy Defaud, Benoît Sibaud, BAud, Nils Ratusznik et HS-157. Modéré par Benoît Sibaud. Licence CC by-sa.
37
22
août
2018
Jeu

Il y a maintenant un peu plus de cinq mois, nous vous présentions dans une dépêche LinuxFr.org « ./play.it », un logiciel permettant d’installer facilement sur différentes distributions GNU/Linux toute une collection de jeux vidéos.

En cinq mois, il s’est passé beaucoup de choses au sein de ce projet, et c’est ce dont nous allons vous parler au sein de cette dépêche.

Sommaire

Rappel des faits

Ceux qui ont (re)lu la première dépêche au sujet de ./play.it ne vont rien apprendre de neuf ici, et sont invités à se rendre directement à la suite. Pour les autres, nous allons résumer très rapidement ce dont il est question ici.

./play.it consiste en une collection de scripts se basant tous sur une bibliothèque commune. Chacun de ces scripts est dédié à un jeu en particulier et accepte un ou plusieurs installateurs en entrée, de formats divers et variés (installateurs natifs MojoSetup, installateurs pour Windows InnoSetup, archives .tar.gz ou .zip, etc.). L’installateur donné sera traité par un processus qu’on peut résumer en trois points majeurs :

  1. extraction des données du jeu depuis le fichier d’origine ;
  2. organisation des fichiers extraits dans le respect du FHS ;
  3. construction de paquets à destination d’une des distributions gérées.

On aboutit donc à un ou des paquets prêts à être mangés par votre gestionnaire de paquets préféré.

Sont gérés, bien sûr, des jeux natifs, mais aussi des jeux originellement prévus pour d’autres systèmes d’exploitation grâce à des outils comme WINE, DOSBox ou ScummVM. Si des manipulations spécifiques sont nécessaires au fonctionnement optimal du jeu, celles‐ci seront réalisées automatiquement par le script ./play.it.

Pour résumer en quelques mots, ./play.it est donc un système permettant d’installer très facilement toute une collection de jeux commerciaux sur des distributions GNU/Linux, en les intégrant au maximum au reste du système. Un jeu installé par ./play.it devrait être presque indiscernable d’un jeu installé depuis les dépôts officiels de votre distribution.

Évolutions récentes

La première dépêche au sujet de ./play.it sur LinuxFr.org correspond grosso‐modo à la sortie de la version 2.6. Aujourd’hui, nous en sommes à la version 2.10, et pas mal de changements sont passés par là.

Pour ceux que ça intéresse, le journal des modifications complet (en anglais) se trouve sur framagit.org.

Mais comme ce n’est pas une lecture particulièrement passionnante, voici plutôt une liste de quelques évolutions majeures du projet depuis la dernière dépêche.

Des scripts plus simples à écrire

Un des objectifs de ./play.it est de permettre à n’importe qui, même sans connaissances préalables en programmation, d’écrire des scripts pour ses jeux favoris. La simplicité d’accès de ces scripts est donc primordiale, et c’est un point que nous cherchons à améliorer à chaque nouvelle version.

Quelques améliorations notables ont eu lieu dans ce sens depuis la version 2.6 :

  • il n’est plus nécessaire de lister explicitement les archives gérées par le script, si les détails de celles‐ci suivent certaines conventions de nommage la liste pourra être générée automatiquement ;
  • de la même manière, la liste des icônes associées à une application peut, elle aussi, être déduite dans certains cas ;
  • dans le cas des installateurs en plusieurs parties, la présence de toutes les parties sera testée automatiquement (il fallait précédemment faire explicitement appel à certaines fonctions pour chaque partie de l’installateur) ;
  • tout le code relatif aux icônes a été amélioré, et il n’est entre autres plus nécessaire de lister explicitement la liste des résolutions d’icônes fournies. (en contrepartie, tous les scripts gérant des icônes dépendent maintenant d’ImageMagick).

Une méthode d’installation améliorée

Il était déjà possible d’installer ./play.it dans le répertoire personnel d’un utilisateur pour pouvoir l’utiliser plus facilement. Cette installation se fait dorénavant dans des répertoires système par défaut, et les chemins d’installation sont configurables.

En plus de la bibliothèque et des scripts, une page de manuel est elle aussi installée.

Des jeux WINE qui savent rester à leur place

Les utilisateurs de WINE qui installent directement leurs jeux via WINE ou passent par des solutions comme PlayOnLinux ont l’habitude de voir leur répertoire personnel pollué par une collection hétéroclite de répertoires stockant des sauvegardes ou autres fichiers de configuration.

./play.it évite désormais cette nuisance en forçant les jeux WINE à stocker ces fichiers dans des répertoires définis ($XDG_DATA_HOME pour les sauvegardes, $XDG_CONFIG_HOME pour les configurations).

Une foultitude de corrections de bogues

Et bien sûr tout un tas de correction de bogues, en bonne partie grâce aux rapports de nos utilisateurs. Nous sommes généralement réactifs sur ces questions, donc n’hésitez pas à nous signaler sur notre système de suivi de bogues tout comportement qui vous paraît erroné.

La plupart des rapports de bogues sont faits en anglais, mais si vous n’êtes pas à l’aise avec cette langue, vous pouvez aussi nous en envoyer en français : l’un de nous se chargera de le traduire pour nos contributeurs non francophones.

Inclusion aux dépôts Debian

Phil Morrell (emorrp1) avait déjà apporté quelques contributions à ./play.it dans les versions précédentes. Ce que nous ne savions pas, c’est qu’il s’agissait déjà à ce moment d’un contributeur Debian et, depuis fin juillet, il a obtenu le statut de mainteneur Debian. C’est par exemple lui qui maintient au sein de Debian les paquets pour Scorched 3D et CorsixTH.

Il s’est donc proposé de maintenir un paquet Debian pour ./play.it au sein des dépôts officiels (section contrib, vu qu’on se concentre sur des jeux non libres) et, grâce à lui, ./play.it est depuis sa version 2.9.0 empaqueté au sein de Debian et de certaines dérivées comme Ubuntu. C’est entre autres grâce à son travail que le processus d’installation de ./play.it a été simplifié et amélioré, et qu’une ébauche de documentation est en travaux.

Vous pouvez voir où en est la propagation de ./play.it au sein des dépôts de nos distributions sur la page suivante : play.it package versions - Repology.

Gestion (expérimentale) de Gentoo

Un autre contributeur majeur au projet sur ces derniers mois est BetaRays, qui travaille activement depuis début juin à ajouter au sein de ./play.it la possibilité de l’utiliser pour installer des jeux sur Gentoo.

Actuellement la gestion de Gentoo est encore expérimentale, mais déjà fonctionnelle. En revanche, nous manquons cruellement de testeurs pour pouvoir la peaufiner avant de l’ajouter de manière « officielle » aux distributions gérées.

Si vous utilisez Gentoo et que vous avez envie de donner un coup de main sur les tests, ou sur le développement, vous pouvez nous rejoindre sur IRC (serveur Freenode, salon #play.it), nous contacter par courriel (une adresse de contact se trouve dans chaque script) ou simplement vous signaler en commentaire de cette dépêche. Quelqu’un de notre équipe vous guidera alors pour installer une version de ./play.it incluant cette gestion de Gentoo pour que vous puissiez nous aider à traquer les bogues et les points méritant d’être améliorés.

Nouveaux jeux gérés

Un des points sur lesquels nous ne nous arrêtons jamais de bûcher est l’ajout de nouveaux jeux à la collection de ceux gérés par ./play.it. C’est à la fois ce qui fait la visibilité du projet, et aussi ce qui amuse le plus une bonne partie de nos contributeurs ; pas étonnant donc que ce soit pour nous toujours une tâche de premier plan !

Voici donc la liste (presque) complète de ceux qui ont rejoint le catalogue depuis la dernière dépêche :

Si malgré tous ces ajouts votre jeu préféré manque encore à l’appel, nous avons depuis peu un dépôt sur Framagit spécialement dédié aux demandes de nouveaux jeux : https://framagit.org/vv221/play.it-games.

Appel à contributions

Comme vous pouvez le voir, ./play.it reste un projet dynamique au sein duquel de nouvelles fonctionnalités sont intégrées tous les mois, et la bibliothèque de jeux gérés croît toutes les semaines. Tout ça n’est possible que grâce au travail de tous nos contributeurs, qui tous participent sur leur temps libre par passion des jeux vidéos et du logiciel libre.

Vous pouvez vous aussi rejoindre notre équipe à tout moment, que ce soit pour une longue durée ou pour des contributions ponctuelles. Si votre distribution n’est pas encore gérée, si votre jeu favori ne fait pas encore partie de la bibliothèque, la meilleure façon de corriger ce problème est de venir nous voir et de développer vous‐même ce qui manque à ./play.it. Nous sommes toujours heureux de former de nouveaux contributeurs et de discuter autour de nouvelles propositions.

Nous attendons avec impatience vos suggestions, requêtes, propositions et rapports de bogues !

Aller plus loin

  • # Questions

    Posté par . Évalué à 6.

    Deux Questions :
    - Est-il possible d'installer les jeux depuis un cd-rom ? Si non, pourquoi ?
    - Pourquoi vous occupez-vous de jeux déjà nativement porté sous GNU/Linux par leurs developpeurs (genre SOMA) ?

    • [^] # Re: Questions

      Posté par (page perso) . Évalué à 10.

      Des questions pertinentes, merci de les avoir posées ;)

      Est-il possible d'installer les jeux depuis un cd-rom ? Si non, pourquoi ?

      Non, pas encore.

      On en meurt tous d’envie au sein de l’équipe, mais les sources sur CD/DVD sont beaucoup plus difficiles à gérer que les installeurs de jeux dématérialisés, en particulier à cause de la quantité impressionnante de variations qui peut exister entres deux CD pour un même jeu (ré-éditions multiples et autres trucs du style).

      Mais le boulot à ce sujet a débuté, comme en témoigne cette merge request de emorrp1 : WIP: 2.9 - AoE2 - New game (framagit.org)

      Toute aide pour qu’on avance plus vite sur ce point est bien sûr la bienvenue ;)

      Pourquoi vous occupez-vous de jeux déjà nativement porté sous GNU/Linux par leurs developpeurs (genre SOMA) ?

      La plupart des contributeurs à ./play.it sont des maniaques de l’organisation, qui ne supportent pas qu’un logiciel colle ses fichiers dans le premier répertoire qui lui tombe sous la main. ./play.it permet d’éviter ça en standardisant les chemins d’installation des jeux (en se basant sur des standards existants et majoritairement utilisés par nos distributions).

      Un autre avantage est la gestion automatique des dépendances, qu’on confie au gestionnaire de paquets de la distributions.

      Certains jeux actuellement vendus dépendent de bibliothèques obsolètes mais ne les fournissent pas forcément pour autant, c’est un autre souci que ./play.it gère.

      Et pour finir, certains jeux ne fonctionnent juste pas sur certaines configurations. Nous appliquons donc quelques bidouilles via les scripts ./play.it pour s’assurer qu’ils fonctionneront sur un maximum de configurations différentes, bidouilles qui vont de la simple déclaration de variable d’environnement jusqu’à la compilation de shim évitant certains crash récurrents.

      • [^] # Re: Questions

        Posté par . Évalué à 2.

        Merci de toutes ces réponses !

      • [^] # Re: Questions

        Posté par (page perso) . Évalué à 10.

        La plupart des contributeurs à ./play.it sont des maniaques de l’organisation, qui ne supportent pas qu’un logiciel colle ses fichiers dans le premier répertoire qui lui tombe sous la main. ./play.it permet d’éviter ça en standardisant les chemins d’installation des jeux (en se basant sur des standards existants et majoritairement utilisés par nos distributions).

        Cette aspect "maniaque" des contributeurs, je le trouve fort appréciable ; il m'arrive d'avoir des jeux qui ne tournent pas ou mal avec ./play.it mais au moins je peux les gérer facilement, et les désinstaller en entier. Les mêmes jeux en passant directement par wine ou les scripts ne tournent pas mieux (mon souci c'est mon ordi…) mais ensuite c'est la misère pour virer les crasses mises un peu partout.

  • # Correction

    Posté par (page perso) . Évalué à 2.

    Le lien vers une ancre au début de la section "Rappel des faits" pointe vers "#Évolutions-récentes" au lieu de "#toc-Évolutions-récentes".

    Si un modérateur pouvait corriger ça ce serait sympa ;)

  • # Viser toujours plus loin

    Posté par . Évalué à 4.

    Petit défi : gérer les mods des jeux.

    Je galère comme pas possible à gérer des mods depuis NexuxMod (par exemple) pour mes jeux, comme Morrowind, Halo, … je pense qu'une gestion propre (et générique) des mods ça pourrait être excellent. Je ne connais aucun programme qui fasse ça bien, même pour un jeu en particulier. Bien sûr, il faudrait gérer quelques trucs, comme les dépendances dans les mods… mais si tout était facile, où serait le fun ? ;)

    • [^] # Re: Viser toujours plus loin

      Posté par (page perso) . Évalué à 3.

      Quelques scripts ./play.it 1.X géraient certains mods, je pense en particulier à ceux pour Baldur’s Gate et Star Wars: Knights of the Old Republic. Mais je n’étais satisfait par le système que j’avais utilisé à ce moment-là et ne l’ai donc pas gardé pour ./play.it 2.

      Souvent, pour une gestion manuelle des mods il n’y a rien à modifier côté ./play.it. Pour Morrowind par exemple, il suffit de poser les mods dans ~/.local/share/games/morrowind/data files/ et de passer par le lanceur pour les activer.

      Mais en effet, une solution plus générique, permettant peut-être d’empaqueter les mods et de pouvoir les installer/désinstaller via le gestionnaire de paquets de la distribution, pourrait être utile.

      D’ailleurs, je viens d’ouvrir un ticket à ce sujet : Mod support (framagit.org)

  • # Simplifier encore

    Posté par (page perso) . Évalué à 2.

    J'ai regardé un des liens (Gobliiins) et ça commence par 'installer les dépendances'. Pourquoi ne pas inclure ça dans les scripts ?

    • [^] # Re: Simplifier encore

      Posté par . Évalué à 4.

      Un des objectifs de ./play.it est de ne pas necessiter l'accès root, donc les scripts n'installent pas eux-mêmes les dépendances (mais ils préviennent quand une dépendance n'est pas installée).

    • [^] # Re: Simplifier encore

      Posté par (page perso) . Évalué à 4.

      Les dépendances listées sont celles nécessaires au fonctionnement du script, celles du jeu étant installées par le gestionnaire de paquets.

      La raison pour laquelle elles ne sont pas installées automatiquement par les scripts a été donnée par BetaRays, et je la confirme ;)

      Par contre si tu installes ./play.it via ton gestionnaire de paquets, les dépendances communes à la majorité des scripts seront elles aussi installées.

  • # Génial

    Posté par (page perso) . Évalué à 6.

    Merci beaucoup aux initiateurs de ce projet.

    Une question : quelles sont les divergences qui empêchent ./playit et lutris de travailler ensemble (si c'est bien le cas) ? Ne serait-il pas plus efficace de travailler de concert ? Outre l'importance de la diversité des solutions bien sûr…

    • [^] # Re: Génial

      Posté par (page perso) . Évalué à 4.

      Il y a eu des contacts entre notre équipe et celle de Lutris pour proposer de partager des compétences, mais ça fait longtemps que je n’ai pas eu l’occasion de retourner discuter avec eux…

      Par contre les deux projets n’ont à peu près aucune chance de fusionner, ne proposant pas du tout la même chose même si l’objectif final (jouer à des jeux vidéos commerciaux sous Linux) est similaire.

      Lutris est une solution "tout en un" qui gère, sauf erreur de ma part, tout du téléchargement du jeu jusqu’à son lancement, et fournit un client graphique pour gérer la bibliothèque de jeux.

      ./play.it se rapproche plus du principe KISS en se concentrant uniquement sur l’installation des jeux. Pour obtenir une solution du type Lutris il faudrait donc combiner ./play.it avec d’autres logiciels remplissant les autres fonctions de Lutris.

      Le choix de se concentrer sur une seule opération nous a permis de nous assurer qu’on la remplit au mieux, et permet à ./play.it d’être intégré facilement à une chaîne logicielle comme proposée par exemple par le projet en cours de développement build.it. Ou comme c’est le cas pour moi de lancer des installations de paquets via une session SSH depuis le boulot ;P

      • [^] # Re: Génial

        Posté par . Évalué à 3.

        Pour obtenir une solution du type Lutris il faudrait donc combiner ./play.it avec d’autres logiciels remplissant les autres fonctions de Lutris.

        J'imagine donc que ce serait aux devs de Lutris de venir vous voir en vue d'utiliser ./play.it dans Lutris. S'ils ne l'ont pas fait c'est qu'ils ont trouvé leur propre manière de gérer cette partie et que les autres solutions d'installation ne les intéressent pas.

    • [^] # Re: Génial

      Posté par (page perso) . Évalué à 2.

      PS : Je viens de me rappeler qu’une question similaire avait été posée en commentaire de la dépêche précédente : Différences avec Lutris ?

      Je promets que je ne l’ai pas relue avant de rédiger cette réponse-ci, malgré ce que pourraient laisser penser certaines phrases reprises quasiment à l’identique ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.