Cette page est dediee a une experimention avec l'IA sur Amstrad CPC.

DEEP UNIVERSE

Histoire

À LA CONQUETE DE L'UNIVERS... EN 64 KO !

Espace... Frontière de l'infini, vers laquelle voyagent notre imagination et notre fascination...

Qui n'a jamais rêvé de parcourir l'espace pour y découvrir de nouvelles planètes, explorer des mondes étranges ou encore rencontrer d'autres civilisations ?

S'il est un jeu qui a su nourrir et catalyser ce désir d'évasion, c'est bien L'Arche du Capitaine Blood, paru en 1988 sur Amstrad CPC.




Chef-d'œuvre parmi les chefs-d'œuvre, ce titre d'Ere Informatique nous proposait de parcourir l'immensité du cosmos et de rallier une multitude de planètes à la recherche de nos clones.

Véritable prouesse technologique à bien des égards, L'Arche du Capitaine Blood a profondément marqué les esprits, notamment grâce à ses séquences spectaculaires de rotation et de destruction des planètes.



En ce 11 novembre 2026, il me restait un peu de forfait CLAUDE à dépenser. Une idée m'est alors venue : et si j'en profitais pour extraire la fameuse routine d'animation permettant de faire tourner les planètes ?

Ni une ni deux, je soumets le DSK du jeu à CLAUDE (qui fut d'ailleurs ravi de constater qu'il s'agissait d'une version déplombée !). Quelques minutes de désassemblage plus tard, l'IA d'Anthropic avait rempli sa mission !

Je disposais désormais d'un code parfaitement exploitable... Mais qu'allais-je bien pouvoir en faire ?

C'est au terme de cette intense réflexion qu'a germé l'idée de développer une démo interactive permettant d'explorer l'univers et ses planètes sur CPC. En somme, un hybride de Captain Blood et de No Man's Sky, débarrassé de toute dimension aventure. Et le tout devra tenir dans seulement 64 Ko !

CLAUDE me concocte alors un premier DSK contenant une unique planète bleue, en rotation au milieu du noir profond du vide intersidéral.



Mais, au passage, il a également pris l'initiative d'ajouter une nouvelle fonctionnalité à la routine : la possibilité d'accélérer ou de ralentir progressivement la rotation de l'astre à l'aide des flèches gauche et droite du clavier. Mieux encore, en insistant suffisamment sur la vitesse, il devient même possible d'inverser son sens de rotation !

Bref, je commence à entrevoir un certain potentiel et, surtout, les nombreuses possibilités qui pourraient en découler.

Tant qu'à reprendre l'ingénieuse routine de Didier Bouchon, autant en profiter pour l'améliorer au passage !



Galvanisé par ce nouveau projet pour Amstrad, je demande tout d'abord à l'IA d'examiner le code afin d'identifier les éventuelles optimisations possibles. Sa réponse est aussi brève qu'efficace : fluidifier l'animation en passant à 50 images par seconde, contre seulement 16,7 à l'origine !

Et le résultat parle de lui-même : la planète bleue tourne désormais à 50 FPS, sans la moindre saccade, avec une fluidité exemplaire digne d'une machine 16 bits ! CLAUDE à même trouvé sympathique d'ajouter 14 pixels statiques autour de la planete, histoire de simuler un petit fond étoilé.

Ci-dessous, un petit comparatif de l'animation Avant (16,7 FPS) et après (50 FPS) :



Je me penche ensuite sur les textures des planètes, en demandant à CLAUDE de réintégrer le calcul procédural qui permettait de modifier l'apparence de leur surface dans Captain Blood.

Mais, bien que fonctionnel, le résultat ne me convainc pas vraiment. J'ai en effet l'impression que les textures se répètent beaucoup trop souvent. Pourtant, dans mes souvenirs, la diversité était bien plus importante dans le jeu original...

Je demande donc à CLAUDE de calculer combien de planètes différentes peuvent être générées avec le code actuel. Le verdict tombe : environ 65 ! C'est très peu... beaucoup trop peu ! Il y a forcément un problème.

Et CLAUDE ne tarde pas à le déceler : une erreur s'est glissée lors de l'extraction du code !

Mieux encore, l'IA me propose de modifier le calcul procédural d'origine afin d'obtenir une nouvelle version capable de générer une infinité de combinaisons !

Pour s'assurer que cette modification tient ses promesses, je lance un test en tâche de fond pendant une bonne dizaine de minutes. Le verdict de CLAUDE est sans appel : plus de 65 000 planètes différentes ont déjà été générées ! La modification est donc concluante. Au vu de ces résultats particulièrement convaincants, je ne peux qu'acquiescer ! :)

Ci-dessous, un exemple de 16 textures générées :



À ce stade, une simple pression sur la barre d'espace suffit à modifier la surface de la planète en exactement 1,2 seconde (comme on peut le constater ci-dessous).



Toujours dans l'optique d'améliorer le rendu visuel, CLAUDE m'indique ensuite que les planètes de Capitaine Blood ne sont pas parfaitement symétriques. Il s'agit peut-être même d'un choix délibéré du programmeur, cette petite approximation permettant de gagner quelques précieuses fractions de seconde lors de l'animation.

