Showing posts with label gmaba. Show all posts
Showing posts with label gmaba. Show all posts

Thursday, March 25, 2010

LE Bilou's Book

C'est un cadeau royal que mon frère me fait là! La toute première instance du Bilou's Book, reprenant mes p'tits dessins les plus aboutis sur ces 10 dernières années en un album "extrafilm", avec quelques extraits de ce blog, et une petite rétrospective du projet. Je devrais être en mesure, d'ici quelques jours, de vous permettre de l'avoir vous aussi.

Les épisodes du premier tome ("green woods") sont étonnamment bien rendus, de même que les quelques interventions des soldats-crayon. Je transmettrai à mon frère les fichiers initiaux des planches colorées, histoire qu'il puisse les mettre à résolution maximale. On a par contre été tous les deux un peu déçu du résultat "jpegifié" du pixel art, en particulier avec le fond mauve de SEDS ou du RSD Game-Maker. Si quelqu'un a des conseils dans ce domaine-là, je suis preneur ^_^

I think my brother offered me my best birthday gift ever since I stopped receiving LEGO blocks: the first tome of the Bilou Book, printed on glossy paper, including the comic strips "crayon & sharpenher", "sponge bop",
"inkjet escape" and other blog heroes. It also features a surprisingly hi-quality set of the early "green woods" comics, and of course, bits of this very blog, detailing the story of a 15-year-long project.
We'll work on making it available to all Bilou's fan as soon as possible.

Ca y est ? vous avez compris comment Apple Assault est revenu en première ligne ?

Son vrai titre, c'est "Guru Meditation, a Bilou's Adventure". Les posts qu'il reprend sont donc regroupés sous le label "gmaba".  

Sunday, October 04, 2009

L'île des colons -- that was Bilou RPG

Je m'offre un petit moment de nostalgie... En cherchant "Bilou et son astro-flasheur à perforation en vrille" pour mon frère, j'ai repris une série de captures d'écran (vus sur twitter) d'un de mes plus gros projets en QuickBasic: Bilou's Quest. Un Zelda-like dont j'ai retrouvé une version sur diskette en fouillant chez mes parents il y a quelques semaines de ça. Le montage n'est pas génial: à l'époque de la sauvegarde, j'étais alors occupé à remplacer le joystick par la souris, ce qui fait que la version récupérée a besoin de la souris pour diriger Bilou et d'un gravis 4 boutons pour parler, soulever, etc. Bref, j'ai triché en démarrant les fichiers .BAS directement.

I'm taking you back 15 years ago, with a couple of screenshots i've taken this morning. Here comes the island that Bilou explores in Bilou's Quest -- one of my largest QuickBasic games. I recovered a backup on a floppy a couple of monthes ago and finally managed to make it run again ... well, sort of. I agree there isn't much to be proud about anymore: that's just a nostalgic memory, and the first occurence of Flower Power and Badman in pixels.

Du coup, je goupille comme je peux, je remplace les écrans auxquels je n'ai pas su accéder par des captures de l'intérieur des maisons et des grottes, etc. Bon, je vous le concède, en dehors de l'aspect "nostalgie", il n'y a pas grand-chose à en retirer. La maniabilité était innomable, les graphismes de Mystic Quest sous GameBoy sont bien plus réussis, le scénario manque cruellement d'inspiration, etc. Rien qui ne justifie que je cherche à en tirer une adaptation DS, quoi. Mais en son temps, c'était chouette de bosser dessus ;) Et puis, ne lui retirons pas sa valeur essentielle: c'est un projet qui a été transformé en un jeu. Compte tenu de la quantité impressionnante d'idées de jeu que "la farde PPP" contient, Bilou's Quest a tout de même le grade de "réalisation", même si ça ne couvre que 10% du scénario prévu (à la fin du niveau 1, le joueur n'a pas encore d'épée et ne peut se défendre qu'en lançant des pommes). Merci à mon frère Piet de me le rappeler.

Monday, March 05, 2007

Vous courriez ? J'en suis fort aise! Eh bien, Sautez, maintenant...

