ALIEN 3 IA de DEVILSYSTEM (Markus Hohmann)

Implication dans le code et la logique

Hybride (routines clés générées par IA ; assemblées/éditées par un humain)

Implication dans les ressources et le pipeline

Inconnue (dév tiers

Notes de projet et prompts

ChatGPT

ALIEN 3 sur la gamme PLUS, on ne l’avait pas vu venir. Markus Hoffman, alias DEVILMARKUS alias DEVIL SYSTEM, accompagné de son IA préférée, nous apporte des nouvelles du projet.

https://alien3.devil-system.de/index.html?lang=en

1 « J'aime »

Alien3_6128Plus.cpr (512,3 Ko)

1 « J'aime »

Aller faire un tour sur la page de l’auteur qui explique et présente son projet, et qui en plus propose son travail gratuitement, c’est bien aussi.

1 « J'aime »

Dans l’espace, personne ne vous entend crier… :alien:

2 « J'aime »

C’est sympa, mais un bon portage d’« ALIEN NEOPLASMA » pour nos AMSTRAD, ce serait de la balle.

2 « J'aime »

Le défilement est tout bonnement incroyable !

Y a-t-il un moyen de jeter un œil au code ? Je meurs d’envie de savoir comment ce défilement a été programmé. J’ai toujours échoué là-dessus jusqu’à présent. Même une description technique me ferait déjà très plaisir.

Un grand bravo.

Salutations,
S.D.

2 « J'aime »

Markus est toujours joignable. Le lien mène au projet, les coordonnées s’y trouvent. Je crois qu’il utilise une IA spécifique avec laquelle il développe depuis des années. Parfois, il passe aussi sur FACEBOOK https://www.facebook.com/devilmarkus

juste une petite remarque @RETO_AMSTRAD le nom de famille est « Hohmann » héhé

1 « J'aime »

merci

Il se pourrait bien que tes rêves deviennent réalité ,:alien::alien:

1 « J'aime »

« Hein ? Dis-nous en plus, espèce d’alien que tu es ! :smiley: Donc une conversion se prépare… Je réserve le 1 et le 2 !

Je rigole, mais j’espère vraiment que ça se fera, parce que c’est l’un des jeux d’aventure les plus immersifs de la scène micro-informatique. »

1 « J'aime »

Oui, j’ai partagé un peu partout et il s’avère que je fais de la pub pour le gars des albums photo. Je l’ai corrigé plus tard, voilà ce qui m’arrive quand j’écris au son.

1 « J'aime »

Étant donné que c’est pour un Plus, je suppose que ça utilise simplement le scrolling matériel, ce qui est bien plus simple que d’essayer d’obtenir un scrolling ne serait-ce qu’un minimum fluide sur un CPC standard. Il existe encore quelques astuces pour améliorer les choses, mais si tout ce qui bouge est géré par des sprites, la plupart du temps, on n’en a même pas besoin.

Confirmé : il s’agit du soft scroll matériel du Plus avec des sprites.

L’essentiel est de régler les registres R12 et R13 du CRTC sur le début de l’écran. Tu peux le faire depuis le BASIC comme ceci :
OUT &BC00,12:OUT &BD00,&30:OUT &BC00,13:OUT &BD00,10

Le point clé à retenir ici, c’est que si tu entres un grand nombre de ces commandes, le BASIC va faire défiler l’écran (scroll), et il sera donc difficile de voir ce qui se passe. Mets plutôt cette ligne dans un programme BASIC et modifie la dernière valeur, ici « 10 », pour mieux comprendre le fonctionnement.

En modifiant R12 et R13, tu changes l’adresse de départ à partir de laquelle l’écran s’affiche. Ensuite, selon la largeur de l’écran, l’affichage passe à la ligne suivante, et ainsi de suite. Arrivé à la fin de la mémoire vidéo, il reboucle au début ; ainsi, si tu augmentes les valeurs de R13 et R12 (en pensant bien à ajouter +&30 ici pour rester dans la plage &c000-&ffff), tu pourras observer le comportement des nombres : additions, soustractions, de combien décaler des lignes entières, etc.

Ce que le Plus apporte ensuite, ce sont deux registres supplémentaires. Cela te permet de décaler l’écran au pixel près, horizontalement et verticalement. En gros, tu fais varier la valeur de décalage de 0 à 15, puis tu la remets à 0 tout en mettant à jour R12 et R13. Procéder ainsi produit un scrolling fluide au pixel (soft pixel scroll). Le même principe s’applique verticalement avec la valeur de scroll doux vertical.

Une fois cela maîtrisé, tu fais défiler l’écran. L’étape suivante consiste à mettre à jour les graphismes.

Pour un scrolling horizontal, tu mets à jour une colonne de graphismes d’un côté de l’écran — le côté importe peu en raison de la façon dont l’écran reboucle — et c’est là que tu injectes les nouveaux graphismes. En faisant défiler tout en injectant de nouveaux graphismes, tu peux ainsi faire défiler une carte entière.

Si tu souhaites faire un scrolling vertical, là encore, tu mets à jour une seule ligne, en haut ou en bas (peu importe laquelle), et tu injectes de nouveaux graphismes pour faire défiler la carte.

Une fois tout cela en place sur le Plus, tu peux positionner librement des sprites matériels n’importe où par-dessus, sans aucun souci.

Si tu développes pour le CPC standard, tu dois calculer l’emplacement où dessiner le sprite en te basant sur l’adresse de base de l’écran et sur les coordonnées x, y de ton sprite. Tu le dessines comme tu le ferais pour un écran statique (bien qu’il y ait un cas où INC HL ne passe pas à l’octet d’écran suivant comme prévu ; tu peux examiner le désassemblage de la routine firmware SCR_NEXT_BYTE pour voir une méthode, ou bien dessiner le sprite par colonnes pour contourner le problème, diverses méthodes existent).

Après avoir dessiné le sprite, il faudra l’effacer ; là encore, il y a plusieurs approches : redessiner les tuiles situées en dessous, sauvegarder la zone d’écran avant de dessiner pour la restaurer ensuite, la copier depuis une autre version intacte de l’écran… les possibilités varient.

Un scrolling plus fluide sur CPC (sans utiliser le Plus) peut être réalisé de différentes manières, mais ne t’attends pas à obtenir facilement la même fluidité horizontale que sur Plus ; sur le plan vertical, plusieurs approches existent.

Y a-t-il des points précis sur lesquels tu as besoin d’aide ? Dis-le-moi, et avec un peu de chance, on trouvera une solution pour que tout devienne limpide.

5 « J'aime »

J’ai bien essayé plusieurs fois en utilisant l’émulateur intégré sur le site du jeu. De ce que je vois, c’est un portage direct de la version C64, donc aucun travail n’a été fait pour affranchir les graphismes de la limitation des 3+1 couleurs. Mais bon, j’imagine qu’on ne peut pas encore demander ça à une IA. :stuck_out_tongue:

Est-ce que quelqu’un a lancé le jeu sur l’un des émulateurs habituels ou même sur un vrai Plus ? Je me demande si ces incohérences dans les mouvements des sprites viennent du jeu lui-même ou de l’émulateur intégré.

2 « J'aime »

Merci pour la précision concernant le « PLUS ». Cela m’avait échappé et j’étais déjà incroyablement surpris. Pour rien, à ce qu’il s’avère maintenant.

1 « J'aime »

Merci beaucoup pour ta proposition ! Je n’hésiterai pas à revenir vers toi.
(J’avais jadis essayé de programmer un jeu similaire à ZAXXON sur le CPC 6128 (sans Plus). J’avais déjà lamentablement échoué dès la conception du moteur de jeu…)

1 « J'aime »

Cela me rappelle la démo « Isometrikum » de Vanity :

https://www.youtube.com/watch?v=T5SACesODy8

Un scrolling diagonal fluide et rapide sur un système non Plus. Mais ce n’est vraiment pas simple à programmer.

2 « J'aime »

MERCI pour le lien ! C’est tellement bien fait ! Je n’ai pas la moindre idée de la façon dont on programme un truc pareil sur CPC 6128.