En observant attentivement les pôles, on remarque effectivement la présence d'un pixel orphelin sur le côté de la sphère. CLAUDE corrige alors ce petit défaut graphique en ajoutant les pixels manquants pour obtenir une planète parfaitement régulière et ronde.



L'amélioration suivante concerne l'environnement dans lequel évolue notre planète. Car il faut bien reconnaître que les quelques étoiles statiques sur fond noir qui l'entourent font plutôt pâle figure et ne proposent pas vraiment une mise en scène spectaculaire ou dynamique...

Je demande donc à CLAUDE de créer un starfield en 3D : un effet visuel simulant un déplacement à travers un environnement constellé d'étoiles, comme si nous nous dirigions vers la planète à bord d'un vaisseau spatial.

Après quelques calculs rapides, CLAUDE m'assure que l'animation simultanée de 20 étoiles n'aura aucune incidence sur la fluidité de rotation de la planète.



C'est donc intégré !



À ce stade de l'expérience, je me souviens qu'une option particulièrement amusante était proposée dans Capitaine Blood : la possibilité de détruire une planète en augmentant sa vitesse de rotation jusqu'à atteindre une valeur extrême.

Pulvériser une planète entière d'une simple pression sur une touche ? Voilà un pouvoir qui procure une certaine sensation de puissance... et que je veux absolument retrouver dans ma démo !!!

Un petit prompt plus tard, CLAUDE extrait du DSK la routine dédiée et la réintègre dans mon programme.

Mais une petite incohérence visuelle subsiste : sur ma démo, le motif de l'explosion apparaît depuis la gauche de l'écran pour se terminer sur la droite. Or, pour obtenir un résultat crédible, l'explosion doit partir du centre de la planète et se propager vers les bords de l'écran. Par ailleurs, l'animation originale n'occupe que la moitié de la hauteur de l'écran.

Je demande donc à CLAUDE de rectifier le tir en repositionnant correctement le motif de l'explosion.

Ci-dessous, un comparatif du déploiement de l'explosion dans le jeu (en haut) et après modification par CLAUDE (en bas) :



J'en profite pour lui demander d'adapter les dimensions du motif afin qu'il remplisse désormais toute la surface de l'écran.

Ci-dessous, un comparatif de la taille et de la position de l'explosion dans le jeu (à gauche) et après modification par CLAUDE (à droite) :



Si l'ensemble des modifications apportées jusqu'ici me donne déjà entière satisfaction, un détail continue néanmoins de me chagriner : le passage d'une planète à l'autre ne bénéficie d'aucune transition. À chaque pression sur une touche, la surface de l'astre change simplement d'apparence, comme s'il se contentait d'enfiler une nouvelle peau. Pas vraiment réaliste !

J'imagine alors un enchaînement plus spectaculaire : commencer par désintégrer la planète actuelle, puis déclencher une séquence d'hyperespace avant de faire apparaître un nouvel astre.

Si l'idée me semble excellente, je dois reconnaître que les premières tentatives de CLAUDE en matière d'hyperespace sont une véritable catastrophe... Animation saccadée, effets grossiers, rendu peu évocateur... et surtout, c'est franchement moche !



Il faut dire que, pensant bien faire, je lui avais fourni un GIF animé (provenant d'une scène de Star Wars) censé l'aider à comprendre le résultat attendu. Manifestement, cette référence ne lui a pas vraiment rendu service...



Mais, têtu comme je suis, je décide de reprendre mes explications depuis le début, en décrivant précisément chaque détail de l'animation que j'ai en tête et en fournissant des visuels plus adaptés et fidèles à ma vision.



Et cette fois, ma persévérance finit par payer : CLAUDE parvient à programmer une séquence d'hyperespace digne de Star Trek et de Star Wars réunis ! :)



Je décide ensuite de soigner l'apparition de la nouvelle planète à la sortie de cette séquence.

Je demande ainsi à CLAUDE de réaliser un zoom progressif de l'astre, depuis le centre de l'écran jusqu'à atteindre sa taille normale, afin de simuler son approche en trois dimensions.



La petite saccade durant le zoom est due à la rotation de la planete qui continue de s'opérer... mais c'est le (faible) prix à payer pour une animation réaliste et spectaculaire. ;)

À ce stade, notre petite démo commence à prendre une tournure particulièrement intéressante !

Mais il me reste encore un peu de mémoire vive disponible, que je pourrais mettre à profit...

C'est alors que me vient une idée un peu folle... Un véritable défi, peut-être même insurmontable pour CLAUDE !

Dans L'Arche du Capitaine Blood, il était possible de survoler la surface des planètes grâce à une animation en fil de fer, certes pas très folichone, mais qui faisait tout de même son petit effet immersif.



Et si je demandais à CLAUDE de réaliser une séquence similaire, mais cette fois... en Voxel 3D !!!

