Ce que je voulais à l'écran

Un décor qui glisse, doux et continu, au pixel près. Pas un défilement par paliers qui sautille, pas une image qui se déchire quand le héros avance. Le genre de fluidité qu'on ressent plus qu'on ne remarque, et qui fait dire tout de suite que le jeu est bon.

Le souci, c'est qu'un Atari de 1989 ne peut pas se permettre de redessiner tout l'écran cinquante fois par seconde (et je n'ai pas attaqué le STf ...). C'est trop de travail pour le processeur, surtout s'il doit aussi animer le héros, les ennemis et la logique du jeu. Si j'avais redessiné le décor à chaque image, il ne serait rien resté pour le reste.

La fausse piste

Mon premier réflexe a été de me dire qu'il fallait redessiner malin, recopier seulement ce qui change. Mais même optimisé, recopier le décor en continu reste trop lourd pour la machine, et ça se voyait : le défilement traînait, le reste du jeu ralentissait avec lui. Je cherchais à faire vite une chose qui, en réalité, ne devait pas être faite du tout.

La solution : laisser le STe faire le travail

Le STe a un atout que son grand frère le STf n'avait pas : il sait déplacer son affichage tout seul, au pixel près, sans demander quoi que ce soit au processeur. Plutôt que de faire défiler le décor en le redessinant, je prépare une bande de décor plus large que l'écran et je demande simplement à la machine de regarder un peu plus à droite à chaque image. Le décor glisse, et le processeur, lui, n'a rien fait. C'est ce qu'on appelle le scroll matériel.

Il restait à régler une astuce de la machine elle-même, qui demandait à ce que les sprites s'effacent et se redessinent au bon moment pour éviter qu'ils clignotent ou laissent des traces. Une fois cette synchronisation calée, l'image est devenue parfaitement nette en mouvement.

Le résultat

Un défilement pixel par pixel sur STe, fluide, sans clignotement, et qui ne coûte presque rien à la machine. Tout le temps que je n'ai pas dépensé à faire bouger le décor, je peux désormais le consacrer au héros, aux ennemis et au jeu. C'est la fondation sur laquelle reposera le reste : sans ce défilement propre, rien d'autre n'aurait l'air vivant.

Télécharger morteveille-003-hwscroll.prg (2.2 Ko) - Archive historique de cette étape. Flèches pour bouger, haut pour sauter, fire pour quitter. Pour la version actuelle du jeu, voir la page d'accueil.

Prochaine étape

Les collisions avec le décor et des niveaux plus grands. Le joueur pourra marcher sur les plateformes, être bloqué par les murs, et explorer des espaces bien plus longs que ce que l'écran montre d'un coup.