Showing posts with label berrybat. Show all posts
Showing posts with label berrybat. Show all posts

Tuesday, June 23, 2026

Les todos du printemps

Toujours en mode "post-desktop". Toujours avec mes carnets qui me servent entre-autres à suivre la progression (lente mais présente) du projet "dreamland". Tout le jeu, avec ce genre de carnet, c'est d'arriver à conserver facilement accessible les choses qui sont encore pertinentes. Souvent, ça passe par un coin de feuille sur lequel je vais me faire une espèce de petit index illustré des pages sur lesquelles j'ai encore des cases de "todo" à cocher ... régulièrement quand la dernière page de ce genre a perdu son statut de "priorité absolue".

Working without a desktop ... without a central unit where your project has its home and grows ... it has slowed me down for years until I opted for making the new home for my project to be made of paper instead. But that means I need to dig older contents into newer pages on a regular basis. And part of the solution for me was that this notebook hosts everything I need to keep track of.

A trick I've started using lately was to make visual/graphical table-of-contents towards past pages, in this case, all the pages where I have "TODO" items still pending, like a small mushroom getting hit by an apple to remind of the todo-state-machine that guided me through latest screenshot saturdays 

C'est évidemment la page 61 qui a ramassé le plus de cochettes ces temps-ci, avec les interactions autour de Funghi et les Applemen, au point qu'il a même eu droit à sa petite barre de progression.

D'autres points avaient été relevés lors du feuilletage et vont se retrouver grisés: ils ne sont pas utiles pour proposer une "première démo" de Dreamland. C'est le cas pour les ajouts juteux autour du poing-écrabouilleur de la pyramide. Oui, ce serait plus sympa qu'il fasse de la poussière, qu'il fasse trembler l'écran etc. mais on peut très bien tester le jeu sans rien de tout ça.

There are a good number of the other todo items that are linked to water interactions and swimming but that's no big surprise: water and swimming have been added over the previous year to an engine that was unable to handle that before, so there are plenty of little things left to tune or fix.

Once I was done with that first sweep, I tried to rationalize: I'd like to be able to let people play the game as early as I manage, and many of the todo items, while valid, aren't needed before people play. Sure, big smashing punch looks better if it triggers clouds of dust and shakes the screen as it smashes into the ground, but none of this is a blocking point if it's missing ... that's why the punch "icon" is greyed out. 

Si la page d'index visuel correspond à un moment-détente, comme certain(e)s feraient des mandalas, il y a aussi des petites notes beaucoup plus gribouillée sur des choses à corriger saisies au vol pendant que l'un ou l'autre essaye le jeu. Mon frère est particulièrement redoutable à ce numéro-là. Mettez lui un de mes programmes entre les mains et il va vous le soft-locker ou pire en moins de 2. Il aura fallu pas loin de 3 reboots pour qu'il puisse lancer une pomme sur Funghi le week-end dernier ^^".

Et comme vous pouvez le voir, c'est beaucoup autour de l'eau que j'ai pris du retard. 

And yeah, many of the items in those sub-page are less eye-candy than the index. Many of them are on-the-fly sketches of something my brother or my son or someone encountered while testing the latest version on my NintendoDS. Sometimes they are summaries of other TODO items grouped according to the tools/energy I'll need to tackle them. I can't really setup WiFi transfers through my NUC-cube while the dinner is cooking. I won't have my blog at hand to remember me what I wanted to draw on the NDS once I'll be in a no-WiFi zone with my DS around. I'd better focus on editing code once I'll be in the good setup to edit some code, etc.

Il m'arrive aussi de temps en temps de faire une version structurée différemment de ces todo-index, où je re-trie les check-box en fonction de ce qu'il va me falloir comme matériel pour avancer: la DS elle-même, le laptop, le "cube", un moment WiFi ... 

L'idée est d'essayer de mieux grappiller les moments disponibles et ne pas retomber sur "ah oui, il faudrait faire ça ... ah mais non, il faudrait d'abord que je mette à jour Bilou.cmd et je n'ai que la DS" quand j'ai une petite demie-heure qui se dégage.

Et forcément, c'est dans ces moments-là qu'arrive une idée du genre "mais oui! faire des ricochets sur l'eau avec les pommes!" ou "les chauve-souris cessent de vous pourchasser si elles rencontrent de l'eau (façon essaim d'abeilles Disney ;-) 

And of course, I have to accommodate for the fact that ideas pop up when they feel it, not when I'm in front of a nice blank page on which a big title has just been polished :P

