Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Un clone de DOOM en COBOL ça vous dit ?

Un développeur connu sous le pseudonyme icitry s'est posé une question que personne de sensé ne formule jamais, peut-on coder un jeu de tir à la première personne en COBOL ? La réponse, contre toute attente, est oui, et le résultat est même tout à fait jouable.

Pour ceux que ce nom laisse de marbre, COBOL, pour Common Business Oriented Language, est un langage né en 1959 qui fait encore tourner aujourd'hui une partie des mainframes chargés de vos virements bancaires et de la paie. C'est l'outil de la gestion et des relevés de compte, à peu près l'inverse de ce qu'on imagine pour un jeu vidéo.

Le moteur du jeu repose sur le raycasting, cette technique qui a propulsé Wolfenstein 3D au début des années 90. Le programme projette une rangée de rayons depuis le point de vue du joueur, regarde où chacun vient percuter un mur, et en déduit colonne par colonne la hauteur à dessiner. De la fausse 3D reconstruite à partir d'un simple plan vu de dessus.

Le vrai casse-tête, c'est que COBOL n'embarque aucune bibliothèque graphique, pas la moindre fonction pour allumer un pixel ou ouvrir une fenêtre. La parade est astucieuse. Le programme calcule lui-même chaque image, en recrache les pixels bruts sur la sortie standard du terminal, puis laisse un petit utilitaire nommé ffplay récupérer ce flux pour l'afficher comme une vidéo animée.

Même esprit de débrouille pour les commandes. Le terminal bascule en mode brut afin d'intercepter chaque touche sans attendre que vous validiez, pendant que le programme lit en continu ce qui arrive sur son entrée standard.

Et le rendu ne se limite pas à trois murs gris qui clignotent. On y trouve des sprites, des ennemis qui se baladent et vous tirent dessus, et même des secteurs de hauteur variable qui rapprochent l'ensemble du DOOM de 1993 plutôt que de son aîné Wolfenstein.

Le code complet est publié sur GitHub sous licence Apache, libre à chacun d'aller en fouiller les coulisses. Un internaute a d'ailleurs relevé que GnuCOBOL, le compilateur libre utilisé ici, sait parfaitement appeler du code écrit en langage C, ce qui ouvrirait l'accès à tout son arsenal de bibliothèques.

Toute la démonstration sert à rappeler que COBOL est Turing-complet, c'est-à-dire capable en théorie de calculer exactement la même chose que n'importe quel langage moderne, et à le prouver sur le terrain le plus hostile qu'on puisse lui opposer.

Bref, c'est rigoureusement inutile, et c'est très exactement pour ça que c'est cool.

Source : Hackaday

Mario Kart Super Circuit - Un patch corrige un bug vieux de 24 ans

Si vous aviez une Game Boy Advance en 2001, vous avez forcément joué à Mario Kart Super Circuit. C’était LE jeu pour les trajets en bus trop longs, les vacances à la mer chiantes avec les parents, les heures à tuer le weekend… Eh bien figurez-vous que pendant tout ce temps, on jouait à un jeu “cassé” sans même le savoir.

Le truc, c’est que Mario Kart Super Circuit affiche bien 60 fps… mais uniquement pour les personnages et les décors. Le circuit lui-même, qui tourne avec l’effet Mode 7 comme sur Super Nintendo, ne se rafraîchissait qu’à 30 fps. Et c’est un détail que personne n’a vraiment remarqué pendant presque un quart de siècle.

Et là, y’a un moddeur du nom d’Antimattur qui a décidé de fouiller dans le code et a découvert un truc assez dingue… Le jeu calculait déjà les paramètres du circuit à 60 fps en interne, mais quelqu’un chez Nintendo a décidé de ne les lire qu’à 30 fps. Alors pourquoi ? Hé bien mystère et boule de gomme… Les théories vont de l’économie de batterie (les piles AA du GBA original, c’était pas la fête) à une optimisation pour l’écran LCD qui bavait tellement que le 60 fps aurait peut-être été bizarre… On ne sait pas vraiment.

Ce nouveau patch fait seulement 15 octets et selon son créateur, un tiers de ces octets sont pour le mot “patch”. Un simple changement d’adresse et hop, le jeu fait enfin ce qu’il aurait dû faire depuis 2001.

La correction fonctionne sur toutes les versions du jeu (USA, Europe, Japon), et niveau performances, ça ne change strictement rien puisque le boulot était déjà fait en coulisses. Nintendo avait juste… oublié d’utiliser ses propres calculs.

Maintenant, la différence se voit surtout dans les virages serrés où le scrolling est parfaitement fluide. C’est subtil mais une fois qu’on l’a vu, difficile de revenir en arrière… Bref, si vous voulez ressortir votre GBA (ou votre émulateur, aucun jugement ^^) pour l’occaz, le patch traîne sur romhacking.net . Dégoupillez le fichier IPS qui correspond à votre région et c’est bon pour du Mario Kart qui tourne enfin comme prévu !

Source

Descent 3 – Le code source rendu public !