Je discutais DS et bilous avec Dider, mon beau-frère informaticien, et je me rends compte que des techniques que j'ai apprises "sur le tas" avec mon Bilou's Adventure en QuickBasic peuvent parfois être pas si évidentes que ça pour des personnes qui ne baignent pas dedans depuis 15 ans ^_^

Outre les aspects techniques qui font que les images du jeu s'affichent convenablement, une question-clé était "mais comment programmes-tu les murs, les sauts, etc." Rappelons-nous tout d'abord que sur une console de jeu, l'écran (en tout cas pour les modes 2D) ressemble plus au carrelage d'une salle de bain qu'à n'importe quoi d'autre. Vous avez de jolis pavés (parfois appelés "tiles" ou "blocs" selon les cas) sur lesquels vous avez amoureusement dessiné des bouts de livre, d'encrier, de crayon, etc. Chacun porte un numéro et il suffit d'inscrire son numéro dans une grande grille pour construire l'image voulue.



Bion. Maintenant qu'on sait ça, on voudrait pouvoir détecter s'il y a ou non un sol en-dessous de Bilou, histoire de s'avoir s'il doit tomber ou rester sur place. Rien de plus simple: on va calculer les coordonnées d'un "point-test" situé juste en-dessous de Bilou et regarder le numéro du pavé au-dessus duquel il se trouve. S'il s'agit d'un crayon, d'une latte, etc. on ne bouge plus! Sur PC, j'avais traduit ça en une division des couleurs du jeu en deux sous-ensembles: les couleurs "solides" (pour dessiner les livres, etc) et les couleurs "de fond" (pour dessiner le fond. warf.), mais sur une console comme la DS, on a généralement plusieurs plans de décor, et pour commencer, on peut tout à fait décider que tout ce qui n'est pas "solide" set sur un autre plan: lors du calcul du "point-test", on verra soit le pavé #0 (du vide), soit un autre pavé, qui indique qu'on a affaire à du sol.





Bien sûr, ce que je fais avec Bilou et ses points-test peut être généralisé à tout le reste du jeu: les éponges, les crayons, les gommes, les gouttes d'encre et tout le tintouin. Il suffira de programmer les routines de déplacement de chaque élément du jeu pour qu'il fasse ses propres tests et réagisse en conséquence (passage de l'état 'sur le sol' à l'état "dans le vide", par exemple). Avec ça, vous ne devriez pas avoir trop de mal à vous construire un petit perso qui tombe quand il n'y a pas de sol et qui avance quand il est au sol.
Maintenant, quid des sauts et compagnie ? Bon, si vous avez déjà suivi un petit cours de physique, vous savez qu'un objet qui bouge a un vecteur-vitesse. En clair, si Bilou avance vers la droite, son vecteur-vitesse vaut p.ex. (5,0), c'est à dire qu'à chaque "tranche de jeu" (ou 'tic'), il sera 5 pixels plus loin sur la droite mais qu'il ne monte pas et qu'il ne descend pas. A l'inverse avec un vecteur-vitesse (0,5) Bilou descend comme s'il était sur un ascenseur. Pour donner l'impression qu'il tombe, il suffit d'augmenter la vitesse verticale à chaque tic. Mieux, même, si je démarre avec (0,-5) et que je garde la politique "augmente la vitesse verticale à chaque tic tant qu'il n'y a pas du sol en-dessous de Bilou", il va faire un gentil saut sur place.

