1 points par GN⁺ 3 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Space Cadet Pinball a été recréé sous forme de code source par rétro-ingénierie et peut fonctionner sur plusieurs plateformes
  • Sur Linux, l’installation via Flatpak est la plus simple, et inclut aussi les ressources originales du jeu Windows
  • En remplaçant par les données de Full Tilt! Pinball, il est possible d’utiliser une résolution de 1024x768
  • Les données Full Tilt modifient aussi les règles, si bien que certaines lumières ne basculent plus et restent allumées
  • Pour les logiciels propriétaires abandonnés, un escrow permettant un passage vers une licence FOSS serait souhaitable

Exécuter Space Cadet Pinball sur Linux

  • Space Cadet Pinball, autrefois inclus avec Windows XP, a vu son code source reconstitué à l’aide de décompilateurs et d’outils de rétro-ingénierie, et il existe un projet GitHub qui l’a organisé pour le faire tourner sur plusieurs plateformes
  • Sur Linux, la façon la plus simple de l’exécuter est d’utiliser Flatpak, qui embarque aussi les ressources originales du jeu provenant de la version Windows
  • En interface graphique, on peut l’installer avec un outil comme KDE Discover, et en ligne de commande avec la commande suivante
    flatpak install com.github.k4zmu2a.spacecadetpinball
    
  • Il existe aussi une version dans le navigateur, mais l’installation et l’exécution en local ont été jugées préférables

Utiliser une résolution plus élevée avec les données Full Tilt

  • Les graphismes par défaut correspondent à du 480p, ce qui peut paraître assez brut
  • Les données de jeu d’une autre version, Full Tilt! Pinball, prennent en charge un affichage en 1024x768
  • Les données de jeu Full Tilt peuvent être récupérées dans le fichier zip sur archive.org
  • Pour que la version Flatpak utilise ces fichiers de données, un peu de travail manuel est nécessaire
  • Procédure d’application des données

    • Il faut d’abord lancer le jeu au moins une fois afin de créer le répertoire de données
    • Décompresser ensuite le fichier zip téléchargé directement dans le répertoire de données du Flatpak
      cd ~/.var/app/com.github.k4zmu2a.spacecadetpinball/data/SpaceCadetPinball
      unzip ~/Downloads/CADET.ZIP
      
    • Il faut supprimer le répertoire de données existant inclus avec l’application ou, pour procéder plus prudemment, le renommer
      sudo rm -r $(flatpak info --show-location com.github.k4zmu2a.spacecadetpinball)/files/extra/Pinball
      
    • Cette suppression est nécessaire parce que le jeu cherche les données à plusieurs emplacements, mais s’il trouve les fichiers dans un répertoire, il ne continue pas la recherche ailleurs
    • Dans le cas d’une installation par utilisateur, sudo n’est peut-être pas nécessaire, mais si l’installation se trouve dans /var/lib/flatpak, les droits root sont requis
    • Si le jeu est mis à jour, il peut être nécessaire de répéter l’étape 3
    • Cela dit, le paquet Flatpak n’a pas été mis à jour depuis plus de deux ans, donc une mise à jour semble peu probable ou peu fréquente

Différences entre les données d’origine et les données Full Tilt

  • Si l’on conserve à la fois les fichiers d’origine et ceux de Full Tilt, il est possible dans le jeu de basculer entre les données 3DPB d’origine et celles de Full Tilt
  • Les fichiers de données semblent aussi avoir un effet sur les règles du jeu
  • Dans la version 3DPB d’origine, les lumières de la voie de rentrée et de la voie de lancement basculent à chaque passage de la bille
  • Dans la version Full Tilt, ces lumières ne basculent plus et restent allumées, ce qui facilite l’achèvement d’un ensemble de lumières et l’amélioration du groupe de bumpers associé
  • À une époque comparable, certains Mac étaient livrés avec un jeu appelé Marble Blast, auquel certaines personnes étaient tout aussi attachées
  • Contrairement à ce flipper, la série Marble Blast a continué à évoluer et il existe aujourd’hui des versions plus récentes toujours jouables