Pour lui donner une idée du résultat souhaité, je lui transmets un nouveau GIF animé, extrait cette fois d'une séquence de Comanche, un simulateur d'hélicoptère sorti en 1992 sur PC et qui avait inauguré la technologie Voxel Space pour afficher le relief de ses décors.



Autant dire qu'en rédigeant mon prompt, je ne sais absolument pas à quoi m'attendre.

CLAUDE lui-même reconnaît que le challenge est intéressant... mais extrêmement difficile à relever.

Pourtant, contre toute attente, et au prix de quelques compromis techniques (réduction de la taille de la fenêtre d'affichage, tramage, abaissement de la fréquence à 12,5 FPS, suppression des déplacements latéraux...), un résultat finit par voir le jour !

Et je dois avouer que, même si l'image ressemble parfois à une véritable bouillie de pixels, l'effet est plutôt rare sur CPC !



Et pour cause ! Car c'est là que réside toute la prouesse de CLAUDE : le relief survolé n'est absolument pas généré au hasard. Il correspond exactement au tracé fractal de la planète !

Autrement dit, lorsque vous survolez une montagne ou un lac, vous retrouvez précisément cette même montagne ou ce même lac sur la surface de la planète en rotation !!!



Par la suite, CLAUDE me propose différents filtres et optimisations pour améliorer encore le rendu visuel. Mais il faut bien reconnaître qu'il sera difficile de rendre cette représentation beaucoup plus lisible compte tenu des contraintes de la machine...



Enfin vient le moment de s'occuper de la partie sonore.

Je sais bien que, dans l'espace, personne ne nous entend crier. Mais il faut tout de même reconnaître qu'un vide sonore insondable n'est pas des plus attrayants, surtout sur une machine équipée d'une sympathique petite puce Yamaha !

CLAUDE se charge donc de composer quelques bruitages appropriés pour accompagner les différentes séquences de la démo.

Pour terminer, je lui demande d'effectuer une dernière passe sur l'ensemble du code afin de l'optimiser au maximum. Il supprime quelques lignes et variables devenues inutiles, compacte certaines données et réalise plusieurs ajustements...

Le résultat est au rendez-vous : il parvient ainsi à garantir une fréquence de 12,5 FPS pendant le survol de la planète et de 50 FPS tout le reste du temps.

Tout aurait pu s'arrêter là...

Mais c'était sans compter sur mon éternelle envie d'aller toujours plus loin !

Si le survol en Voxel constituait indéniablement une prouesse technique sur CPC, je dois bien reconnaître que son rendu esthétique ne me convainquait finalement qu'à moitié. À force de visionner l'animation, j'en venais même presque à regretter le bon vieil affichage vectoriel de L'Arche du Capitaine Blood...

Il ne tenait donc qu'à moi (et à CLAUDE !) de reprendre cette séquence pour l'améliorer, sans pour autant en trahir l'esprit.

J'ai donc demandé à CLAUDE de revoir sa copie et de repartir cette fois de la routine originale du jeu.

Après plusieurs échanges, discussions, ajustements et quelques concessions techniques, nous sommes finalement parvenus à une version nettement plus aboutie !

Désormais, l'animation du survol vectoriel tourne à 25 FPS, ce qui apporte une fluidité remarquable aux déplacements.
Pour améliorer la lisibilité du relief, les lignes continues remplacent les simples points. Le nombre de lignes a également été augmenté afin de donner davantage de consistance au paysage, tout en conservant la même taille de fenêtre d'affichage (il y a même deux colonnes de pixels de plus que dans le jeu, lol !).



Enfin, il est maintenant possible de se déplacer librement dans les quatre directions à l'aide des flèches du clavier.

Et, cerise sur le gâteau, le relief affiché correspond toujours exactement à la topographie fractale de la planète en rotation !

Qui dit mieux ?

Il ne me reste donc plus qu'à vous proposer le fichier DSK de cette petite démo interactive, fruit d'une expérimentation aussi amusante qu'étonnante !

Ne parvenant décidément pas à départager les deux approches, tant sur le plan technique qu'esthétique, j'ai finalement décidé de conserver les deux versions sur un seul et même DSK : l'une avec le survol en Voxel, l'autre avec le survol vectoriel.

Un petit menu vous permettra de choisir votre version préférée dès le lancement du programme.

Et voilà comment, à partir d'une simple routine extraite d'un jeu de 1988, une petite idée lancée presque par hasard s'est progressivement transformée en véritable exploration spatiale sur Amstrad CPC... Le tout devant tenir dans 64 Ko !

 

Commandes


Pendant la phase de rotation de la planète

- Barre d'espace : déclencher la destruction de la planète.

- Touche L : passer en mode survol de la surface.



Pendant la phase de survol de la surface

- Touche L : Retour en orbite.

- Flèche haut :
prendre de l'altitude.

- Flèche bas : perdre de l'altitude.

- Flèches gauche et droite : se déplacer latéralement.

Attention : les déplacements latéraux sont uniquement disponibles dans la version vectorielle !


Pendant la phase de Starfield (après la destruction d'une planète)

- Barre d'espace : déclencher la séquence d'hyperespace.

Le DSK

DSK v1.0 (English version) :

End of File.