Avec un petit calcul niveau secondaire-sup, vous pouvez même calculer la vitesse initiale à donner à Bilou lorsque le joueur appuie sur le bouton de saut pour qu'il puisse (par exemple) faire un saut suffisant pour grimper par-dessus un obstacle de 64 pixels de haut. Facile: il faudra au moins une vitesse initiale de 11. Et c'est là que le bas blesse: on vient de dire que 8 était un maximum :-/ Résultat,

  • on pourrait diminuer la gravité (se dire que tomber d'un pixel tous les 1/60 secondes, c'est un peu beaucoup: vous avez traversé 1/3 de la hauteur de l'écran en seulement une seconde)
  • on pourrait ajuster nos routines de tests pour qu'une vitesse de plus de 8 pixels sur 1/60 secondes ne pose pas de problème technique
  • on pourrait revoir le modèle du saut et "tricher" un peu avec les lois de la physique...


En pratique, si vous regardez sauter Mario, vous vous rendrez compte qu'on a pas vraiment respecté les bonnes vieilles lois de Newton dans les sauts, et pour cause: le joueur doit pouvoir doser son saut, et la manière la plus naturelle de le faire, c'est de relâcher plus ou moins tard le bouton de saut. Dans la réalité, bien sur, ça ne correspond à rien: une fois que vous êtes lancés, vous ne pouvez plus décider que "oups, non, finalement, il faudrait que je saute un peu moins loin si je ne veux pas me tordre la cheville en retombant".

On pourrait faire comme dans ninji & zarbi et demander au joueur de laisser le bouton enfoncé d'autant plus longtemps qu'il veut sauter loin (mimant alors une "accumulation d'énergie" avant le saut) et ne faire le saut que lorsque le joueur relâche le bouton, mais je vous laisse imaginer sauter de passerelle en passerelle sur ce principe.
Non, ce que l'on va faire, c'est considérer que l'énergie dont notre Bilou dispose pour le saut n'est pas consommée complètement en un instant pour lui donner la vitesse (0,-11), mais plutôt que pendant une première phase du saut, Bilou conserve une vitesse verticale plus basse, mais n'est plus soumis à la pesanteur (en gros, il monte à vitesse constante) aussi longtemps que le joueur garde le doigt sur le bouton de saut. Avec un bon dosage de la durée max de cette "phase ascenseur", on pourra atteindre la hauteur souhaitée sans dépasser la vitesse qu'on s'est fixée.

Reste le coup du saut pendant la course. Le premier jeu bilou était assez déroutant dans ce sens. J'avais voulu obtenir un effet "à la Sonic" ou le personnage saute d'autant plus haut et loin qu'il avait pu prendre de la vitesse. L'ennui, c'est que je passais simplement de (v,0) à (v,-v) au moment du saut. Si vous faites le calcul, ça veut dire que au moment où le jouer appuie sur le bouton, c'est comme si l'énergie de Bilou était subitement doublée ... d'où un saut qui n'a rien à voir avec la vitesse de Bilou à ce moment-là. Idéalement, j'aurais plutôt du prendre quelque-chose comme (sqrt(v),sqrt(v)) pour conserver sa quantité d'énergie ...

On testera tout ça...
Sorry non-frenchy folks, this one is a big too large for inline translation. i might come with a dedicated post with translation when i'll have a bit more free time... and implemented the stuff ^_^ Meanwhile, i suggest that you read Gregg Iz-Tavares and Dan Chang's article on M.C. Kids for the NES, which basically covers the same kind of topic.

Wednesday, February 21, 2007

Monday, October 02, 2006

Santa Dangerous

En voyage à Paris la semaine dernière, avec pas mal de temps "trop libre" après les meetings/conférences jusqu'à ce que ma fée vienne me rejoindre... j'ai bien un peu fait du design pour un "animation editor", mais pas moyen de véritablement développer sur mon Toshiba dinosauresque exempt de drivers pour la DS ... et sans connectivité Internet à mon hôtel :P

Donc, à la place, j'ai gribouillé des petits sprites, dont une série de blocs "sol" pour la forêt de Bilou (à venir) et également un début de décor pour "Santa Dangerous" (ex 'XMASman-vs-packs') ... Si en plus j'arrive à récupérer les pingouins de Badman III, on va s'amuser comme des tifous ;)

PS: le "mockup" n'est pas fait sur la DS, hein, c'est du cut'n'paste dans the Gimp des sprites réalisés avec DS sprite Editor ...

I was in Paris last week, for a conference & meeting, having too much "free" time before my fairy come to meet me for the week-end... Oh, i spent a couple of hours on the "Animator" design for SpriteEditorDS, mainly in the train, but there's no way i could do real coding on my dinosaury Toshiba Laptop without a proper WiFi connection to my main PC ...

So instead, i scribbled a few background blocks for Bilou's Wood level (to be posted later) as well as some material for "Santa Dangerous" (previously known as "Xmasman-vs-packs) ... If i manage to retrieve penguins sprites i did for Badman III, it might really be funny.

PS: the game mockup isn't done on the DS proper atm: that's just cut-n-pasting of the DS sprites (captured through DeSmuME) and arranged with the Gimp :P

Wednesday, August 23, 2006

Premier Bilou sur la DS

CA y est, les gars. Le matériel de GameLand-Shop.fr est arrivé ... supercard, superpass et lecteur de cartes SD en USB, tout y est! Et bonne nouvelle, mon sprite editor marche presqu' impeccablement (évidemment, avec un design aussi minimaliste, je vois mal ce qui aurait pu foirer :P)

Hahaa! My homebrew dev'er hardware has arrived. Supercard, Superpass and SD card readers. I gave my Sprite Editor a real try and it works! Here it comes : the electronic millimetric sheet for drawing things ^_^. Only one sprite and no saving at this time :P
"Ah, si tu mets Bilou dessus, je veux bien regarder", me disait mon e-papou l'autre jour. Bin voilà, en arrivant chez eux, j'ai redessiné un p'tit bilou sur cette grille-là et je lui ai montré ... "Tu retournes aux sources, là", répond e-papou en voyant le même genre de grille que celui que j'ai utilisé il y a près de 10 ans pour tous mes petits jeux... Bin oui, c'était l'idée ... sauf que je ne suis plus obligé de démolir des claviers en faisant "flèche, espace, flèche, espace, flèche, espace" pour remplir un carré :)