Portabilité et préservation

  • Cet ancien jeu a été suffisamment aimé, et surtout repris par quelqu’un qui avait les compétences et la motivation, pour devenir exécutable sur plusieurs plateformes
  • Dès lors qu’un code source existe sous une forme ou une autre, il devient beaucoup plus facile de porter un jeu sur différentes plateformes
  • Grâce à ce projet, le jeu semble pouvoir fonctionner non seulement sur Mac, Windows et Linux, mais aussi sur Android et Nintendo Switch
  • S’il était possible de rémunérer les développeurs d’origine, ce serait souhaitable, mais la légalité du téléchargement des données de jeu de la version Full Tilt suscite des inquiétudes
  • En effet, ces données contiennent des éléments graphiques et des données protégés par le droit d’auteur, issus d’un produit commercial
  • Même si l’on préfère des résultats publiés sous licence FOSS, la réalité ne fonctionne pas toujours ainsi, et il est important que les créateurs de bonnes choses soient rémunérés afin que d’autres réalisations de qualité puissent voir le jour

Logiciels propriétaires et escrow du code source

  • La préservation des logiciels est aussi un objectif important
  • Idéalement, ce type de logiciel propriétaire devrait pouvoir être placé sous une forme d’escrow du code source
  • Tant que le détenteur initial des droits continue à vendre le produit, ses droits doivent être respectés
  • Mais s’il choisit d’en arrêter la commercialisation, il serait souhaitable qu’un mécanisme permette de faire passer le code sous licence FOSS, afin que les utilisateurs puissent améliorer et maintenir les logiciels qu’ils utilisent
  • Une telle approche pourrait aider à trouver un équilibre entre les droits des créateurs, les droits des utilisateurs et l’objectif de préservation