edit: for the next week-end, analysis and preparation happened thanks to the cube serving the repository over WiFi to the boox sketchpad and then coding happened early in the morning, outdoor in the Virtual Machine of That Other Laptop (better battery, awful keyboard) through sshfs as the files and compiler were hosted on the cube too but the emulator ran within the laptop. At least, the 1st half-hour session was outdoor then the rest was coded on the "dining" table next to the coolness dispenser. That allowed me to have 3 items done (that's completing the page 61) and 2 screenshot saturday released :P      

Tuesday, June 25, 2024

Baies pas mûres

 

Eh si, il me reste encore des gribouilles du 1er Janvier 2022 à poster ... dont cette idée d'un berry-bat pas encore mûr qui essaie de se s'attaquer à Bilou mais qui reste attaché à sa branche ... qui a bien fait rire les gens qui l'ont vu, d'ailleurs.

Mais pourquoi, me direz-vous peut-être ? Eh bien outre son rôle de bow-wow rigolo, ces baies encore vertes sont plus dures et pourraient donc rester à trainer sur le sol une fois assommées par un saut. Quelque-chose qui pourrait se révéler utile dans les montagnes, par exemple, où les Applemen ne poussent pas...

There are sketches in a notepad, which were drawn on new year's day two years ago and that haven't been blogged yet. This is one of them. J.L.N and I were revisiting the green zone baddies and came up with a variant of the berrybat that isn't ready to leave the vines. 

It would play a bit like a bow-wow, it would be green, to show it isn't matured, and it will likely be a challenge to animate, especially if I want the vines to be a bit flexible (at least, flexible enough to justify they cannot suport Bilou's weight). But they would be harder than their matured, flying counterpart, meaning that they would stay around once stunned, could be picked up and thrown on things to stun them.

Il était aussi question de s'en servir pour faire enfler certains piafs et s'en servir comme plate-forme.

Wednesday, June 05, 2024

Les cages

Délivrer des animaux dans des cages, c'est tout à fait dans les attributions d'un héro tout rond tel que Bilou ... Le fait de les délivrer, ça justifie qu'ils soient disposés à aider Bilou malgré la difficulté apparente, et ça donne des combinaisons clé/serrures pour le level design. 

Mais une question restait sans réponse: "qui les a mis en cage" ? Et qu'est-ce qui a pu motiver ça. C'est pas comme si on avait un Bowser dans l'univers du jeu ... J'ai posé la question à J.L.N en fin de promenade, et il m'a proposé une cage-à-pattes qui court derrière les oiseaux pour les enfermer. Sympathique assurément, mais d'un point de vue game design, ça pose plus de question que ça n'en résout ... mais ça m'a inspiré une variante des berry-bats qu'on pourrait baptiser cage-berries, une sorte de plante pirhana qui ont la dent longue.

So, there shall be mountain peaks and gaps in-between. There shall be ropes that Bilou can hang to. That last part has became almost a mandatory part of platforming since Rayman Origins (or even New Super Mario Bros ? ). So at some point, I figured out that I could replace the need for "wide floating things" by "ropes carried by two round-shaped birds".

That sounds like a nice gameplay idea, so I wanted to extended with key-and-locks mechanics with caged birds. And unfortunately that got me trapped into a design pitfall: how did they got trapped into cages ?

I know, the question is fairly irrelevant in terms of gameplay: when you knock a question block in Mario, you don't worry about who has been placing coins in there and why. But it turns out I do when it's my own world. And since I've long decided that there is no global invasion army in Bilou's Adventure, I don't have any off-the-shelf baddies that could have captured all the helpful birds.

Hopefully, when I asked J.L.N about it, he suggested some legged-cage that would have caught them on its own. Something reminiscent of legged-chests in recent platformers, I guess. That might have worked, but that triggers other game design questions like "how fast should it run away", "can it leap over small gaps", which I'd rather not address because all I truly need is a cage to lock the bird in it.

His suggestion did inspire me sort of giant berries with fangs that locks the bird in. It's not moving much as the berry is still on its vine, but it could move enough to make animation interesting. It integrates quite well with the return-of-the-berrybats already envisioned for Peaks Zone. I could give it a frog-tongue to catch back birds if we stay too close ... and above all that, J.L.N likes it ;)

Saturday, February 04, 2012

Berry Bat Things

Hey, there! Cleaning up and tuning in are done. If you enjoyed once AppleAssault, but then stopped playing it because you didn't feel the challenge anymore, here's an update that you might love: AppleAssault -- BerryBat Things. The idea is simple: you've got limited time to clear up a level. As long as you punch applemen out of the arena, nothing bad will happen... But if you get lazy and that the applemen count remains the same for too long, a berry bat will come and tease you. You could manage to get rid of it, of course, but then another one will come soon, and then again another and another, again and again until you surrender (or focus on punching Applemen, after all).

So how comes you're still reading this ? Go and download it! -- oh, wait. Better pick the final release

Bilou! Le revoilou! Ok, je suis supposé bosser sur la School zone, mais j'ai une très bonne excuse pour recycler AppleAssault en ce début d'année 2012. J'ai enfin intégré les "berrybats" dans le jeu. Si vous aviez fini par faire le tour du jeu de 2010, autant vous prévenir tout de suite: vous allez faire une rechute!

