Sunday, August 17, 2008

ramno 1/2

Aah. Eh bien finalement, ça n'aura pas été aussi difficile que je ne l'avais cru. Je parle de la possibilité d'avoir plusieurs "zones de stockage" dans un seul fichier .spr, bien sûr. En fait, une seule classe dans tout mon imbroglio était sensible à l'emplacement réel des tiles en mémoire. Il a suffit de l'éditer pour que tout se mette en place. A part ça, il y a juste SpritePage qui a chopé une nouvelle variable "ramno" pour indiquer le numéro du SpriteRam utilisé ...

"Mais par l'espace, pourquoi tient-il absolument à regrouper dans son fichier des choses qui n'ont aucun rapport entre-elles ?" vous demandez-vous (si, si, sondez le fond de votre coeur, vous verrez)

Eh bien, la première raison, c'est évidemment le hardware de la DS. Si on dispose de 640K de mémoire vidéo, en revanche, les différents plans, les sprites, etc. utilisent généralement des zones mémoire séparées. Or, si je pourrais me satisfaire d'avoir Bilou complètement séparé de mon décor de forêt, l'appleman, le petit ver et d'autres éléments font un tout avec cette forêt. Supposez que je veuille faire un monstre comme "mimerock" dans Keen4: le même graphisme est utilisé à la fois comme élément du décor et comme sprite mobile. Idem avec le "bloc-question" de Super Mario (dans la version ou il 'sursaute' une fois coud-boulisé). Il serait vraiment pénible de devoir gérer un tel bloc dans deux fichiers séparés (croyez-moi: c'est ce que j'ai du faire avec mes Badman sous Game Maker :P)

La seconde raison, ce sont les blocs animés. Reprenons le bloc-question de Super Mario. Il va apparaître comme un seul bloc sur notre map, mais son contenu sera remplacé régulièrement par les étapes suivantes de l'animation. Evidemment, cela signifie que l'animation complète doit bien être stockée quelque-part, et si le nombre d'animations devient un peu important, ce serait ridicule de stocker tout ça en mémoire vidéo (alors qu'on a 4Mo de RAM à côté).

Voilà. Je n'ai peut-être pas convaincu grand-monde mais je me sens mieux. Plus léger d'avoir pu vous confier tout ça. A la semaine prochaine, docteur ?

3 comments:

Anonymous said...

Ma secrétaire vous enverra la facture ;-)

Anonymous said...

ouaip, je pense bien avoir compris (i hope).. en tout cas, je reste skotché sur les limites de la DS coté mémoire au fond !

PypeBros said...

@cj : la DS, c'est une sorte d'Amiga de poche sous stéroïdes, de ce point de vue-là.