Friday, May 09, 2008

pour reprendre mes vieux jeux sous DS ...

Bon, je vous ai déjà parlé de Badman, un de nos personnages phares sur le GameMaker, et de "comment le fait que les graphismes utilisent des blocs de 20x20 pose problème pour un portage sous DS". Bin hier, je suis retombé sur le plan de mon premier donjon pour "Bilou's Quest", ma petite tentative de RPG en BASIC (avec l'introduction de la souris dans mes programmes QB) qui n'était peut-être pas extraordinaire au niveau du scénario (tout un donjon pour trouver son bouclier alors que l'épée ne sera là qu'au niveau 2, bon ...)

Okay, I've been telling you about Badman lately -- one of our Game Maker titles, and I've been telling too that it used 20x20 pixels blocks and how that was annoying if I was to consider a DS port of the game. Yesterday, I stumbled upon an old map of my first dungeon for Bilou's Quest -- an attempt at the ZRPG style in BASIC and a mouse. Granted, that wasn't my best scenario (forcing the player to spend a whole dungeon to get a shield and one more dungeon to find a sword ?), but I was pretty proud of how it technically turned out. Could a Nintendo DS homebrew be the right way to finally give it the audience it might deserve ?

Soit. De nouveau, dans Bilou's Quest, les graphismes étaient en 30x30 avec des salles de 9x6 "dalles" ... moyen pour le portage pour DS, mais j'ai peut-être bien une piste pour le faire tourner malgré tout. L'idée étant de construire des graphismes de 32x32 qui, une fois "dézoomés" pour faire 30x30, redonnent les images originales. Pas de chance, par contre, je parviens à faire 32->31 (zoom factor 273) ou 32->29 (zoom factor 274), mais pas 32->30 :P Au mieux j'ai un mapping 32->15 ... un peu gourmand en VRAM (4K par dalle), mais comme vous pouvez le voir, je n'avais pas tant de variété dans les blocs (36 à tout casser) et la plupart étaient en 16 couleurs (indispensable pour arriver à afficher Bilou par-dessus à l'époque), donc ça devrait passer. 

Let's see. In Bilou's Quest, graphics are done on 30x30 pixels blocks, each room being 9x6 blocks large. That's not very appealing for the DS hardware that is meant to work with 8x8 tiles (and would prefer 32x32 tiles). But ... how about storing some modified contents in VRAM and use the hardware to slightly de-zoom them so that they are taking exactly 30x30 pixels ?

Unfortunately, I can either get 32->31 conversion (zoom factor 273) or 32->29 (zoom factor 274), but there's no way I can ask for zoom factor 273.5. I could do 32->15, though. That would consume more VRAM (4K per block instead of 1K) but I don't have that many blocks in one dungeon (and most were 16-colors only, or Bilou couldn't walk over them, so these could be reduced back to 1KB). It might work.

Restait à découvrir quels pixels d'une ligne de 32 sont affichés quand on 'dézoome' (indispensable pour avoir de bons graphiques). Je vous le donne en mille: 1357911131416182022242628. Je devrai pouvoir faire pareil pour 32->20, mais là il me faut encore un brin de chipotage pour dire qui va où.

The only remaining thing to find out is which pixels of a 32-pixels line are rendered when de-zooming is applied. Well, that'd be 1,3,5,7,9,11,13,14,16,18,20,22,24,26,28. So I might consider writing a conversion tool soon. Or maybe it is just an instance where I should forget about tiled hardware altogether and use a plain bitmap plane for the background. There weren't much per-tile animation or whatsoever tricks in the game, anyway.

Bon, d'un autre côté, il n'y avait rien dans Bilou's Quest qui nécessite vraiment un affichage par tiles, donc je pourrais fort bien prendre un écran bitmap et faire le rendu comme dans le mode 13h du VGA, en fait.

4 comments:

Anonymous said...

Héhé.. c'était tout de même une jolie réalisation.. avec l'arrivée de Flower Power... le jeu n'était pas allé bien loin à l'époque, mais s'annonçait tout de même comme un bon Zeldalike ;)

Tu n'as plus de screenshot de l'original ... ?

Anonymous said...

Bonjour,
Pour commencer bravo pour ce blog sympa et intéressant.

Une petite suggestion pourquoi vouloir faire un (dé)zoom sur tes sprite 32x32 pour les mettre en 30x30. Construit dans tes sprites 32x32 tes sprites 30x30 et affiche de tel facon qu' ils se surperposent de 2 pixel de largeur et hauteur comme si tu avais des sprites 30x30. La zone non occupée par le sprite 30x30 dans le 32x32 sont constitué de pixel de couleur transparante.
J'ai peut etre pas compris ton problème mais cette solution est peut etre trop simple..

bonne continuation.

PypeBros said...

pour les sprites, oui. L'ennui c'était pour le décor, mais c'est vrai qu'avec seulement 54 dalles visibles à l'écran, les sprites pourraient faire l'affaire aussi pour ça ...

C'est que je n'ai pas bien l'habitude d'avoir autant de sprites à ma disposition ^^"

Merci pour le commentaire, en tout cas.

PypeBros said...

tentative de datation du projet :
- forcément après la rencontre de Pierrick et l'acquisition de l'écran VGA
- un listing très complet estampillé "19/02/1995" (mais n'était-ce pas la fin du projet, déjà ?)
- Forte collaboration de Julien Stassart --> j'avais cours de Math avec Krezensky (3e ou 4e ??)
- Zelda Awakening (étincelle initiale du jeu) est sorti en europe pour Noël '93. Quand Alain nous l'a-t'il prété ?
- les niveaux "plate-forme" pour la forêt existaient déjà (une partie avaient été convertis en donjons :P)
- le personnage de Badman a été créé par Pierrick dans le sprite editor que j'utilisais pour Bilou RPG comme "miniboss" avant d'être promu comme jeu à part entière en Game Maker
- la "page de titre" du projet annonce "VGA/SoundBlaster", par PPP et donne les jeux suivants comme ayant déjà été prévus par PPP : Calimero - Bilou's Quest - Bilou's Adventure - Puissance 4 - Logic Labyrinth - Bilou Sky Quest