A priori, le principe est toujours le même: assommez les pommes en leur sautant dessus, puis expédiez-les hors de l'arène d'un bon coup de poing. Ouaip. Sauf que maintenant, si vous passez trop de temps sans dégommer de pomme, une chauve-berrie (berrybat) viendra vous tirer les oreilles. Oh, bien sûr, vous parviendrez sans doute à vous en défaire, mais il en viendra alors encore et encore, de plus en plus vite. Jusqu'à ce que vous vous décidiez à vous concentrer sur la mission première: virer les pommes.

Prêts ? Moteur ... et .... Action!

Oh, and btw, make sure you're voting for the "success" of the new features in the side panel if you've played to v1.4 as well ;)

Thursday, January 26, 2012

Dans le temple perdu

Un temple, quasi-inaccessible, témoin d'une civilisation disparue ... un endroit imprégné de mystères et de questions sans réponses. Depuis que mon frère a composé le thème "Maya Zone" pour "Logic Labyrinth II", je brûle d'en faire un niveau de jeu vidéo. Du coup, je le remets sur la carte en reprenant le synopsys de Bilou en main.

Oui, mais le temple de quoi ? et qu'y affronte-t'on. Le premier point détermine le look à donner au niveau ... le 2eme conditionne le gameplay et l'esprit du niveau.

Le déclic, ça a été d'y implanter les lianes de la forêt. Des berrybats dans le temple perdu ...

I think I at last managed to turn the two words "lost temple" into some interesting and original design idea for both monsters and area look. I have studied art of Rayman and Shantae closer, sketching some original derivative here and there, keeping them secret until I'd have something coherent -- although it isn't pixel art and certainly not a playable demo yet. But let's face it: how would a playable demo "protect" my idea better than a sketch ? It's not like I was trying to win a race with a competitor here, not willing to let X know what I'm doing. Sure, I don't want the idea to be ripped, but I can't prevent someone else to do the same. So I bet my best defence is to do it publicly.

But anyway, just look at that "golem" thingy, animated by the berrybats vines (with berries too young to turn bats :) -- *that* will put you into trouble when you'll play the level ... well, if you manage to find the level in the final game, because it's not called "lost" temple in vain. Trust me: I won't reveal you the slightest bit of information on how you'll get there.
Allez, encore un petit effort. Des berrybats, oui, mais pas tout seul. Et si ... et si les lianes vivantes s'emparaient (au sens propre) des ruines du temple pour construire un golem géant ...

Là, je tiens mon idée de design. Le truc inédit, qui donne une identité propre par rapport à Lost Vickings, Rick Dangerous, Sonic et même Rayman. Alors je le poste, pour marquer l'antériorité. Voilà. C'est mon idée, j'en suis fier. Elle s'appuie sur 3 ans de marquage de favoris dans DeviantArt sans pour autant copier un design de quelqu'un d'autre, je pense. L'imagination est notre ultime frontière. Voici pour vous une planète supplémentaire, aux portes de l'inconnu pour vous lancer à votre tour dans les confins inexplorés de l'imaginaire vierge. Have fun.