"C'est encore plus un retour au source" que je lui dit, "c'est un peu comme si j'avais une feuille de papier millimétrée intelligente qui pourrait retenir tout ce qu'on dessine dessus ... enfin, sauf que j'ai pas encore programmé les sauvegardes, donc si je l'éteint, j'ai perdu mon Bilou".

Thursday, March 09, 2006

souvenirs, souvenirs

J'ai réussi à recréer une image jouable de Bilou en QuickBasic ... en tout cas avec l'émulateur QEMU.

l'ennui, c'est que le jeu se gèle dès que le son est utilisé ... faudra que je cherche un autre émulateur PC...



cj, Posted on Tuesday, 23 May 2006 at 3:38 PM

et faudra que tu me files l'archive ::)

whyme_t, Posted on Thursday, 09 March 2006 at 8:35 PM

Looking good Pype! :) Good work!

Tuesday, February 21, 2006

#! /bin/bash >/dev/bilou

Toujours dans le cadre de la "school zone", et pendant que Cyril est occupé à modéliser un crayon, je m'essaie à la 3D avec un personnage beaucoup plus simple: BangBash ... oui, vous avez raison: c'est bêtement un point d'exclamation avec des yeux, le genre de perso qui illustre assez régulièrement les articles que je relis ou les rapports des étudiants.

A priori, pas grand-chose à faire faire à un tel personnage, excepté le faire avancer en sautillant sur son point ... ouimaisattends ... dans Unix, les "scripts shells" (ce qui remplace les .bat de windows) commencent tous par les caractères "#!" suivi du shell à utiliser: /bin/tcsh ... /bin/sh ou /bin/bash ...

Still in the 'school zone' theme, while Cyril is busy creating a 3-D model of my pendat, I'm giving a try with a 'simpler' character: BangBash. Yes, you're right: that's just an exclamation mark with big eyes. The kind of 'character' I frequently draw on students' reports and papers as I read them.

You can't expect much moves from such a monster, though. It move around doing small hops, and that's ... hey ... waitaminute. Unix shell scripts all start with a '#!' sequence (called bang-thing) followed by a shell name to use, like /bin/tcsh, /bin/sh .... or /bin/bash. And well, you read English, so I don't need to tell you what 'to bash' means, right ? well, so here is BangBash, the Bang-character that can bash you so hard you'll fly to the closest wall. Let's see if I can find a soft to animate him ...

Ajoutez à ça le fait que "bash" signifie quelque chose comme "coller une mandale au point que tu vas te retrouver scotcher au mur" en anglais et vous avez une vague idée de ce qui a pu me donner l'envie de faire tournoyer "BangBash" autour de son point au ras du sol pour essayer de choper Bilou et de l'envoyer valdinguer au cinq-cent-mille diables (HP -50 garanti)

Plus qu'à déveloper le soft pour animer le perso, maintenant :P