1 commentaires

 
GN⁺ 3 시간 전
Commentaires Hacker News
  • Je suis l’un des créateurs originaux de Space Cadet Pinball, et c’est vraiment génial de voir qu’il y a encore des gens qui aiment suffisamment ce vieux jeu de flipper pour le faire vivre
    Je vais aussi transmettre ce billet à Mike Sandige (ingénieur principal) et Kevin Gliner (designer et chef de produit), cofondateurs de Cinematronics et amis, et je pense qu’eux aussi seront aussi contents que moi de le voir

    • C’était vraiment spécial d’avoir un jeu amusant dans l’installation par défaut de Windows, alors merci de l’avoir créé et vendu à Microsoft
      Grâce à ça, on a pu faire une ligue de flipper pendant les cours de dactylo au collège. Je serais curieux de savoir sur quelles parties du jeu vous avez travaillé, et s’il y a eu des anecdotes amusantes ou des bugs particulièrement difficiles à trouver
    • La première fois que j’ai utilisé NT 4, je devais installer plusieurs machines en les surveillant en continu, et Space Cadet Pinball m’a aidé à tenir pendant ces longues nuits ennuyeuses
      J’y ai repensé toute ma carrière comme à un coup de chance, et merci pour ce jeu qui m’a empêché de devenir fou
    • Le fait d’avoir inclus Space Cadet Pinball dans l’installation par défaut de Windows a été l’un des arguments de vente les plus puissants de toute l’histoire de Windows, donc merci infiniment d’avoir créé ça
      Ce jeu a eu une grande influence sur mon entrée dans le vrai monde du flipper et jusqu’à un niveau semi-pro. Je voulais vous demander depuis toujours si vous envisageriez de revenir à la phase de conception pour créer une suite officielle à Space Cadet Pinball
      Avec l’enshittification, les microtransactions et les problèmes de licence défavorables aux joueurs dans le flipper virtuel, plusieurs générations ont peut-être envie de retrouver cette nostalgie. J’y ai déjà tellement réfléchi que je serais prêt à y consacrer tout ce que j’ai si besoin, mais j’aimerais d’abord entendre votre réponse
    • Comme il était inclus par défaut avec Windows 2000, il se trouvait dans toutes les salles informatiques, c’était une excellente pause pour s’évader un peu du réel, et une expérience de jeu durable
      Plus tard, certains ont commencé à apporter Deluxe Skijump, Doom et Starcraft, mais Space Cadet restait largement un bon choix
    • Je me demande ce que vous pensez de la proposition d’escrow du code source à la fin de l’article
      Je suis prestataire externe pour Software Heritage, je ne sais pas si c’est toujours leur activité actuelle, mais ça me semble être une organisation idéale pour assumer ce rôle
      https://www.softwareheritage.org/
  • La fidélité de cette recréation à l’original est absolument délirante, l’apparence et les sensations sont presque identiques
    L’auteur l’a faite uniquement en décompilant l’exécutable, sans jamais voir le code source d’origine, donc c’est pratiquement un travail accompli à l’aveugle. Du coup, l’expression « un enfant sourd, muet et aveugle qui joue incroyablement bien au flipper » lui va parfaitement

    • Dans l’original, si je me souviens bien, on pouvait déplacer la bille avec le curseur en tapant quelque chose comme « hidden test » pendant la séquence de démarrage
      Je me demandais si ça marchait aussi dans cette version et j’allais essayer plus tard devant mon ordinateur, mais j’ai installé la version AUR et ça fonctionne effectivement. Si on tape « hidden test » pendant la séquence de démarrage du jeu, on peut attraper la bille
    • À noter aussi que Microsoft fournit les symboles de débogage pour Pinball
    • Si je comprends bien, dans une approche clean room, on n’est pas censé regarder directement le code désassemblé, il faut qu’une autre personne l’examine et le documente pour vous
      Cela dit, on pourrait peut-être obtenir quelque chose de similaire en demandant à Claude de rédiger une spécification à partir du code désassemblé
  • En regardant GitHub, c’est intéressant : https://github.com/k4zmu2a/SpaceCadetPinball
    Il a été porté sur plusieurs consoles, et il existe aussi une version navigateur : https://pinball.alula.me/
    Et puis Space Cadet Pinball faisait en réalité partie d’un jeu plus vaste de Maxis que je ne connaissais pas, Full Tilt! Pinball. DOOM a failli être livré avec Windows 95, mais ça aurait été refusé dans l’idée de « vous n’auriez pas un jeu comme le flipper ? », et c’est ainsi qu’on en est arrivé là
    https://en.wikipedia.org/wiki/Full_Tilt!_Pinball#Development

    • Ailleurs dans ce fil, le CEO a démenti l’histoire autour de DOOM
    • La version Full Tilt est bien plus étoffée, avec un multibille absent de la version fournie avec Windows
  • L’an dernier, chez Shopify, on a créé un jeu de flipper inspiré de Space Cadet, et on peut encore y jouer ici : https://bfcm.shopify.com/
    Chaque année à Black Friday, on publie un site qui visualise en temps réel le chiffre d’affaires des boutiques ; avant, c’était surtout un globe montrant les ventes comme des arcs allant du marchand à l’acheteur. Ces dernières années, on essaie de rendre le site plus amusant et interactif
    Programmer une machine de flipper a été assez difficile, et une équipe de 2 ingénieurs et 1 artiste y a travaillé pendant environ un mois et demi. Si vous êtes curieux de savoir comment ça fonctionne, on a mis des notes de conception dans l’ordinateur de bureau à côté de la machine de flipper

    • J’adore vraiment le dispositif de capture de bille un peu à gauche du centre, qui gémit en peinant avant de « lancer » la bille
  • J’aime bien la mention d’un escrow FLOSS du code source à la fin de l’article
    Ce serait juridiquement difficile à mettre en œuvre, mais l’idée qu’un logiciel soit propriétaire tant qu’il est vendu, puis devienne automatiquement open source quand il ne l’est plus, est séduisante du point de vue des utilisateurs ou acheteurs potentiels. Au pire, si une entreprise fait faillite ou abandonne le projet, ça réduit la dépendance
    https://kde.org/community/whatiskde/kdefreeqtfoundation/ me fait un peu penser à ça

    • Ce n’est pas la même chose qu’un escrow FLOSS, mais l’escrow du code source est assez courant dans les contrats de logiciels pour grandes entreprises
      Il existe même des sociétés qui servent d’intermédiaires pour ce genre de choses : https://www.escrowcompany.co/source-code-escrow/
    • L’escrow logiciel est très courant, j’ai par exemple déjà travaillé dans un endroit qui avait un escrow du code source de Windows
    • Honnêtement, je ne suis pas sûr que le code source en lui-même soit si utile
      Une fois la vente arrêtée, il suffirait à mon avis de rendre légaux la redistribution, la décompilation, le reverse engineering et la réimplémentation
  • La version Full Tilt a aussi un multibille absent de la version Windows
    Quand deux lumières ont la même couleur, on peut verrouiller une bille en tirant dans le wormhole, et quand 3 billes sont verrouillées, ça démarre
    Si vous aimez Space Cadet, je recommande aussi vivement Visual Pinball. Il existe beaucoup de jeux de flipper bien meilleurs que Space Cadet, et énormément de superbes tables créées par la communauté sont disponibles gratuitement. En revanche, ça semble réservé à Windows. Les tables sont scriptées en VBScript et PinMAME est chargé comme objet COM
    Cela dit, après y avoir un peu bidouillé, la programmation de Space Cadet m’a semblé assez brouillonne. L’état des lumières reflète directement l’état du jeu. Du coup, il y a un bug qui permet de sauter un grade si on perd la bille ou si on lance une mission pendant l’animation lumineuse de montée en rang

    • Heureusement, c’est faux
      VPX fonctionne désormais aussi sous Linux, Mac, iOS et Android, et tourne bien grâce au travail pionnier de jsm174. La partie VBScript est gérée avec juste ce qu’il faut de Wine, et le reste est natif
      Il prend aussi en charge le surround sound feedback (SSF), le Direct Output Framework (DOF), les packs Pinup Popper (PUP Packs), etc. Même l’interface graphique, autrefois réservée à Windows, est maintenant intégrée dans les versions Windows/Mac/Linux via ImGUI et peut s’afficher pendant la partie
      Si vous voulez essayer, connectez-vous à GitHub et téléchargez la dernière action pour votre plateforme [0]. Pour les utilisateurs non-Windows, la dernière version de master, qui réduit bien plus l’écart fonctionnel avec la version Windows que la release 10.8.0 de l’an dernier, est préférable. Il faut utiliser la version BGFX, qui dispose d’un nouveau backend de rendu multithread prenant en charge Metal et Vulkan
      Pour en savoir plus, le mieux est d’aller sur le Discord Virtual Pinball Chat [1] ou le wiki [2]. Les développeurs ont beaucoup travaillé pour rendre VPX multiplateforme, et ça se voit. J’ai moi-même construit un Pincab [3] à partir de ça, et c’est excellent
      En plus, VPX est maintenant aussi pris en charge dans Batocera, mais la version intégrée y est déjà assez ancienne
      [0] https://github.com/vpinball/vpinball/actions/workflows/vpinb...
      [1] https://discord.gg/BhR9h5aWm
      [2] https://github.com/dekay/vpinball-wiki/wiki/About-Visual-Pin...
      [3] https://github.com/dekay/vpin-cabinet/
    • J’avais l’intuition que des jeux plus réalistes seraient plus amusants, et qu’aimer Space Cadet venait peut-être surtout des souvenirs d’enfance
      Mais plus je joue à d’autres jeux de flipper, plus je reconnais que Space Cadet est en lui-même un excellent jeu. Les sensations sont très bonnes, et il y a beaucoup d’éléments qui donnent envie d’y revenir
      J’ai essayé de trouver d’autres jeux de flipper aussi plaisants, et les plus proches ont été Xenotitle et Demon's Tilt, mais ils sont plus difficiles à apprivoiser et à bien maîtriser. Le suivant dans mon classement serait Yoku's Island Express
    • J’ai beaucoup joué au flipper, et Space Cadet est un très bon jeu de flipper en matière de conception, d’équilibrage et d’intérêt
      Ce n’est pas un jeu à sous-estimer
  • Pour Visual Pinball, ça vaut le coup de regarder ici : https://archive.org/details/vpinball-x-73-space-cadet / https://github.com/vpinball/vpinball
    Il y a peut-être mieux, mais la version JP fonctionne directement sans avoir à installer et configurer tout un tas d’autres logiciels
    https://youtube.com/results?search_query=JP%27s+Space+Cadet - https://youtu.be/UXfohCzilrQ
    La manière dont ces flippers sont réalisés aujourd’hui est vraiment impressionnante
    On trouve aussi plus de tables ici :
    https://vpforums.org/index.php?app=downloads&showcat=50
    https://vpuniverse.com/files/category/82-vpx-pinball-tables
    https://virtualpinballspreadsheet.github.io
    https://nailbuster.com/wikipinup
    https://archive.org/search?query=visual+pinball+tables

    • J’ai eu pas mal de mal à faire tourner ce projet dans un environnement non-Windows
      Sous Linux/Mac, ça gelait ou plantait quoi que je fasse, et même si le projet se libère peu à peu de ses contraintes, il reste encore orienté Windows
    • Visual Pinball est vraiment incroyablement bon, et il repose sur une immense communauté active d’artistes et de développeurs de tables
      Il existe des centaines de tables de grande qualité, avec plus de 12 nouvelles sorties chaque semaine. Il y a de nouvelles tables originales qui font des choses impossibles sur un vrai flipper physique, mais aussi de nombreuses recréations très soignées de machines commerciales légendaires des années 1950 aux années 2000. Il y a de fortes chances que la table dont vous vous souvenez à l’adolescence ait déjà été émulée
      De la même manière que MAME préserve les jeux d’arcade avant leur disparition, la communauté VPin fait un travail de préservation historique pour que les générations futures puissent profiter des machines électromécaniques. En interne, Visual Pinball utilise PinMAME, une version spécialisée de MAME, pour émuler les ROM des flippers, tandis que Visual Pinball gère le rendu 3D et la simulation physique
      La plupart des gens jouent sur ordinateur avec un clavier, mais de la même manière que certains joueurs MAME ajoutent boutons dédiés, joystick ou borne d’arcade, VPin peut aussi fonctionner dans une caisse ressemblant à une vraie machine de flipper. Un écran plat prend la place du playfield, et des boutons de flipper ainsi qu’un véritable plunger servent à lancer la bille virtuelle
      VPin prend aussi en charge le son stéréo, mais les canaux supplémentaires d’une sortie 7.1 de carte son PC standard peuvent piloter un subwoofer, des bass shakers et jusqu’à 4 canaux de retour haptique positionnel. J’ai été impressionné par la précision avec laquelle les transducteurs peuvent recréer la sensation de vrais bumpers et slingshots qui s’activent dans la caisse, jusqu’aux fines vibrations d’une bille métallique roulant sur un playfield en bois
      Dans ma propre caisse, j’ai même installé de vrais solénoïdes de flipper sous la position des flippers rendus à l’écran. Mon VPin se trouve dans une salle de jeu à côté de 8 vraies machines de flipper et d’une borne MAME personnalisée, donc je peux garantir que la sensation d’ensemble est très proche du réel
      Si vous voulez essayer Visual Pinball, je recommande vivement de commencer par l’installateur automatique Pinup Popper lié plus haut par @eahm : https://nailbuster.com/wikipinup/doku.php
      Cet excellent résultat vient de plusieurs projets qui fonctionnent ensemble de manière fluide, mais au départ il peut être un peu déroutant de tout installer au bon endroit et dans le bon ordre. J’ai trouvé un peu pénible de devoir lire de la documentation lors de la première installation, mais aujourd’hui je considère presque que le fait de ne pas être totalement en un clic est un avantage. C’est juste assez complexe pour filtrer les utilisateurs qui débarquent trop facilement pour spammer, ce qui fait qu’il reste une communauté très compétente et très impliquée autour de ce hobby rétro-adjacent entièrement gratuit
  • J’aime bien l’idée d’escrow du code source, et ça semble être un bon domaine d’intervention pour les gouvernements nationaux
    Ça me rappelle la manière dont la British Library doit conserver un exemplaire de chaque livre publié. Je me dis qu’on pourrait peut-être avoir une loi semblable pour le code source, ne serait-ce qu’à des fins de préservation pure
    Ça ne me dérangerait pas du tout que ce soit enfermé dans un coffre-fort métaphorique et ouvert uniquement une fois certaines conditions remplies concernant le support et la durée de vie du logiciel. Même si cette condition était « après expiration du droit d’auteur original », donc plus de 70 ans plus tard, ce serait déjà bien meilleur pour la préservation du code source que les pratiques actuelles. Certains jeux ont perdu leur code source original moins de 10 ans après leur sortie (Kingdom Hearts 1). À mes yeux, presque n’importe quelle alternative vaudrait mieux que la situation actuelle

    • Je ne suis pas sûr que n’importe quelle alternative soit préférable à la situation actuelle
      Les incitations pour les créateurs sont déjà assez faibles. On écrit un livre, il se retrouve aussitôt sur Anna's Archive et est digéré en bouillie par les LLM pour le profit de la bande à Altman. On partage ici ou sur Reddit un article d’enquête, et l’un des commentaires les plus plébiscités est souvent un lien vers un site de contournement du paywall
      On est déjà dans une sorte de situation à la Bastiat et sa vitre brisée, où les gens ont de moins en moins d’incitation à créer. Je n’ai pas envie d’augmenter le risque que le travail des créateurs de logiciels soit encore plus facilement copié et blanchi au regard du droit d’auteur. Un coffre-fort d’État serait une cible trop facile pour des entreprises pesant des milliers de milliards
      Ceci dit, en tant que personne qui fait du reverse engineering rétro, je suis très sensible à ce que dit l’auteur sur la tension entre le besoin de préserver les logiciels et celui de rémunérer les créateurs
  • Ils vont bientôt séparer le jeu et les données, ce qui rendra la seconde partie plus simple et permettra à un Flatpak personnalisé d’étendre les données
    Flatpak a reçu des mises à jour pour maintenir le runtime à jour, mais le jeu upstream lui-même n’a pas été mis à jour, et Flathub n’affichera que les données appstream concernant les mises à jour. Si on regarde le dépôt du manifeste Flatpak, le dernier commit date d’il y a 6 mois : https://github.com/flathub/com.github.k4zmu2a.spacecadetpinb...

  • J’aimerais que quelqu’un, en hobby ou dans un cadre professionnel, fabrique une vraie table de flipper Space Cadet

    • Il y a déjà eu quelques tentatives, et la plus connue est probablement celle-ci [1]
      Tant qu’à faire, j’aimerais aussi voir une vraie version de la table de flipper Sesame Street [2], mais ce serait peut-être encore plus ambitieux
      [1] - https://spacecadetpinball.wordpress.com
      [2] - https://www.youtube.com/watch?v=JZshZp-cxKg
    • Beaucoup de gens y ont réfléchi, mais de mémoire ce n’est pas réalisable physiquement
      Il y a une voie qui passe sous les bumpers, alors que de vrais bumpers descendent assez bas : https://files.catbox.moe/pnaeri.png
    • J’avais proposé ça à un employé de Stern il y a 21 ans, mais évidemment il ne s’est rien passé
      À l’époque, ils voulaient aussi faire une machine Halo, et ça n’a abouti à rien non plus