(merci à Cyril et son Sony pour les photos, parce que j'aurais jamais trouvé le temps de scanner ça avant ... houuu ... le surlendemain de la St-Valentin ?)

all rights reserved.

Thursday, September 30, 2010

How's the BerryBat doing ?

I'm back at Paris for Yet Another Project Meeting ... A friend and colleague of mine -- who's tracking my homebrew development since he seen a concept sketch at our kick-off meeting in June '09 -- then enquired about the status of the BerryBat. Bad thing is, there is no appearance of BerryBat in Apple Assault so far.

In "Bilou's Adventure" (the long-term full platformer), BerryBat's goal is to put some stress on Bilou's "functional blind spot" ... After some chat, I think it could find a place in Apple Assault where it would fit: something similar to the fireballs of Mario Bros. The player that runs into action in Apple Assault shouldn't be bothered by BerryBats: they would only come to tease the player who thinks he's found a "safe spot" to wait for Apples to lose their strategical advantage. Somehow, they'd be organic "Timed Out" feature.

Thursday, April 15, 2010

Bat Attack!

Almost everything is in place to build Apple Assault except arenas. Yet, I only had "little stars" to check I can shoot something... So I did a silly thing and started shooting berrybats out of applemans when the appleman is surprised to see Bilou. You may think of it as a performance test ... somehow.

Eh bien voilà: techniquement, le code est prêt pour un "Apple Assault". Je n'ai plus qu'à faire quelques "arènes" à coup de level editor. En attendant ... eh bin, j'ai bidouillé le code de l'appleman pour qu'il jette de petites étoiles et des berrybats lorsqu'il apperçoit Bilou. Ca ne sert à rien, mais c'est marrant, et ça me permet de tester les performances du moteur de jeu. De ce côté-là, rien à signaler.

Par contre, dès que j'appuie sur "START", c'est la galère. Avec autant de GOBs qui apparaissent, et vu le comportement des BerryBats (suivre Bilou), je suis régulièrement en contact avec une demi-douzaine d'entre-elles ... Et InspectorWidget essaie de remettre à jour son affichage à chaque fois, avec un "trashing" inévitable, puisqu'il ne peut m'en montrer plus que 3 à la fois. Je prends donc note de ces 2 ou 3 petites choses à règler mais qui n'empèchent pas pour autant de se lancer dans la réalisation du mini-jeu.

A few things have to be fixed, though they do not prevent the Apple Assault game to be started.

  • [done] Appleman remains too often "stuck in the air" after a fall.
  • [done] InspectorWidget should not break more than once per frame when a new monster enters the collision area. Plus I implemented a simple way to switch the focus to other GOBs (just click their "headline").
  • [wish] I need to randomize somewhat the behaviour of berry bats, which tends to "glue" to each other rather than tracking Bilou individually.
  • [done] make sure I can step-debug without having Bilou to jump. now START = debug, L (when debugging) = step and L+START = continue. That allowed me to inspect the stop and to figure out that the "slowing down" of Bilou was not accounting for walls. So you indeed receive a "stop" signal when hitting a wall, but still advance by one pixel into that wall when "stopping". That was enough to have Bilou then "glued" to the wall. It interferes with usual "L+click" commands, though... maybe I should've used R+START.
  • [done] When something land on ground, its speed is adjusted so that it exactly hit the ground. The "impact speed" -- that we'd like to use for bouncing -- is lost. We should keep that in a specific var. Bounces make Bilou harder to control, though.
  • [done] there is a 1-frame lag between sprite positioning and screen positioning that gets visible when falling at high speed (baddies get 'sucked' by the ground). We may want to delay camera move by one frame so that computed GOB coords is indeed valid.
  • [wish] replacement of a "gun" by a new one doesn't seem to work very well. I've got enough "spare guns", though.
  • [done] I miss something to perform x-align-against-block when a horizontal move is cancelled. That's why it's so hard to climb in the tree. There's interference with animation-controlled movements here.
  • [done] Work out a fail-proof initial state for Appleman and Funky Funghi. such failures interfere with game debugger.

Thursday, February 11, 2010

Berrybats!

Bion, ça ne va pas être un post extraordinaire parce que j'ai la crève. Et ce n'est pas une évolution extraordinaire non plus, en fait. C'est juste qu'à additionner 2 et 2, on finit par avoir 4. Et en l'occurence, ici, 4, c'est une baie sauvage volante non-identifiée qui colle Bilou au train dans les bois. Voyez plutôt. Ou jetez un coup d'oeil aux sources de la démo, c'est selon. Bien qu'ayant changé de nom à plusieurs reprises, les BerryBats restent l'ennemi le plus ancien de Bilou (bon, okay, il ne fallait pas trop se forcer pour y penser au départ). J'avais prévu un long post de rétrospective mais je vais plutôt finir de boire mon ciment et retourner me coucher. Je vous invite à retourner voir l'ensemble des posts marqués "berrybat" pour vous faire une idée de ce que j'aurais causé. I'm sick. So don't expect some very fancy stuff around. I just put the last bits together that were needed to have a berry bat flying around and tracking Bilou in the woods. It's mostly harmless at the moment. It's not even "turning back" nor does it sits sleeping until Bilou gets close. But it is the eldest of Bilou's ennemies and I had kept its pixels secret for too long. Enjoy. I'm gonna have my medecine and get some sleep. Enjoy the previous posts tagged "berrybats", that should tell it all. Oh, au passage, faites donc un tour sur Pixelation, j'y avais fortement fait évoluer le "look" des chauves-souris entre leur version "pomme" et leur version "baie".

Saturday, February 06, 2010

grimpons, grimpons

Bon, c'est pas le tout de dessiner des pixels de lianes/vignes sur lesquelles grimper. Maintenant, il va falloir coder ça, aussi. La base est relativement simple : un nouveau type de tile qui permet l'utilisation du comportement "grimper", au même titre que le sol permet de marcher.

C'est plutôt le passage d'un autre état (à l'arrêt ou en saut) vers l'aggripage de liane qui va demander une attention particulière. Deux éléments entrent en ligne de compte :

  1. le joueur appuie-t-il sur la flèche vers le haut ?
  2. Y-a-t'il une liane à laquelle s'aggriper ?
La deuxième question revient à un test du type "cando(...)", à ceci près qu'il ne fait pas partie du comportement "normal", mais qu'il risque de devoir être évalué depuis les transitions de la machine d'état.

Of course, just having pixels for the vines is not enough: it's time to start thinking about the code that will let us grab and climb them. I have a few technical problems that need to be solved before code can be written down.

One of them is that you can climb a vine (assuming you're on the ground) only when you're exactly below it. From a gameplay point of view, this is unacceptable, so something will be required to make the vines "magnetic" so that the player is automatically placed at the right position when he attempts to climb while being "sufficiently close to the vine".

Second, to be able to grab the vine while jumping, I need to alter the behaviour of "jumping" and "falling" so that it raises an event, which forces transition towards new states to be evaluated. But I do not want such event to be raised at every frame when the player holds 'UP' dpad while jumping. I am still undecided on how I should make the fact that a vine is present available to the state machine expressions -- and potentially, same kind of info will be required for swimming in water and slippering on ice.


Autre petite difficulté technique en vue : lorsqu'on est au sol, il n'y a a priori qu'une position où il est effectivement possible de monter à une liane : quand on est pile sous celle-ci. Du point de vue du gameplay, ce serait l'horreur d'imposer ça et il faudra donc programmer une sorte de "magnétisme" qui positionne le joueur qui tente de monter à une liane juste sous celle-ci s'il n'en est pas trop éloigné. La solution s'ébauche, mais ce n'est pas encore assez précis à mon goût ...

Wednesday, February 03, 2010

Bilou Mining, donc.


Am I ready for this ? ...
Vous n'êtes pas du genre contrariant, hein ? je mets sur "papier" une série de petits jeux rigolos que je pourrais réaliser plus ou moins rapidement sur DS avec Bilou compte tenu du code et des graphismes dont je dispose maintenant, j'organise un petit vote, et qu'est-ce qui sort vaincqueur ? Exactement ce que je suis occupé à faire depuis l'an dernier. Autant pour le vent neuf de l'an dix, tiens. Voyons donc ce que donne le mockup d'arachne réchauffé à la sauce Bilou ...


Arachne's seminal mockup
I guess I'm just happy if Arachne don't kill me for this one. I'm quickly doing a mockup of Bilou in a "mining for ... stuff" minigame, using her own mockup as a base. Indeed, despite all the alternative I suggested, according to the poll, you seem to prefer that I keep focusing on the current line of demos. Since I don't see why Bilou should gather all the apples of a level to clear it, I prefer keeping fruits as "optional" bonuses and claim that the goal of "Bilou Mining" will be to recover all the nuts and bolts from the crashed Astro-cruiser.

On va donc continuer dans l'optique "ramasser les items et atteindre la sortie", mais plus des pommes cette fois-ci. Il me faut des "clés" qu'il est indispensable de collecter, les fruits servant uniquement à juger le "style" -- départager le maximum d'entre les maxima, comme disait Popo. Bin ce sera les boulons de l'astro cruiser. voilà.

Shantae, again
Mais un gameplay "à la Manic Miner" a des exigences tout de même un peu différentes d'un SuperMario. Tout d'abord, le timing est la clé du succès, plus que votre adresse à défier la gravité. Il faudra donc que je revoie l'armement de Bilou.

Ensuite, il faut que le joueur puisse avoir une vue d'ensemble du challenge, ce qui colle bien avec la taille de Bilou, un peu moins avec la hauteur de ses sauts. Finalement, il va falloir grimper à des échelles et ne pas trainer sur des plate-formes éphémères. Et là, c'est plus chaud: je n'ai toujours pas réussi à dessiner des lianes convaincantes en couleur. L'idéal, ce serait quelque chose approchant les arbres de Shantae DS (voir les images de référence en bas du post).


I expect subtle changes to happen on the current gameplay to match that objective, though. At first, jumps should be shorter so that I can put more of one challenge on the screen and have an increased "puzzle" dimension by letting the player observe the level and decide of its strategy rather than reading and reacting promptly as in a SuperMario game. This also suggest that we should have more than stomps to dispatch baddies. Collectible weapons are likely to appear. But most of all, to pack more action per screen, I'll need ropes and ladders ... that is, vines, in this green woods stage. Unfortunately, all my attempts at drawing something (even just slightly) similar to the vines found in Shantae DS is a total wreckage so far.

Je me suis donc fait un petit tour de flickr-vgmaps-f-spot pour essayer de collecter un maximum d'images de référence. Ca a un peu amélioré le résultat mais pas énormément. Je gribouille donc des lianes un peu partout sur des bouts de papier, je m'arrête au milieu d'un niveau dans SPP pour chiper les marqueurs de ma fée et redessiner les haricots magique qui dépassent des nuages dans le monde du ciel. Pour changer, j'ai dessiné d'abord la forme dans un pavé 32x32 et je lui ai donné du volume avant de la "zoomer" en 64x64 pour ajouter les détails et peaufiner le look.

I've collected quite uselessly tons of reference pictures, until I stumbled upon that magical-bean-plant-seen-over-clouds in the Glidy Sky of Super Princess Peach. I loved the simple elegance of that ?-shaped curve that renders all my previous attempts pretty obsolete. And I actually managed to reproduce it by sketching it first on a 32x32 draft (including colors and shading) before I zoomed individual quarters of that draft to a 64x64 canvas that I could further refine. Graphically speaking, I'm quite happy with the result, except that it is completely useless from a gameplay point of view. Still I've used its "curved head" in the mock-up as ladder and as anchor for the "berry-spiders".

EDIT: entretemps, le projet a été renommé "Nuts&Bolts"

Saturday, April 11, 2009

Bubule Warrior

Si vous cherchez à savoir "Qui est Bilou", je crois que ceci est le plus ancien document que je peux vous ressortir. Presqu'une pièce de musée. Gribouillée par mon frère entre deux heures de cours alors qu'il venait tout juste de rencontrer Pierrick, Piet nous fait un petit topo des mouvements de "Bubule Warrior" qui cherchera à retrouver sa belle Raph aux talons pointus et aux cils courbés.

Funny enough, many people on the internet mix up my own identity with Bilou's identity. In the case you wonder "who is Bilou, anyway", this is the eldest piece of museum i can show you. Sketched by my brother while he just met Pierrick, this is where you get a few hints on moves that "Bubble Warrior" would have and why he'll be running through a strange world to save his sweetheart from unknown hazard. It shared most of the previous level design in my earlier Calimero platforming game.

Et avec ça, un bestiaire rudimentaire où l'on voit déjà Bubble Bat (que je suis occupé à transformer en "Berry Bat" après avoir abandonné l'"Apple Bat") et une "space chenille" qui préfigure "Big Caterpillar", le premier boss de Bilou.

La "little bomb" est un clin d'oeil au "Bob Omb" de Mario 3 (et fait probablement un peu référence aux mines marchantes de Commander Keen ?). La "tortue turbo" nous annonce la "turtle zone" et le "tictac bull fire" faisait office de premier boss.

Comme dirait l'autre, ça ne nous rajeunit pas.

Another interesting part was a small list of foes that would be found on the road. Most of them didn't made it through the filter of years, such as one-eyed snail, the turbo turtle and those fire-thrower-bubbles. You'll note the "batbull" that has now turned into the berrybat, but still keep the idea of "a ball with wings". Note, too, the "space caterpillar" that has been the root for World1 boss: BigCaterpillar.
"Little Bomb" is likely a lost tribute to SMB3's Bob Omb, and never showed in any level.

By those ancient times (around 1994), i was just the "pixeler" guy in charge to turn my brother's impressive (;) graphics into pixels into the digital world, usually through millimeter-sheets and DATA lines of BASIC listings.

Piet prévoyait visiblement une sortie sous Amstrad, puisqu'il bombardait Pierrick à la programmation et me reléguait au rôle subalterne de "pixeliseur" (comprenez, retraceur de ses dessins géniaux sur des feuilles millimétrées pour ensuite les encoder sous forme de "DATA 0,0,0,1,3,3,1,0,0 ..." dans un programme BASIC :P

edit: want to read more ? the first ever world map has been scanned too !

Thursday, May 22, 2008

Quelques vieux Pixels de Bilou

Une chose est sûre: Bilou n'est plus tout jeune. Et je ne vous parle même pas du petit personnage "Bubble" de Pierrick, programmé à grand coup de symbol 240, 60, 126, 201, 201, 255, 126,60,231, reprogrammant quelques caractères du CPC64 -- une machine dont l'architecture graphique n'a pas fini de me surprendre... Non.

Bilou n'a commencé à s'appeler 'Bilou' que lors de son portage sur PC, et a acquis plus ou moins définitivement ses couleurs à l'occasion d'un concours "expliquez-nous votre jeu et on le code" qui devait être contemporain de Super Mario 3 ... Auxquels on a finalement jamais participé pour cause de NDA et dont on a d'ailleurs plus entendu parler depuis.

Bilou is certainly not so young anymore. It all started with the "Bubble" character that Pierrick used in his programs on the CPC64 with the "symbol" statement, but it really became "Bilou" (say it "bee-loo") during a video game design contest back in the SMB3 days. While my brother and i finally decided not to run the contest because of the implied intellectual property mess, Most of the Green Zone and its monsters date back from that era. The Appleman, the yellow wood worm, the bumping mushroom, etc.


C'est d'ailleurs de cette époque aussi que date une bonne partie du "bestiaire" (au moins pour la forêt) et les super-pouvoirs de Bilou. A gauche, le désormais célèbre "appleman", le "feuillu" sournois et le "caterpillar" (version normale, pas le Boss, qui n'a jamais été programmé nulle part), le petit ver, le champignon sauteur et le "bubble bat".

A cette époque, évidemment, pas de Sprite Editor convenable, et je n'avais l'accès au PC que 1 heure par jour, et uniquement les mercredis et week-end. Donc le plus gros du boulot se faisait à l'aide de maqueurs micro-fins sur des feuilles millimétrées et de traceuses de cercles. Voilà donc les premiers pixels de Bilou, qui ont été vaguement utilisés pour quelques tests peu concluants en BASIC/VGA -- le temps que je décide que Bilou serait animé "à la rayman" pour fluidifier l'animation ... environ 3 mois avant l'apparition des premières démos de Rayman :P

This was a time where i hadn't any good Sprite Editor at hand, and could only use a computer one hour a day on wednesdays and week-ends. So most of the art was first "rendered" on a millimeter-grid sheet of paper with color markers before it was manually run-length-encoded in a dedicated BASIC program ... maybe. The contest also see the first definition of Bilou's superpowers (he got one extra power everytime he recovers a magic stone) : flying, swimming, laser fire (and protecting glasses), etc.

On voit déjà ici quelques-un des pouvoirs spéciaux de Bilou d'alors: voler (en tourbillonnant comme un hélicoptère), nager, tirs au laser (et les lunettes qui vont avec), et je n'ai pas repris sur le scan la transformation en petit nuage, ni le lancé de Game-Boy qui immobilisait temporairement les ennemis...

Allez, pour la cloture, une image d'anthologie, recodée sur l'émulateur CPC par Pierrick entièrement de mémoire. Ce n'est pas le code source du tout premier Bubble, mais bien de son tout premier adversaire. Ce qu'il y avait de bien, avec le CPC, c'est qu'on pouvait réécrire par dessus certains caractères, sans effacer le fond. Donc il faisait un caractère "balle" en bleu et un second avec le blanc des yeux, deux print et deux locate, et vous aviez déjà un petit perso multicolore.

Tuesday, April 29, 2008

GameObject : public Animator

Bin voilà. Hier soir j'ai fait le point sur tout ce qui tourne autour de ma classe GameObject qui assure la gestion des monstres et compagnie. C'est déjà un peu le méli-mélo, et je dois rajouter là-dessus des objets multi-sprites (pensez à une chenille, et vous êtes dans le bon) et surtout les contrôleurs, capables d'influencer le comportement des monstres en assurant ce que les petits scripts et les machines d'état ne sauraient pas proposer.

Je m'explique.

Prenez un sprite comme le petit ver. Il a principalement deux états (avancer vers la gauche ou avancer vers la droite). Chacun de ces états est lié à une animation (qui entre-autres le fait bouger) et définit les conditions sur les testpoints nécessaires pour rester dans cet état (pas de mur devant lui, et du sol en-dessous). Lorsqu'un des testpoints n'est plus bon, on cherche une transition à appliquer pour passer dans un nouvel état (en l'occurence, il y a une seule transition, vers l'autre état).

En gros, c'est super-simple.

I shoot a picture of my attempt to summarize the OO design of my GameObject class (later on called "GOB" through code and blog) and everything sitting around. Let's see that with a simple example such as the WoodWorm, that simply move forward and backward on platform. The worm has mainly two states depending on its direction. Each state has an associated animation and defines conditions expressed on testpoints that must be met so that we can remain in that state. Namely, when moving to the right, the worm must have some ground behind him and no wall in front of him. When testpoints are no longer valids, we look for a transition that will lead us towards a new (valid) state.

L'appleman, lui, est un peu plus sophistiqué: il se balade également au sol (avec les 2 même états), mais lorsqu'il arrive au bout d'une branche, il peut décider de sauter au sol pour attaquer Bilou si

  1. Bilou est en-dessous de lui
  2. Bilou n'est pas trop loin.
Le contrôleur, dans le cas de l'appleman, est passif: il se contente de lui rapporter sa position relative par rapport à sa "cible" (Bilou) et c'est via les prédicats des transitions (que je n'ai pas encore implémentés :P ) que la décision de faire demi-tour ou sauter se prendra.

More sophisticated GOBs, such as the Appleman, have a behaviour that does not depend only from test points. When reaching the edge of a cliff/platform, the Appleman will either turn back if Bilou is not in its attack range or jump off if Bilou sits below him in attack range. I intend to build that by means of controllers: C++ objects attached to a state that affect either directly (altering speed) or indirectly (indicating the presence of Bilou) the behaviour of GOBs. Even reading the Dpad and moving the hero accordingly can be achieved by a controller.
This should give us flexibility while reducing the amount of CPU power thrown at interpreting scripts.

Si on prend maintenant notre copain AppleBat, il dépend aussi de la position de Bilou pour son déplacement, mais il accélère et suit Bilou. Pour faire ça proprement, je vais laisser à son contrôleur le soin d'ajuster sa vitesse automatiquement pour se dirriger vers la cible. Tout ce que le script aura alors à prendre en compte, c'est le choix de l'image utilisée (pour que l'applebat continue à regarder vers Bilou quand il le dépasse).

Le reste, à mon avis, c'est du détail de bricolage de colle, donc je vous laisse le soin de déchiffrer mes gribouillis en cliquant sur les images si ça vous intéresse.

En d'autres temps, d'autres lieu, tout ça aurait pu faire une bonne autre lettre à Gédéon ;)

edit: partly obsoleted by this post and that post.

Tuesday, April 01, 2008

Appleman

Petit passage dans le bureau de Cyril avant la pause-café... De temps en temps, quand Cyril n'est pas pret, j'en profite pour gribouiller un peu. Ici, c'est l'appleman de la foret de Greenwoods qui y passe. Une petite version "toute normale" d'abord, puis à force (et c'est tout l'intéret du tableau blanc), je me lache un peu et j'essaie des nouveaux concepts...

Premier dans la série : le parapple, un tantinet inspiré par les parakoopas et autre paragoombas de Super Mario. Tombant des hauteurs des arbres, voilà un appleman plus difficile à éliminer, vu qu'il ne suffit plus de sauter dessus. Enfin, si, mais à condition d'y parvenir. On pourrait meme doser la difficulté en lui permettant d'abandonner subitement son parachute si Bilou passe par-dessous.
On peut voir que je m'étais d'abord orienté vers un parachute "normal" avant de prendre ... une feuille d'arbre. Plus sympa, selon moi.

Poursuivons dans la série des délires. Les chauves-souris jouent un role essentiel dans le level-design de la foret. Le hic, c'est que leur concept à elles n'étaient pas terrible. Les "bubble-bat" en mauve et bleu de la version basic ne sont plus vraiment adaptées au jeu depuis que j'ai laissé tombé le bubble-dragon, la tic-tac-bombe et autre escargot-turbo des premières esquisses de Piet et Pierrick... Bref, en écoutant un morceau (virt+beek) nommé "fruitbat", j'ai eu l'idée de transformer nos pommes aussi en chauves-souris. Evidemment, ça ne volettera pas très bien, mais ça ne me dérange pas.

Monday, October 30, 2006

Bilou .. l'ancien et le nouveau ?

Bion, il y a évidemment déjà eu un jeu Bilou, qui était programmé en QuickBasic pour DOS et qui a finalement fait usage d'une bibliothèque SoundBlaster (oui, m'sieur), même si ce n'était pas du grand délire (juste un son "hihoo" au début du niveau, un "uh!" quand on est touché, et encore).
Alors en grand, vous avez un aperçu de ce que ça donnait ... et en petit de ce que ça pourrait donner avec les nouveaux graphismes (pixelisés sur la DS).

Well, there's been a Bilou game in the past already, as you might guess. It was coded in QuickBasic under MS-DOS in '95 or something ... At some point, it even featured SoundBlaster library (oh, it wasn't truly amazing, you know... just some "hihoo" samples when starting the level :P)
So the largest of the two picture gives you an overview of what it looked like. Bilou in the trees, with the running apple foo and the sleepy bat, and the smallest picture in the corner is the latest mockup of the 'green' level with DS-pixels brand-new graphics.

J'ai encore du boulot pour les "feuilles" de mes nouveaux arbres, notamment parce qu'il me manque des couleurs compatibles dans ma palette pour l'instant (elle vient du jeu "Tyrian", qui ne s'est pas embarassé de teintes vert/jaune :P) J'ai essayé d'appliquer les techniques de Dan, mais il y a encore un peu de boulot avant d'avoir un décor vraiment convainquant.
Oh, et j'avais fait marcher la pomme, aussi, mais ça, c'est pas encore top (et je l'ai effacée par erreur hier, donc je pourrai en refaire une nouvelle :P)
Cette fois encore, le "mockup" fait appel à un zoli (?) dégradé pondu par The GIMP ... 'faudra que j'intègre qqch de similaire pour mon SEDS ...

Okay, okay. there's still job to be done, especially regarding the leaves of the tree. Still, i'm missing colours to do that atm. (the palette came from the game "Tyrian" on PC, which obviously didn't care much about rendering trees :P) I tried to apply Dan's techniques (see "Indigo Art" and the "Cute Pixels" post), but here too, there's much work to be done before the background gets really convincing.
I even managed to have the running apple, but it didn't walked exactly the way i wanted (well, it's deleted in a pick-save-slot error yesterday, so i'll have to restart from scratch with the apple, anyway). Note that, once again, Gimp gradients proved quite effective for the backdrop... i should try to implement something alike to do mockups straight in SEDS.

edit : Vous notez l'appleman primitif et un "bubblebat" endormi dans l'arbre.