Ça y est les amis, le moment que tous les fans de Descent attendaient est enfin arrivé ! Le code source de Descent 3, ce monument du jeu de tir à la première personne sorti en 1999, vient d’être rendu public sur GitHub. C’est Noël avant l’heure !

Alors, pour ceux qui ne connaîtraient pas encore ce chef-d’œuvre (honte à vous !), Descent 3 vous met aux commandes d’un vaisseau spatial dans des environnements entièrement en 3D, avec la possibilité de vous déplacer dans toutes les directions. On est loin des couloirs labyrinthiques des premiers Doom, là on parle de vraie liberté de mouvement, ce qui était du jamais vu à l’époque ! Ajoutez à ça des graphismes époustouflants (pour l’époque, encore une fois), une bande-son qui déchire composée par Christopher Larkin, et un mode multijoueur jusqu’à 4 joueurs addictif, et vous obtenez un classique intemporel.

Mais revenons à nos moutons (de l’espace). Jusqu’à présent, on n’avait accès qu’à des bribes de code, savamment distillées par les développeurs d’Interplay Entertainment. Mais là, c’est le jackpot : on a droit à la totale, le code complet ! Bon, quelques bouts de code propriétaires pour le son et la vidéo ont été retirés, mais rien de dramatique. Les anciens de chez Interplay bossent déjà pour rendre tout ça fonctionnel sans ces morceaux manquants.

Cette publication du code va permettre de pérenniser ce monument du jeu vidéo, comme ça, plus de risque qu’il tombe dans l’oubli et devienne injouable sur nos machines modernes. Et pour peu qu’une communauté motivée s’empare du truc, on peut s’attendre à des mises à jour, des corrections de bugs, et pourquoi pas des améliorations ! Imaginez un peu : de nouvelles armes, des vaisseaux inédits, des niveaux supplémentaires… Les possibilités sont infinies !

Mais le plus excitant, c’est surtout pour tous les moddeurs et développeurs en herbe qui vont pouvoir disséquer le moteur 3D maison Build engine, comprendre comment tout fonctionne sous le capot, et même s’en inspirer pour créer de nouveaux jeux ! C’est une mine d’or d’enseignements pour tous ceux qui veulent se lancer dans le développement de jeux vidéo.

Ce n’est que le début et les développeurs ont promis de nettoyer et commenter le code (parce que bon, on ne va pas se mentir, le code écrit il y a 20 ans, ce n’est pas toujours un modèle de clarté). On peut même espérer un petit système d’intégration continue pour faciliter les contributions de la communauté. Et qui sait, peut-être que dans quelques mois on aura droit à un Descent 4 entièrement conçu par les fans ! Oui, j’aime bien rêver…

En attendant, je vous invite à faire un petit tour sur le dépôt GitHub de Descent 3.

Sur ce, je vous laisse, j’ai un vaisseau spatial à réparer moi !

JBL Quantum Guide Play – L’audio 3D au service de l’accessibilité dans les FPS

Vous connaissez sans doute déjà JBL, parce qu’on a tous une de leur enceinte à la maison, mais saviez-vous qu’ils se sont associés à l’association AbleGamers et à la société Harman pour créer un outil vraiment utile ? Ça s’appelle JBL Quantum Guide Play, et ça va changer la donne pour les joueurs malvoyants !

C’est un outil pour Windows qui utilise la technologie de l’audio 3D pour rendre les jeux de tir à la première personne (FPS) accessibles aux joueurs ayant une vision réduite notamment grâce à des indices sonores bien pensés. Ainsi, les joueurs peuvent se repérer dans l’environnement du jeu et localiser les éléments importants comme les murs, les ennemis, etc. C’est un peu comme si on leur donnait des super-pouvoirs d’écholocalisation, comme Daredevil !

Alors comment ça marche ?

Et bien ce soft le suivi des mouvements de tête des casques JBL Quantum, couplée à des algorithmes d’IA et de machine learning, pour transformer les objets et bâtiments du jeu en signaux audio 3D, comme si le jeu vous chuchotait à l’oreille : « Attention, il y a un mur à 2h, un ennemi à 11h, une porte à 4h…« . Avec un bon casque audio, vous pouvez donc littéralement visualiser la scène dans votre tête !

Alors pour l’instant ça ne fonctionne qu’avec Counter Strike 2, mais les développeurs ont prévu de rendre le code open-source pour que d’autres jeux puissent en bénéficier. D’ailleurs, ils ont même créé une map d’entraînement spéciale sur Steam pour vous permettre de vous familiariser avec ce système.

Alors bien sûr, certains gros relous diront que c’est de la triche, que ça donne un avantage injuste… Mais honnêtement, quand on sait que plus de 2 milliards de personnes dans le monde souffrent d’un trouble de la vision, de près ou de loin, on se dit que c’est une belle initiative pour rendre le gaming plus inclusif comme ce qu’à proposé Playability dernièrement.

Bref, c’est gratuit, c’est dispo sur le site de JBL, ça fonctionne même sans casque (mais c’est mieux avec), et ça ouvre de nouveaux horizons pour des milliers de joueurs qui pensaient devoir dire adieu aux FPS.

Source

❌