Plop les gens.
Bon, l'installation automatique, c'est cool.
Mais ce qui suit, ce n'est pas vraiment dédié aux joueurs à qui la ligne de commande fait peur, ou qui s'évanouissent à la vue d'un compilateur. Ou d'un pavé de texte.
Donc, c'est cool. Ce qui l'est moins, c'est que si l'on est un gros geek collectionneur, ça plombe le disque car DOSBox est installé à chaque fois : 2000 jeux à 5 Mo la copie de DOSBox, ça pèse 10 Go au total.
Alors OK, le prix du giga de disque est ridicule, mais à force, c'est pénible tout de même... Car le jour où on veut upgrader DOSBox vers la nouvelle version "dlamorkitu", c'est même plus du masochisme, c'est "50 nuances d'abrutissement total".
De plus, ce qui est encore moins cool, et beaucoup d'entre vous ne peuvent même pas s'en rendre compte, c'est que créer les setups "à la main", même en copiant/collant comme un fou, c'est là encore un boulot parfaitement ingrat et absolument pas amusant à faire.
Or, de mon côté, j'ai la "chance" (hum....) de devoir me taper des créations de script d'installation "pros", du genre à faire blêmir tout débutant sous InnoSetup. Mais du coup, je sais ce qu'il est possible de faire, quand je n'ai pas déjà des librairies toutes prêtes sous le coude !
J'ai également pas mal d'expérience avec AutoIt, qui permet de finir l'automatisation lorsqu'elle s'avère impossible à faire en ligne de commande.
J'ai commencé à packager des jeux pour des potes, depuis mon propre disque virtuel DOS, et j'ai commencé à réaliser le travail (et les problèmes...) que ça engendre. Avec "seulement" 16 jeux, on dépasse déjà les capacité d'InnoSetup à faire un setup unique, je vais donc réfléchir à un mode totalement incrémentiel type dépôt pour gérer ça, car je gère en même temps que l'installation de DOSBox et du jeu l'intégration de ce dernier au front-end que j'utilise (DOS Panel, pas top, mais en attendant, ça fera le job).
Du coup, je propose les points suivants :
Le "truc" ultime, ce serait donc d'avoir tous les jeux installés sur une machine, de pouvoir les tester correctement, et une fois ceci fait, on lance un batch et le packaging se fait tout seul sans intervention. J'ai commencé à mettre au point un système pour éviter de repackager un jeu qui n'a pas bougé, histoire d'éviter de faire chauffer le CPU et le disque pour rien.
Perso, je suis parti sur un setup générique normal, et un sous-dossier contenant des sous-setups spéciaux, un par jeu : chaque sous-setup est prévu pour n'être lancé QUE depuis le setup principal (il n'est aucunement autonome), en mode automatique - seule la barre de progression s'affiche.
Ainsi, je pourrais distribuer à mes potes les jeux qu'ils veulent sans les polluer avec ceux qui ne les intéressent pas.
Pour ici, le même système peut être appliqué bien sûr, mais devoir télécharger deux trucs pour chaque jeu risque de rebuter les débutants. Un mode du setup permettra donc de créer un setup 100% autonome à partir des setups existants (en fait, un setup-cadre "muet" qui incorpore les deux sous-éléments en une seule archive pour éviter un double packaging).
En gros, le principe d'intégration d'un jeu est le suivant (chaque extension "0:3" utilise le même nom de fichier "8:0", chez moi c'est "~LAK" par exemple) :
Heu, et si je propose ça, bien sûr, c'est que je peux aider à le faire, hein, c'est pas juste pour dire "ouais, les mecs, faites ça vite et bien et surtout, qu'on soit pas emmerdés par vos conneries techniques". Non. Je file un coup de main sur les points qui vous posent souci, ou si vous attendez un peu, je vous file le système que je mets au point et vous l'adaptez à votre goût.
Bon, tout ceci est un peu "en vrac", mais il se fait tard, j'ai faim et c'est juste pour donner l'idée générale de toute façon. Quel que soit le résultat de cette proposition, il va probablement y avoir quelques pages de topic avant d'arriver à un truc valable pour tous !
Bon, l'installation automatique, c'est cool.
Mais ce qui suit, ce n'est pas vraiment dédié aux joueurs à qui la ligne de commande fait peur, ou qui s'évanouissent à la vue d'un compilateur. Ou d'un pavé de texte.
Donc, c'est cool. Ce qui l'est moins, c'est que si l'on est un gros geek collectionneur, ça plombe le disque car DOSBox est installé à chaque fois : 2000 jeux à 5 Mo la copie de DOSBox, ça pèse 10 Go au total.
Alors OK, le prix du giga de disque est ridicule, mais à force, c'est pénible tout de même... Car le jour où on veut upgrader DOSBox vers la nouvelle version "dlamorkitu", c'est même plus du masochisme, c'est "50 nuances d'abrutissement total".
De plus, ce qui est encore moins cool, et beaucoup d'entre vous ne peuvent même pas s'en rendre compte, c'est que créer les setups "à la main", même en copiant/collant comme un fou, c'est là encore un boulot parfaitement ingrat et absolument pas amusant à faire.
Or, de mon côté, j'ai la "chance" (hum....) de devoir me taper des créations de script d'installation "pros", du genre à faire blêmir tout débutant sous InnoSetup. Mais du coup, je sais ce qu'il est possible de faire, quand je n'ai pas déjà des librairies toutes prêtes sous le coude !
J'ai également pas mal d'expérience avec AutoIt, qui permet de finir l'automatisation lorsqu'elle s'avère impossible à faire en ligne de commande.
J'ai commencé à packager des jeux pour des potes, depuis mon propre disque virtuel DOS, et j'ai commencé à réaliser le travail (et les problèmes...) que ça engendre. Avec "seulement" 16 jeux, on dépasse déjà les capacité d'InnoSetup à faire un setup unique, je vais donc réfléchir à un mode totalement incrémentiel type dépôt pour gérer ça, car je gère en même temps que l'installation de DOSBox et du jeu l'intégration de ce dernier au front-end que j'utilise (DOS Panel, pas top, mais en attendant, ça fera le job).
Du coup, je propose les points suivants :
- Lors de l'installation automatique, on peut installer le jeu en mode "autonome" (DOSBox intégré, mode actuel), ou en mode "incrémental" (un seul DOSBox partagé, les jeux à côté). Ceci est l'amélioration principale des setups existants. Pas de conversion "à la volée" d'un mode à l'autre, faudra désinstaller et réinstaller si on veut changer.
- Perso, j'ai commencé à méchamment customiser mon disque virtuel pour simplifier non pas l'installation des jeux, mais leur utilisation : un seul batch de lancement général (gros machin de plus de 100 lignes...), on tape "~run <nom du répertoire>" et ça se lance tout seul, ça ferme DOSBox au besoin. Pas de commande "CD" à faire, pas besoin de faire un "DIR" pour se rappeler le nom de l'exécutable, montage des ISO automatiquement sans devoir jongler avec le front-end ou la configuration DOSBox, recherche de l'exécutable automatique avec ordre de priorité, possibilité de monter plusieurs CD, gros splash d'affichage rappelant les touches pour swapper les CD, etc.
Du coup, l'intégration dans un front-end devient extrêmement simple : le nom du répertoire est nécessaire et suffisant pour créer l'entrée complète. Des fichiers de noms fixés (".INI", ".ICO", ".PDF", ".BAT", etc.) servent de pilote d'intégration pour chaque jeu. La configuration DOSBox est unique pour l'instant pour tous les jeux, à l'exception d'un fichier de map clavier (faudrait vraiment que je travaille sur un .MAP complet pour clavier AZERTY...) - De même, à la création du setup, je balance le préprocesseur ISPP sur le coup pour extraire, depuis les ".INI", toutes les informations adéquates pour générer automatiquement le script ISS et m'éviter de me taper douze mille lignes manuelles dans l'ISS, avec les inévitables erreurs que ça engendre.
J'aurais pu faire ça avec un batch, mais en ISPP, c'est classe.
Le script ISS package le jeu, filtre les éléments indésirables (les sauvegardes de jeu notamment, et les fichiers de contrôle propres au système de packaging), et génère automatiquement les entrées "[Components]" et "[Files]" adéquates.
A l'exécution du setup, je reconstruis le fichier de configuration du front-end à la volée en fonction des jeux installés (ça peut se faire sous forme de DLL embarquée dans le setup pour gérer plusieurs front-ends), et je patche les fichiers nécessaires (ex : Warcraft II, il faut remettre le flag "intro" à "1" dans "WAR2.INI" pour que l'intro soit visible au premier démarrage).
Le tout est bien entendu compilable depuis la ligne de commande.
Le "truc" ultime, ce serait donc d'avoir tous les jeux installés sur une machine, de pouvoir les tester correctement, et une fois ceci fait, on lance un batch et le packaging se fait tout seul sans intervention. J'ai commencé à mettre au point un système pour éviter de repackager un jeu qui n'a pas bougé, histoire d'éviter de faire chauffer le CPU et le disque pour rien.
Perso, je suis parti sur un setup générique normal, et un sous-dossier contenant des sous-setups spéciaux, un par jeu : chaque sous-setup est prévu pour n'être lancé QUE depuis le setup principal (il n'est aucunement autonome), en mode automatique - seule la barre de progression s'affiche.
Ainsi, je pourrais distribuer à mes potes les jeux qu'ils veulent sans les polluer avec ceux qui ne les intéressent pas.
Pour ici, le même système peut être appliqué bien sûr, mais devoir télécharger deux trucs pour chaque jeu risque de rebuter les débutants. Un mode du setup permettra donc de créer un setup 100% autonome à partir des setups existants (en fait, un setup-cadre "muet" qui incorpore les deux sous-éléments en une seule archive pour éviter un double packaging).
En gros, le principe d'intégration d'un jeu est le suivant (chaque extension "0:3" utilise le même nom de fichier "8:0", chez moi c'est "~LAK" par exemple) :
- On installe le jeu sur la machine virtuelle DOSBox normalement, dans son répertoire "8:0" (pas de gestion du "8:3" car l'interpréteur de commande de DOSBox est trop limité).
- On configure le jeu proprement, on repasse sous Windows.
- On crée un ".INI" permettant de saisir les informations requises pour packager le jeu.
- On met un ".ICO" pour faire joli.
- On renomme l'ISO du jeu pour qu'elle aie le même nom "8:0" que le répertoire du jeu, je réfléchis à un système pour pouvoir les numéroter mais j'avoue que les extensions du batch sous Windows me manquent...
- On prends un snapshot du répertoire "tout frais installé" (PAR2 des fichiers, MD5, copie binaire, OSEF).
- On vérifie que le jeu se lance correctement depuis le batch générique de lancement.
- On avance dans le jeu suffisamment pour pouvoir sauver une partie (idéalement, plus d'une).
- On rajoute dans le ".INI" les correctifs de déploiement : fichiers à ignorer, fichiers à patcher, etc.
- On ajoute les manuels du jeu (j'essaie de voir pour automatiser la connexion du PDF principal).
- Optionnel : ajout dans un front-end, le setup ramassera les fichiers de configuration des front-ends que l'on a décidé de gérer afin de s'en servir de modèle pour patcher celui de la machine où on installera le(s) jeu(x).
- Optionnel : identification du fichier de configuration du jeu afin de permettre un RAZ des paramètres du jeu, pour ceux qui ont une copie foirée.
Heu, et si je propose ça, bien sûr, c'est que je peux aider à le faire, hein, c'est pas juste pour dire "ouais, les mecs, faites ça vite et bien et surtout, qu'on soit pas emmerdés par vos conneries techniques". Non. Je file un coup de main sur les points qui vous posent souci, ou si vous attendez un peu, je vous file le système que je mets au point et vous l'adaptez à votre goût.
Bon, tout ceci est un peu "en vrac", mais il se fait tard, j'ai faim et c'est juste pour donner l'idée générale de toute façon. Quel que soit le résultat de cette proposition, il va probablement y avoir quelques pages de topic avant d'arriver à un truc valable pour tous !

Commentaire