Mon premier jeu en basic était sympa, mais peu impressionnant. Deux voitures (deux caractères) qui bougent à l'écran en sens inverse, c'est assez peu. Il fallait pour moi passer au niveau
supérieur pour animer plus de choses à l'écran : il fallait passer en langage machine.
Le langage machine est un peu le but ultime de tout programmeur. Ce langage est directement compréhensible par l'ordinateur: il est écrit dans le code que comprend le processeur. Le langage
machine en lui même n'est qu'une suite de chiffres hexadécimaux (de 0 à 255), qui pilotent le microprocesseur de l'ordinateur.
Le Superboard II était piloté par un 6502 de chez Motorola. L'un des micro processeurs les plus puissants et simples à programmer à cette époque. J'ai donc acheté un livre sur la
programmation du 6502 (un livre édité par Sybex, un des principaux éditeurs de livres informatiques à cette époque).
Le livre détaillait toutes les instructions du 6502. Telle instruction correspond à tel code en mémoire. Un programme n'est après tout qu'une suite de codes, de numéros dans la mémoire. Le jeu
d'instructions du 6502 était simple et réellement intelligent. Vous disposiez de 3 registres (des cases mémoires dans lesquelles vous pouviez stocker des chiffres de 0 à 255). Ces registres
étaient nommés A (l'accumulateur), X et Y. Vous pouviez charger ces registres en lisant la mémoire, ou stocker le contenu de ces registres dans la mémoire. Il était également possible de faire
les opérations de base (addition et soustraction) sur ces registres.
Tout cela était finalement très limité, mais suffisant pour se débrouiller, et réaliser des programmes complexes. Le 6502 me fait beaucoup penser aux processeurs RISC, Reduced Instruction Set
Computer qui ont peuplés les Mac des années 1998-2003. Des instructions simples et un processeur rapide pour traiter ces instructions.
Il me fallait donc programmer en langage machine. Livre en main, j'ai essayé d'entrer les chiffres correspondant aux instructions du processeur directement en BASIC. Un travail extrèmement
fastidieux, qui cependant a abouti au premier jeu de "C'est plus c'est moins" en langage machine. Encourageant.
J'ignorais à l'époque qu'il existait des logiciels dédiés à la programmation en langage machine, qui s'appelaient "assembleurs". Le Superboard II étant très rare en France, je n'avais aucun accès
aux logiciels commerciaux pour cette machine.
Je me lançais donc dans la programmation de mon propre assembleur en BASIC. Un programme finalement simple : il demandait le nom d'une instruction langage machine (les instructions avaient des
noms, comme LDA, LDX, STX, STY etc.), puis faisait la conversion entre le nom de l'instruction et son équivalent binaire. Une instruction / un code machine. Certaines instructions avaient des
paramètres, comme une adresse mémoire : l'assembleur les demandait et les insérait dans le programme.
J'ai bien passé 15 jours sur cet assembleur. A la fin de ce travail, j'avais un outil me permettant d'entrer les programmes facilement, et me permettant de les corriger. Je ne pouvais cependant
pas les "debugger", c'est a dire chasser les problèmes simplement. Je lancais le programme, il marchait ou il ne marchait pas.
Avec ce nouvel outil, tout un monde de création s'ouvrait à moi. Les animations à l'écran n'avaient plus de limite, je pouvais bouger tout l'écran en langage machine si je le désirais.
Je me lançais donc dans la réalisation d'un jeu de shoot-em-up. A cette époque, une bonne partie des jeux disponibles dans les salles d'arcade était des shoot-em-up. Space Invaders, Galaxian
etc.
Mon shoot-em-up avait le titre peu imaginatif de "Galaxians" (copie du jeu de salle d'arcade). Il était consitué de plusieurs niveaux différents. Le premier niveau était une pâle copie du
Galaxian originel, avec les graphismes limités du Superboard. Un série d'aliens se trouve en haut de l'écran, vous lance des obus, et vous attaque en descendant. Le deuxième niveau etait plus
original, une pluie d'aliens à éviter. Le troisième niveau, un "boss" était un gros alien à détruire en tirant sur ses cibles.
Un jeu sommes toutes sympa, mais peu imaginatif.
Il va sans dire que j'étais super fier de ce jeu, qui utilisait la machine à son maximum. Un grand nombre d'objets bougeaient à l'écran en même temps. Les machines à cette époque étaient
construites à l'économie: la mémoire vidéo était partagée avec la mémoire normale. La mémoire vidéo du Superboard consistait en 1024 octets (32x32). Lorsque le programme accédait à cette mémoire
pendant l'affichage de l'image sur l'écran, un parasite noir apparaissait. Comme mon jeu accédait beacoup à l'écran, et rapidement, l'image de mon jeu était constellée de parasites qui
perturbaient le jeu.
J'ai beaucoup joué à ce premier jeu, même si son scénario était inexistant, et ses graphismes limités.
Mon premier vrai jeu!