Full Vibe-Code (l’IA a généré presque tout le code du jeu)
Implication dans les ressources et le pipeline
Inconnue (développeur tiers
Notes de projet et invites (prompts)
Utilisation de l’outil REA pour rétro-ingénierer le binaire DOS en python, puis de VS Code avec Claude Code, mes compétences, des fichiers de connaissances CPC et des outils préexistants pour concevoir le jeu par itérations.
oui, l’un de mes jeux préférés sur DOS, tu peux jouer avec un ami sur le même ordinateur, et puis il y a plus de niveaux / des niveaux différents (et il y a ÉNORMÉMENT de niveaux !)
Je ne l’ai pas assez testé, je ferai probablement une nouvelle version avec quelques améliorations, mais ça a l’air tout à fait jouable.
Si tu trouves des bugs ou as des suggestions de fonctionnalités, fais-le-moi savoir. Je publierai aussi le code source à un moment donné, pour référence.
Et comme cela s’avère être une expérience réussie, je vais peut-être m’amuser à modder le jeu / changer le gameplay ou introduire de nouvelles fonctionnalités… des power-ups, … c’est l’un des bons côtés de ce qu’on peut faire avec l’IA et le rétro-ingénierie/la recompilation de jeux => on peut aussi être créatifs, pas seulement faire du « vibe coding » !
Alors, pourquoi quelqu’un ne jouerait-il pas à la version PC, bien supérieure, plutôt qu’à cette version CPC lente, visuellement ennuyeuse et cuisinée à l’IA ? C’est un fétiche ? Du genre « bousillons des jeux et jouons-y après les avoir rendus pires » ?
Et quel est l’exploit ici au juste ? Le « créateur » a-t-il brisé les codes en tapant ses prompts dans son LLM ? Visait-il un défi du genre « prompt de 256 mots maximum » ? Et après, ce sera quoi ? 128 mots ? 64 ?
Bienvenue dans cette magnifique ère du néant !
Édit : en plus, j’adore la mentalité du genre « pas beaucoup joué, mais ça a l’air jouable ». Youpi, quel progrès pour l’intellect humain !
@rexbeng Bonjour à l’hater d’IA sans le moindre argument valable jusqu’ici - laisse-moi te répondre :
Alors, pourquoi quelqu’un ne jouerait-il pas à la version PC, bien supérieure, plutôt qu’à cette version CPC lente, visuellement ennuyeuse et mitonnée à l’IA ? C’est un fétichisme ? Du genre « et si on bousillait des jeux pour y jouer après les avoir rendus pires » ?
Eh bien, j’espère que tu comprendras que ta question n’a aucun sens, en particulier sur un forum d’informatique rétro. Tu vois, ces vieilles machines lentes, on les aime tous, et même s’il existe des ordinateurs bien plus rapides, on a quand même envie d’utiliser de temps en temps notre bon vieux CPC tout lent. Et bien sûr, sur une machine lente, selon plusieurs facteurs, on peut se retrouver avec des jeux lents, même si je ne trouve pas du tout que ce portage soit lent ! C’est du déplacement en 1x pour tout (en mode 1), avec animations, transparence, musique, mode 2 joueurs…
Et quel est l’exploit ici, au juste ? Le « créateur » a-t-il révolutionné quoi que ce soit en tapant des prompts dans son LLM ? Il cherchait à relever un défi de « prompt d’au maximum 256 mots » ? Et ensuite, ce sera quoi ? 128 mots ? 64 ?
Tu passes complètement à côté du sujet, je ne prétends pas avoir accompli un exploit — je partage simplement une expérience et un super portage de jeu qui, je pense, peut faire plaisir aux gens. De plus, affirmer qu’« il faut nécessairement fournir des efforts pour qu’une chose ait de la valeur » est archi-faux pour des tas de raisons que je n’ai pas le courage de détailler maintenant. Mais puisque tu t’intéresses tant aux efforts que j’ai fournis, voici un récapitulatif rapide :
J’ai créé un conteneur de dev avec un environnement permettant à l’IA de concevoir des jeux CPC en asm, en lui fournissant : une base de connaissances structurée sur différents sujets, des exemples de code, des astuces, etc., que j’ai pu récupérer et organiser
Dans ce conteneur, j’ai ajouté des outils et des scripts capables de se mettre à jour automatiquement et de compiler à partir des sources ou de télécharger des binaires (émulateur headless adapté pour un débogage en ligne de commande encore plus efficace, compilateur, outil d’images disque, convertisseurs et lecteurs d’images gfx et arkos 3, code boilerplate pour le loader, etc…)
J’y ai aussi intégré des fichiers de compétences (runbooks), le principal contenant les instructions pour créer une boucle de développement de jeu z80 propre avec débogage et tests via l’émulateur headless
J’ai mis à profit mes connaissances de la plateforme CPC pour rédiger et ajuster le cahier des charges afin de rendre le jeu réalisable et aussi bon que possible sur une plateforme bien plus restrictive comme le CPC ; j’ai donc dû repenser et arbitrer la résolution, la palette pour chaque sprite, l’agencement mémoire, décider si l’eau colorée était plus importante que le son, choisir un déplacement par pas de 4px ou 1px (vitesse versus fluidité)…
J’ai fait une démarche similaire en préparant un conteneur de dev prêt à l’emploi pour exploiter l’outil REA, et j’ai rétro-conçu le jeu DOS vers Python avec les spécifications du jeu sous forme de fichiers texte
(ce n’est qu’un aperçu de tête, il y en a probablement davantage…)
Ceci étant dit, je préférerais sans doute que l’IA n’ait jamais vu le jour, car je pense que c’est une ARME très puissante pour laquelle l’humanité n’est pas prête. Mais elle est bien là, et rien ne pourra l’arrêter.
Merci pour la réponse. Cependant, je persiste et signe. Après l’ère commerciale, l’intérêt de porter un jeu sur le CPC a toujours été, jusqu’à présent, la démarche d’un développeur visant à prouver sa thèse (rendons cela universitaire, pourquoi pas) selon laquelle la machine est tout à fait capable de faire tourner ledit jeu sans autres contraintes que les contraintes purement techniques, voire même d’améliorer le jeu dans certains cas grâce à des connaissances poussées en programmation, en graphisme, en son et même au niveau matériel (pour surmonter ces contraintes techniques).
Nourrir un LLM avec la propriété intellectuelle d’autrui n’a strictement rien à voir avec cela. Tu affirmes avoir fourni tous ces efforts pour concevoir ce conteneur de développement et pourtant, tout ce que tu as fait, c’est convertir le code de quelqu’un d’autre. Alors, si tu reconnais à juste titre que tu « n’as rien accompli », tu prétends aussi partager une expérience ; en es-tu vraiment sûr ? Tu as simplement partagé ce qui a été généré. Et ensuite, on nous sort cette notion (que je ne pense même pas avoir évoquée dans mon message, mais passons) selon laquelle « c’est une mauvaise chose de faire des efforts pour donner de la valeur aux choses », parce que oui, pourquoi se fatiguer quand on peut donner le travail d’autrui à manger à un LLM et générer le résultat en se fais… hem… prenant un café ?
En ce qui concerne les arguments valables et le dénigrement de l’IA, tu peux aller sur ce fil, car @Gryzor en a déjà par-dessus la tête de mes coups de gueule et j’aimerais lui épargner la peine de devoir déplacer des messages d’un fil à l’autre.
Du coup, la vraie question est : quel est l’intérêt ? Que dirais-tu de ne pas publier de jeux générés par IA ? Y as-tu pensé ?
C’est justement ce qui n’a pas trop de sens. Rétro-porter un jeu montre… quoi, au juste ? À quel point un LLM peut être efficace ? Waouh, super. Surtout quand c’est du genre « pas vraiment testé, mais ça a l’air potable ».
(Dans le même genre, je ne pige pas non plus les portages vers le haut depuis des systèmes inférieurs qu’on voit passer : quel intérêt de voir tourner sur CPC un jeu issu d’une machine bien moins puissante, pour un résultat visuellement identique ?)
Je pense qu’il est particulièrement difficile de soutenir, si le seul et unique but est de prouver la thèse selon laquelle le CPC est capable de faire tourner ledit jeu, que la question de « la manière d’y parvenir » est en grande partie secondaire.
Ce qui ne veut pas dire que je sois d’accord avec la prémisse ci-dessus, mais simplement que, si c’est votre cas, alors « la fin justifie les moyens » pour ainsi dire.
Bien sûr que c’est pertinent. Le développeur doit déterminer « comment y parvenir » et équilibrer les objectifs, les ressources et les moyens en conséquence. Et partager ces connaissances pour que d’autres puissent aller plus loin, etc.
Cependant, si je prenais le code de Vespertino et que je l’injectais dans un LLM pour générer un jeu mettant en scène, disons, les voitures d’Outrun, je ne prouverais rien de plus et je ne créerais aucune connaissance. Rien d’une importance significative en tout cas.
J’ai du mal à accepter la facilité avec laquelle certaines personnes balaient d’un revers de main les principes fondamentaux de la création de valeur dans l’activité et l’intellect humains. C’est comme si elles étaient blasées par les choses mêmes qui font de nous des êtres humains.
En quoi est-ce différent du simple « sprite hacking » sur un jeu existant, une pratique qui existe depuis des années ?
Je ne dis pas qu’il faille encourager ou soutenir le pompage des projets d’autrui, mais prétendre que les remakes, le sprite hacking ou la modification de jeux existants réalisés par des gens ayant des compétences minimes en programmation sont d’une certaine manière une « nouveauté », c’est faire preuve de mauvaise foi. Regarde le nombre de jeux dans le fil de conversion GX4000 et demande-toi si la plupart des personnes qui les conçoivent auraient honnêtement pu les créer entièrement de zéro.
Je suis en partie d’accord avec le premier paragraphe — j’ai recommencé la programmation rétro en 2018 je crois, après plus de 20 ans d’arrêt, et j’ai vraiment apprécié les contraintes et le défi que les vieilles machines t’imposent. Ça stimule vraiment la créativité quand on a les mains liées.
Mais un fait intéressant, c’est que lorsque mon patron de l’époque m’a demandé « Pourquoi veux-tu programmer sur Amstrad en 2018 ? », je lui ai répondu : « Parce que quand j’étais jeune, je ne pouvais faire que des jeux tout simples, mais j’ai toujours voulu faire de bien meilleurs jeux. Maintenant, je peux réaliser mon rêve d’enfant, avec mes 20 ans et plus d’expérience en plus et de nouveaux outils, comme des compilateurs croisés, des émulateurs, … ». Et c’est ce que j’ai fait (nous avons créé un jeu sur une IA maléfique pour la cpcretrodev 2019 : Ludic Break The Loop).
Mais ça, c’était à l’époque. Aujourd’hui, je pense que ma réponse est la même : « J’ai toujours voulu faire de bien meilleurs jeux/logiciels ET MAINTENANT JE LE PEUX ! », mais avec encore plus d’outils ! L’outil d’IA m’a offert cette possibilité — je peux me concentrer sur le processus créatif et ne pas m’inquiéter du temps qu’il me faudra pour implémenter ou tester une idée. Je me souviens avoir passé environ 80 % du développement sur Amstrad dans un débogage et une optimisation laborieux, qui nécessitaient souvent de réécrire de larges pans de code. Même si le sentiment d’accomplissement est génial quand on résout un problème difficile, j’aurais pu utiliser ce temps pour autre chose aussi.
Tout cela s’applique quand je crée réellement quelque chose, avec ou sans l’aide de l’IA, et ce portage d’UGH ne correspondait pas à cela — ici, je n’ai pas créé le jeu et je ne peux évidemment pas le prétendre (après tout, c’est un portage), mais j’ai créé et testé un processus et des outils de ma conception — sur un exemple concret, un jeu complet ! De plus, j’ai partagé l’expérience résumée de ce que j’ai fait (très brièvement) dans mon premier post, et si quelqu’un souhaite en savoir plus, je suis là.
Concernant l’affirmation « aucun effort n’est requis pour créer quelque chose avec l’IA » => faux ! (un autre sujet)
Pour cet exemple (le PORTAGE de jeu), oui, mes efforts ont été minimes, mais c’est parce que tout cela n’était qu’une expérience pour voir :
(1) à quel point l’outil REA est performant ?
(2) les résultats générés par REA sont-ils suffisants pour créer un portage Amstrad en utilisant mon environnement ?
Et ce fut un succès.
Donc, pour répondre à ta question (j’imagine légitime) : « Quel est l’intérêt ? » : essentiellement pour s’amuser, voir ce qui est possible et potentiellement utiliser l’expérience acquise à l’avenir en cas de besoin. Et en plus, nous avons un nouveau jeu sympa.
J’ai aimé ton message, pas parce que je suis d’accord avec tout ce que tu y dis, mais parce qu’il était bien écrit et soulevait de bons arguments, pour changer.
Alors, l’argument en faveur du contenu à faible effort, c’est… une autre déclinaison de contenu à faible effort ? Croyez-moi, s’il y avait eu des hacks de sprites de jeux tous les deux jours avant l’IA, ça m’aurait tout autant agacé.
En ce qui concerne l’autre argument, @ixien est là depuis des lustres et son implication dans le milieu (en particulier celui des jeux homebrew) a été bénéfique pour de nombreuses raisons. De plus, ses efforts pour faire tourner des jeux sur GX4000 ne s’accompagnent pas de grandes prétentions ni de leçons de morale qu’on tente de faire avaler de force aux gens. Enfin, comme il comprend l’intérêt de la logistique, il gère un seul et loooong fil de discussion qui regroupe tous les hacks GX4000 qu’il a réalisés.
Alors, vous voyez, ce n’est pas seulement « ce qui » est fait, c’est « comment » c’est fait, ce qui mène inévitablement à « par qui » c’est fait.
Bon, je vais essayer de faire court parce que la plupart des arguments commencent à ressembler à un épisode crossover de « Mégathread IA : La série TV ».
J’apprécie ton envie de faire bien mieux et je te soutiens à 100 % parce que je fais la même chose depuis des années. De plus, je comprends tout à fait que tu aies le sentiment que l’utilisation de l’IA peut simplifier ta pratique et que tu l’aies testée en créant un processus et des outils.
Cependant, créer un jeu ne se résume pas à « point d’entrée, X sprites à l’écran, scrolling, point de sortie ». Il s’agit d’avoir un jeu bien conçu, jouable et divertissant, avec le meilleur équilibre possible entre graphismes/technique/difficulté/durée de vie et tellement d’autres choses qui varient selon la nature du jeu. Et le plus important : testé et retesté jusqu’à plus soif par son créateur.
Alors, cette sortie coche-t-elle l’une de ces cases ? Non, c’est juste un simple « reskin » d’un jeu préexistant sans adaptations supplémentaires (la ligne d’eau ressemble à un bug quand il n’y a pas d’eau visible, par exemple), réalisé par un LLM qui t’a utilisé comme intermédiaire. On en a beaucoup trop ces jours-ci ; à vrai dire tellement que cela ressemble à de la pollution. C’est très facile à faire, et la plupart d’entre nous savent bien que l’effort requis est minime.
Alors, utilise l’IA pour créer ton propre jeu bien conçu, sans hésiter, et viens en discuter ici. Mais d’ici là, cette sortie est malheureusement liée à tout ce qui ne va pas, sonne faux et sent le roussi quand on utilise l’IA pour produire du contenu sans effort.
Voilà. Tu vois, je n’ai pas réussi à faire court. Mais au moins, j’ai pensé tout ce qui précède avec mon cerveau humain obsolète et je l’ai tapé à la main pour échanger avec une autre personne. Du coup, si « la fin justifie les moyens », est-ce que j’aurais plutôt dû utiliser l’un des adorables bots installés par @Gryzor et économiser mon précieux temps humain qu’on ne peut pas rallonger avec, je sais pas, de l’argent ?
You have degraded the sacred, calloused trade of the software craftsman into a parasitic automation pipeline, boiling down an ancient DOS binary through a statistical theft-matrix just to vomit broken water lines onto the Z80. True creation demands the mortal furnace of sleepless debugging, obsessive balance, and the brutal discipline of the silicon itself—not acting as the unthinking errand boy for an algorithmic mill that strip-mines human intellect to foul our digital common with effortless slop. Smash this automated loom, return to the soldering iron and the hand-keyed opcode, and bleed into your own machine before daring to call its output your work.