Thursday, March 13, 2008

Codez un Worms en Basic

Un article assez sympa dans le webzine "QB Express" s'attaque à la réalisation d'un worm-like en Basic (eh oui. Il y a encore des utilisateurs de BASIC de nos jours ^_^). Je ne vais pas tout traduire, mais il y a quelques points intéressant que j'aimerais partager:

  • la map est ici définie pixel par pixel avec un seul byte par pixel qui permet à la fois de choisir la texture à appliquer (0=ciel, 1=terre, 2=métal) et la réaction du terrain aux explosions (0=rien, 1=destructible, 2=indestructible).
  • en plus de l'animation d'une explosion, on aura un "masque" qui indique quelle destruction apporter au terrain. En général, on veut un beau cercle, ceci dit. un trou en forme de nuage, ça fait moins sérieux. Pour appliquer une explosion, il suffira de parcourir à la fois le masque et le terrain, genre if (explosion(i,j)=1 and map(i,j)=1) then map(i,j)=0.
  • lors du déplacement d'un Worm, ce n'est pas un pixel qui est testé, mais tous les nouveaux pixels qui seront occupés par le ver. (c'est à dire les pixels rouges sur l'image)
Et à y repenser (et à re-regarder les tiles de Fury of the Furries), je me dis que c'est sans doute comme ça que mon bon bieux furry fonctionnait. le moindre pixel de décor était "solide" (même le bout d'une feuille). Il y aurait donc du boulot si on voulait porter le jeu sur une console comme la DS (rien d'infaisable, mais du boulot quand-même).

No comments: