Showing posts with label pyramid. Show all posts
Showing posts with label pyramid. Show all posts

Sunday, December 28, 2025

That fist goes SMASHing

It took me about 30 minutes to finally craft the script needed to bring in the smashing fist I had drawn back in February. I'm a bit sorry that it took me so many month to finally be ready to write that script. Part of it because I had not given it any priority over applemen or sliding water, but mostly because finding some time for doing homebrew is more and more complicated, unfortunately ^^".

(screenshot saturday on mastodon and bsky

Similarly to what happened with the rolling appleman, having the bare functionality is just unlocking many other things to do to get it satisfying, like having dust clouds when it hits the ground of having some screen shaking. 

Voià. J'ai enfin transféré les pixels du gros poing écrabouilleur et j'ai même trouvé 2x15 minutes pendant cette semaine de folie pour écrire le script qui le fait monter et descendre. En deux fois parce que le laptop ne tient plus 30 minutes d'affilée. Ça débloque une belle quantité de trucs à faire, mais si vous voulez bien, je vais déjà essayer de comprendre pourquoi je n'ai plus d'électricité depuis le 30 et essayer de faire réparer la chaudière qui n'a pas aimé ça.

  • [done] adjust layer priority so that smashers hide in walls
  • [todo] shake the screen when hitting the ground
  • [todo] shoots clouds of dusts when hitting the ground
  • [todo] get a green pillar following them. That could be a 3D item

and well, surprisingly enough I hadn't yet a way to change the layer order. That shall be bit $2000 of the flicker-control word (defined through GobExpression opcode F since bit $8000 already controls whether the given GOB should appear in front of every other GOBs of the same layer (used e.g. by "weapons" you throws)

Petite mise à jour parce que j'ai ajouté 2 autres smashers côte à côte pour voir un peu ce qu'ils donnent dans une configuration "défense de couloir". 

Monday, February 17, 2025

pixels, at last.

Une petite heure de week-end où j'ai pris le temps de me faire des petits pixels ... enfin. Après une autre petite heure plus tôt dans le week-end pour faire quelques essais de croquis.

L'écrabouilleur, d'abord, qui est la résultante de mes esquisses basées sur Ristar, des techniques proposées par Helm que j'avais utilisées pour les livres de l'école et de la réalisation que  finalement, des gants façon Mickey donneraient sans doute mieux dans l'univers de Bilou que ma propre main.

Il se trouve que j'avais déjà tenté de dessiner ma main, et j'avais la S-Team en entier et le verdict est sans appel: le nouveu design, plus anguleux, s'intègre mieux.

Finally, I managed to find 2 hours to work on the missing pixels I need for Bilou's demo. First the smasher punch, using all the observations I made while posting about my Ristar pixel study. It's more squarish (and the S-Team girls like it), it has cartoony-4-fingers look and is modeled after a cartoony glove rather than my own hand. Quite close to the sketch I made the day before. I'm still undecided about the thumb position ...

Second, the top-of-waterjet sprite. I won't try to make a tutorial of how-to-animate it: there is very likely room for improvement, but it does a fair enough job (imho) and nicely fits the style of the jet (see below for the in-game montage ;). I'll still have to make it wave up and down and make it so that the jet pushes Bilou upstream on contact.

Deuxième morceau: le haut du geyser inspiré de GoodboyGalaxy. Il faut dire que les derniers tests se déroulaient sur une map où j'ai ajouté l'animation pour la partie verticale du jet ... et bon, voir le jet se terminer par une ligne nette comme ça, ... ça picotte aux yeux.

Je ne suis pas franchement au niveau de hot_pengu, mais je crois que ça devrait faire l'affaire malgré tout (NB, c'est plus fluide en vrai sur la DS).

Friday, February 16, 2024

Sand "waves" completed.

Bien. Ce coup-ci, je pense qu'on y est enfin. Le sable tombe, il fait un petit tas, le tas croule le long de la pente, puis se "dissout" au moment d'arriver à la chute suivante. ça reste "mode démo", celà dit: le code pour la pente à contresens n'a pas été testé et la longueur de la pente est hard-codée dans la "l'animation" de la vague qui descend. Mais ça fera l'affaire.

At last. Sands falls down, piles up, flows down slope and then falls again. The illusion is complete. The code is partly production-grade, partly demoshow-grade. Just what I need for a new release of the 3-rooms demo ... if only there wasn't that just-popping-up bug in the School room >_<

Friday, February 09, 2024

Sand falls

Il faut bien l'admettre, dans toutes ces animations de Bilou qui est repoussé par les chutes de sables et de décor en pseudo-3D réalisé à grand coup de HDMA, la chute de sable tout en pixels statiques, ça ne rendait pas particulièrement convainquant. C'est donc maintenant ma dernière étape avant une petite riliize de ma démo 3-écrans.

Anokolisa mock up, initial reference

Almost every time I posted a video about Bilou being pushed by sandy slopes or about the pyramid background 3D scrolling, I couldn't help being sorry for the flat, uninspired, unanimated sands fall that are present since the first release of the 'three rooms' demo. That's the last thing I want to fix before I release a new one.

ça fait un moment que j'avais ce mockup d'Anokolisa parmi mes images à étudier et j'avais même quelques gribouilles assez réussies de comment ils étaient construits ... mais vous en conviendrez, du miel et du sable, ça ne s'écoule pas granchement de la même manière.

J'ai fini par retourner regarder les graphismes de la Sandopolis Zone dans Sonic & Knuckles ... qui au final étaient assez simples de ce côté-là: un cycle de 4 couleurs dans la palette, un tramage par-ci, une rangée de pixels transparents par là ... j'ai essayé de m'en inspirer et ça rend assez correctement pour une première démo, je trouve. Il me reste encore à animer 'le sable qui descend le long de la pente'. Voyons si le week-end m'offre le temps de faire ça ;)

But it is a bit tricky to find good pixelart reference for such item. For quite some time, I thought I could use something inspired by Anokolisa's Hive tileset, until I realised that it would never flow like sand, no matter how close I could get from that brilliant design. Neither Souldiers nor Megaman could help, but I finally remembered about Sonic's Sandopolis Zone, burried in early reference hunts. A quick check on youtube convinced me that, once in motion, they are good looking. Their design is quite simple, though: wavy patterns of 4 colours that will be palette-cycled. When they have to become half-transparent, non-solid tiles, they are alternated with empty columns or dithered with transparent pixels. That's enough for a CRT screen, but I will likely require something a bit more subtle for the LCD screen of the Nintendo DS. Well, my pattern is more angled, but it seems to be good-looking enough, given mastodon reaction.

Now I have to aslo animate the slope itself, but checking Souldiers again, I believe I might better spawn waves periodically and let them roll down a static ground than trying to animate it all as I did for the sand falls (scoop: I'm not using palette cycling this time)


Sunday, December 17, 2023

tapis roulant!

Nous y voilà enfin! Après l'eau-qui-pousse, je peux vous présenter le sol-qui-pousse. Le point délicat, vous vous en doutez, ça aura été de mélanger ça avec des sols pentus. Ce à quoi je ne m'attendais pas franchement, par contre, c'est que être poussé pendant qu'on est immobile sur le sol se révèle plus compliqué à gérer qu'être poussé pendant qu'on avance.

The natural step after water-that-push-Bilou was ground-that-push-Bilou. It started quite nicely and it is finally working, but to reach that nice behaviour, there has been significant ups and downs, and especially to get it working on sloped ground. But hey, sloped conveyor ground was my trick to have one-way halls without getting too mechanical.

C'est que pendant qu'on avance, on appelle régulièrement la fonction do_slopes, voyez-vous. Et même si le sol annonce "je te pousse de deux pixels sur la gauche" alors qu'on est sur une pente, on finira bien 2 pixel à gauche et 1 pixel plus bas si nécessaire. Mais rien de ce genre dans l'état "immobile sur le sol". Et notre fonction do_slopes est prévue pour aller directement corriger la vitesse et les déplacement retardés du personnage, or l'idée du "sol qui pousse", c'est justement de manipuler la position dans un premier temps et de laisser le code qui traite la vitesse tranquille. Sans ça, sur un tapis roulant trop rapide, vous verrez Bilou se retourner pour marcher tout seul vers la gauche plutôt que de le voir s'échiner à avancer vers la droite tout en reculant malgré tout vers la gauche. Pas terrible.

Dans Rayman, j'avais pu voir qu'on avait deux types de pentes: des normales et des glissantes. Chaque angle et chaque offset est dédoublé avec un second type pour gérer les deux types de physiques. J'avoue que je souhaite plus de souplesse pour Bilou. Pas tant que j'ambitionne de faire un jeu plus complexe que Michel Ancel, mais surtout parce que je n'ai pas l'occasion de planifier l'ensemble du jeu. Je suis incapable actuellement de garantir qu'il n'y aura jamais plus de 2 types de sol dans un niveau ni 2 types de pentes. Le projet était donc d'utiliser des emplacements séparés pour encoder la pente et les propriétés du sol. Et quand je me suis mis à coder, c'était encore plus simple que prévu: quelque soit la position de Bilou sur une pente, il est toujours à l'intérieur du tile "pentu". Et donc pour trouver le tile avec le type du sol, il suffit toujours de regarder 8 pixels plus bas. Enfin ... presque toujours.

And that was the final test for my "neat idea" to "simplify" the level editor: use separate tiles to indicate the slope (if any) and the ground properties. Ground properties are always on the 'plain' part of the ground and the slope types sit on top of it. A new getGroundType function can probe through that slope layer to find the actual ground and return its numerical type. Then, each controller use that to index to retrieve relevant parameters, such as push vector, friction, or whatever needed. It mostly worked except on one spot: the precise location where Bilou's hotspot has just been shifted out of the lowest 'sloped' tile of a slopes stripe. It is now mid-air, with one 'slope' tile below it and the ground properties one more below. Then Bilou stops because it is no longer pushed but doesn't fall either. And if I try to hack that around, I end up with Bilou moved horizontally instead of following the slope because there's no slope to follow.

Comme toujours avec les pentes, les problèmes commencent quand le sol n'est plus dans le prolongement horizontal de celui utilisé une frame plus tôt. On se retrouve dans ce cas-là soit avec Bilou qui s'arrête au milieu de la pente, soit continuant à se faire pousser, mais à l'horizontale

Yet, when you walked on the sloped ground rather than letting yourself pushed by flowing sands, you wouldn't get any issues. The trick is that walking state already has a call to the do_slope function that keeps Bilou in contact with sloped ground despites of motion. The extra shift happened prior that call, so it would still re-align when Bilou's own velocity is applied. But there was no such call in "idle, standing" state so far. And the do_slopes function wasn't meant to affect anything but character's speed, while it should now sometimes affect temporary variables used to immediately apply a coordinates update.

And just in case that seemed too easy, a typo in the first coding sprint made me change accumulated step instead of actual speed, ruining the whole thing with Bilou digging into the ground. Then a bug introduced in the level editor broke some part of the level without me realizing it and I started suspecting wrong properties for the ground here or there.

But there we are. It's working, even though it cost me hopping back in time with Mercurial and re-doing the sprint one dash at a time, checking, committing, re-importing maps and the like. And about one week later, I finally shot a decent .gif of the behaviour so I could post it and write this stuff. It's been planned for so long. It has been through so many preliminary work and so that I'm gonna call it a milestone.

Bref, inspector widget, ddd, j'ai pu sortir toute la panoplie. Presque (pas les unit-tests, cette fois). Mais l'éditeur de niveau m'aura bien cassé le rythme.

(wow. Le soir est tombé, j'ai encore une machine à faire tourner et je n'aurai pas fait plus de homebrew de cet aprèm' libre que de vous raconter tout ça :-P)


Friday, February 03, 2023

Souldiers Pyramid

Je l'ai découvert à travers une vidéo "Game of the Year", mais dans la catégorie "jeux les plus décevants". Pourtant, Souldiers est carrément superbe. Et principalement réalisé en pixel art. Et enfin, cerise sur le gateau, il propose généreusement une zone du sable avec une pyramide cachée dedans! L'idéal pour aller à la pêche au pixels, en somme, d'autant que même la perspective du jeu est compatible avec ce que je veux faire dans Bilou's Dreamland.

I happily clicked on a "game of the year" video without realising it was mentioning the "most disappointing GOTY". But given how gorgeous the visuals were, I've been shocked that this was actually referred to as disappointing. Souliders is a piece of magic when it comes to pixel art. Plus it has a desert and a pyramid level, so while people are debating about its difficulty, I'll just increase the zoom level and see what I can learn from it.

Bon, malheureusement, un jeu récent sorti sur une machine haute-résolution (il sort des images 1920x1080 où on distingue clairement des sprites et tiles prévus pour du 640xqqch), je n'ai pas beaucoup de screenshots "propres" à me mettre sous la dent. C'est surtout des vidéos youtube qui vont me servir de base.
Premier élément à réfléchir pour Bilou: des toutes grosses pierres comme décor de fond, ça marche finalement mieux que des briques à la MegaMan & Bass ...

It wasn't that easy as I'd have liked, though: the game is running scaled up to 1920x1080 with only some effects/rotations using the increased resolution while sprites and maps are at 640xSomething. Add some touch of JPEG encoding of people's snapshots and you end up with 9 candidate colors per pixel, and little chance to see the same RGB value twice. So my pixelstudy session will be less precise than some earlier pixelstudies ...

On a un élément 'pente ensablée', juste le look qu'il faut pour du sol qui pousse Bilou dans une direction ou l'autre (ce qui n'a pas l'air d'être le cas dans ce jeu-ci). J'aime bien les motif en croissant de lune qu'on retrouve un peu partout dans le sable, que ce soient les paliers dans la pente ou les dunes au sol (petites ou grandes), ça passe nettement mieux que tout ce que j'ai essayé de dessiner jusque là.

Among the interesting items, I note a sandy slope, just the kind I need to implement 'conveyer belts' in Bilou's own pyramid. Note the moon-crescents patterns in the sands. We have such shapes almost everywhere, in background dunes, on the foreground sands etc. but I especially like how they make 'steps' here.

Another item I'm interested in is the sands-within-pyramid. Souldiers features both patches of sands that do not fully cover the ground and 'pools' of sands. Note how they used layers of sands to suggest depth and end up with a solid color rather than texturing the 'side' view of the sands area.

Et on a des zones ensablées dans la pyramide. Et du sable qui traine au sol sans couvrir l'entièreté du sol. Notez au passage la manière dont ces développeurs-ci ont utilisé une teinte nettement plus sombre pour faire "le sable au sol à l'avant plan" qui sert aussi de 'fond de sable' pour l'intérieur de la pyramide.
Allons-y, donc. Un des éléments qui m'intéresse dans tout ça, c'est la taille choisie par l'artiste (un crayon dédicacé à celui qui me trouve son nom/instagram/twitterID) pour les 'vagues' de sable au sol, selon qu'elles sont à l'avant plan, à l'arrière plan ou sur la trajectoire prévue pour le joueur. Verdict: on est avec un modeste 8 pixels de haut que ce soit sur le chemin ou à l'arrière plan, et seuls les dunettes à l'avant plan vont pouvoir se permettre de monter à 12 ou 16 pixels de haut. Les plus hautes sont principalement devant des structures en rocher, d'ailleurs.
 
Chose remarquable, par contre, un "dune au sol" (ici le modèle 64x16 de l'image ci-dessous) n'utilise au final que 4 teintes en plus du ton de base "sable sombre" utilisé pour le remplissage quand des espaces sans détails. Les pentes avant et arrière de la mini-dune sont linéaires (sauf au sommet) et utilisent le même angle par rapport à l'horizontale (contrairement à ce que mon croquis suggère ^^")

It took me some time before I could actually start and study those sand grounds, but a first item I could directly check on the raw picture: what sizes the artist has picked for those waves. I have noted that Souldier's main character is about 40-48 pixels high (roughly the size of pendats). The biggest dunes are 64x16, but that's only seen out of the character's path, as foreground element, but always put under the ground line so that it doesn't obscure the view. On the ground line, we only see 8-pixel high dunes.

I spot only 4 colours per dune, plus one extra 'darkest' tone that is also used as a filler. Of course dunes on another layer will use a lighter set of 4 colours. Another unexpected thing is that the slopes on each side of the wave is are almost linear (except at the top) and fairly symmetric (unlike what I drawn ^^").

There's so much more I could talk about. Those rock strucures, the bigger dunes in the background, the fallen statues... But there's not a chance I could use so much things in "Bilou's Dreamland" project ... so that will be for much, much later ;-)

Il y aurait largement de quoi étudier ces structures rocheuses, les dunes à l'arrière plan et les monstres, mais bon ... je n'aurai pas le luxe de tenter tout ça pour le jeu en cours: juste l'intérieur de la pyramide, ce sera déjà un bon début. Gardons donc ça sous le coude pour un prochain jeu ?

Niveau couleurs, j'ai fait quelques petits essais de superposition des morceaux de sable de souldiers dans la pyramide de Bilou ... c'est pas la grande joie. Les couleurs de prowler passeront probablement mieux. à vérifier.

Friday, January 20, 2023

jewel colors by Prowler

 Comme souvent, ces temps-ci, c'est par un tweet que tout a commencé: une image de l'artiste Prowler (croisé sur Nectarine et un peu sur pixelation pendant l'ère des forums) prévue pour un music disk sorti de Nectarine il y a 2 ans (pour amiga. Eh oui) dont les couleurs m'ont tapé dans l'oeil.

I 'know' Prowler for some time, now, since he was one of the most welcoming dude on Nectarine, but little did I know that he had drawn the cover of some 21th Century Music Disk for the commodore Amiga... Hopefully, Prowler was on twitter too, and he eventually posted the rework of his 'skylab', and the colors he used immediately struck me. Especially the greens.

Une palette désertique digne du Dune de Cryo avec une teinte secondaire en vert particulièrement attrayante ... alors que je ne suis toujours pas satisfait par les tons verts utilisés pour les trucs spéciaux de ma pyramide.

#77ff99 - #44bb77 - (#389e72?) - #229955 - #007744 - #006633 - #004422 ... 

Puis je me suis amusé du fait que certaines briques s'agençaient presqu'en bloc de tetris sur mon mockup. Comme je suis dans la semaine des plate-formes-sur-rail en forme de Snake et du boss Araknoïd, je me dis qu'on mettrait bien franchement des tetrominos en guise de blocs dans cette pyramide qui n'en est pas une... ça a l'air de plaire. On verra bien si on en met uniquement dans les zones secrètes, ou un peu partout.

You see, I'm not that satisfied with the colors I've been using so far for the green, interactive things in my "pyramid-that-is-a-computer" tileset. 

(je serais curieux de les comparer avec les couleurs des émeraudes d'Aladdin sur SNES, tiens)

You'll note on the new mock-up that some of the rectangular bricks have been merged together to make tetrominoes ... This was the week where I realised that platforms-on-rail in my pyramid could easily mimmic the good-ole-game 'nibbles' (snake) and that I could name the scorpio-boss 'Araknoïd' and design the arena such that Bilou has to break bricks/pots to hit the boss, tetris-shaped walls would definitely be fitting. Good news is that most of poll respondents did agree (sorry for the few RSS readers around here: blogger has long dismissed the poll widget. Feel free to make your voice heard in the comments)

edit: bon, les diamants d'Aladdin (SNES) n'ont pas vraiment le niveau en comparaison. Je serais presque tenté de dire que ceux de Commander Keen 4/5 étaient plus intéressants. La palette de couleur n'est pas particulièrement inspirée, sauf peut-être la teinte la plus sombre, le 003828. Le reste fait presqu'EGA non assumé.

Friday, January 13, 2023

Megaman & Bass, ground man : pixel art and perspective.

I had some "megaman animation" video in my watch list and it appeared to have a sands-and-ruins themed level. So I should have been googling for Megaman 8 Swordman on PSX, but for some reason, I ended up googling for Megaman & Bass (ground man) on SNES instead.

Note how both have visible ground (as opposed to the plain-flat-side view of most megaman games), too. So that will make another reference for perspective study, too.

I'll mostly focus the perspective part on the SNES game, where it is closer to the one I want, with 8 pixels of ground for 16 pixels-high blocks. Note how they introduced two 'slanted edge' for the ground, providing a depth effect (and visual hint for platform edge) that pleases the eye.

They have sandfalls too, which I still have to draw, but they mostly went for noise with cycling palette and dither pattern to fake translucency. That may have worked on good old CRTs, but there's nothing to study here, after all.

Les megaman sur Super NES ont des graphismes plutôt sympa, et je suis toujours à la recherche de pixelart de référence pour le sable de ma propre pyramide, donc creusons. D'autant que ce 'Megaman & Bass' sorti en fin de vie de la console a tous les éléments qui m'intéressent: chute de sable, sable au sol, un peu ou beaucoup, avec une perspective compatible avec ce que j'ai en tête ...

They do have sands-on-the-ground too, another element for which I need pixel references, and some more sands-pit-in-depth-of-the-ruins, as well.

The snake-dragon depicted on the walls and the geometrical patterns do not feel Egyptian at all, but there's nothing forcing those ruins to be Egyptian, after all. In the case of Megaman 8, they were even quite obviously South-American rather than North-African.

On est plus ou moins forcé d'essayer de faire un parallèle entre le stage de Ground Man dans MM&B et celui de Sword Man dans MM8 sur PSX. MM8 avait clairement joué la carte du temple Maya, MM&B est un peu plus pyramidesque, mais il reste quelques détails qui nous rappellent sa filliation. Comme ces espèces de dragons. (qui ornent la salle remplie de sable ;)

Bon, malheureusement, les chutes de sables sont surtout un pattern "bruité" animé par rotation de palette qui joue sur le flou-crt pour adoucir les angles... pas grand-chose à étudier pour Bilou de ce côté là, à part les pixels qui se rajoutent près de la tête de Megaman quand il est dans le sable.

Oh, and they have a nice 'particles shower' effect when character stands in a sands fall (likely they'd have something similar for waterfall). I remember I have commented on some cosmic boll video where such shower particles is a hint that you're experiencing some sort of "extra gravity" for being pushed by the falling fluids that I might want some similar mechanics in Bilou.

Tout comme la perspective a rajouté 1 tile de sol par-derrière la position de MegaMan (semi-transparent sur les bords de certaines plateformes), on a droit à un tile de sommet-de-sable par-dessus le "bloc-sol" sable ... derrière lequel Megaman s'enfonce avec un peu de glitches sur les bords... Dommage pour l'alignement des 'dunes' et leur aspect exclusivement triangulaire dans le "bloc-sable"

the ground-sand has some unexpected look, especially in the way further piles of sands stand out more than closer one. They are given one tile of part-translucent / background over the walked-on pattern.

They tried to make it behave as a sort of quick-sands by letting the character slowly dip into the sands, but the effect comes short as soon as you approach a wall, imho.


And I finally found some of those iconic carved blocks in Megaman & Bass, although they appear to be only around the level's Master Robot room ...

Bon, idéalement, j'aurais dû vous sortir les code couleurs utilisés, analyser les hauteurs de pixels et compagnie... mais au final, je ne suis pas fan de ce look, que je trouve un peu pâlichons et pas toujours convaincant. Comme en plus trouver des images propres avec les vraies couleurs et la vraie taille s'avère pénible pour ce niveau particulier et que j'ai trouvé bien mieux à analyser entre-temps ... on va en rester là ;-)

Thursday, December 29, 2022

crocform #1

You may remember I had plans for a larger variety of platforms in the desert/pyramid zone of Bilou Dreamland. There's a second flavour of the crocodile-inspired platform that I barely shown so far, but which got a significant role to play in the work-in-progress level design. Unless you have some sandfall around, it is merely behaving as a "disappears after some time" platform. With sandfall, it adds "respawn" to the mix.

Last week end, I finally got to the point where I wrote some script to give it existence in the ongoing 3-room demo. There's a thing that went significantly wrong, though: Bilou couldn't notice when the platform is gone.

La pyramide, c'est l'endroit idéal pour des plate-formes un peu particulières. Qui croulent, par exemple. Ou qui changent d'orientation. Mais quand j'ai voulu faire un p'tit essai dans ma démo actuelle, Bilou est resté gentiment à attendre que la plate-forme revienne, flottant dans le vide. En réalité, il me manque un évènement capable de "décrocher" Bilou de la plate-forme: puisqu'elle existe toujours, pour le jeu, on peut toujours marcher dessus.

Il y aurait plusieurs moyen de régler: Bilou peut déjà se faire "propulser" par une collision (hic: seulement s'il n'est pas au sol). Les dumbladors empilés détectent quand l'un d'eux s'en va (hic: seulement grâce à un contrôleur dédié et l'ajouter ici décalerait tous les évènements de Bilou). Au final, c'est le contrôleur testant si on est sur une plateforme que j'étends pour qu'il puisse tester un bit d'état de l'objet auquel on est attaché..

I've had a similar issue with dumbladors when time came to 'stack' them: when one recovered, those stacked on top of it had somehow to detect they'd no longer have a platform behind them. It would be trivial if the gameobject implementing the platform was destroyed, but here it stays around.

  • extend dumblador's extra gobbit(when 7.1) to Bilou
  • trigger an extra "throws up" temporary hitbox when flapping down the platform
  • implement it all with brand new "larger animated blocks" feature, not with a sprite, because that platform doesn't truly "move".

The temporary hitbox seemed to be the least-resistance path, so I gave it a go. But unfortunately, it led nowhere. Mostly because the already-implemented collision I was trying to reuse (that use to make Bilou bounce of erasers, for instance) is only tested in states where Bilou is airborne. Here, I'd need it in states where Bilou is supposed to be on the ground.

Yet, I hesitate going for an additional micro-controller gobbit (despite it already has C++ code) because that would introduce new events to deal with. I'd rather have the onpath controller be able to fire an event when the platform-object it is attached to signals it is no longer a platform, the same way the controller can signal the object no longer exists.

I could try having some automated test into 'onpath' that would ensure the current state of the 'platform' object still has the area active and using the proper flags, but that would require extra care if I don't want Bilou to behave weirdly when the platform turns back or does any state transition that don't actually imply losing its 'platform' behaviour.

reality check: using onpath(when w7.2); (from the worst-possibly-named commit)

Friday, December 09, 2022

#infinitePyramid

 There once was a project dubbed 'Infinite Pyramid' that should have featured Bilou in a procedurally-generated pyramid. Just like "nuts'n'bolts", it is no longer seriously considered since the introduction of "Bilou Dreamlands", but I have kept tagging some tweets #InifinitePyramid, especially when it came to others' pixelart to study. It's now time I actually study some of them a bit more.

"sunset in a bottle" by Chrysoperla2. I like the overall aesthetic of the bottle and the color raster for the golden part works quite well. Possibly the curvy style is more "arabian nights" than truly egypt, but I don't think I should care too much about that.

The 'ramp' for the shady part is replaced by small and smaller islands of intermediate shade, which makes nice clusters. the two lightest shades are almost always together, the second-brighter being rarely seen alone unless in the darker parts of the object that get not enough light to show the full ramp.

A quick overlap test with my existing tileset shows however that these golden tints look very close to the tints I picked for the rocks, and using them instead of my yellow ramp for the mummy's crowns doesn't work as is. I'll have to find something in-between Chrysoperla and my current colors to improve.

The 'small' jewelish pot at the left of Nerkin's Egyptian scene seems to blend better into my own mock up.

Greenish creature by CJJammies

Pretty effective shape, which could work pretty well as a reference for my crocodilish monster . At least the colors blend fairly well with my current tileset.

I note how we mostly either use the top-3 colors of the ramp (areas in the light) or the bottom-three (areas in the shadow, like the head), but rarely the middle-three as main colors.

The textureless style has some charm, but I will likely try and put some 1-pixel-wide strokes to suggest scales on my own character.

I'll have to return on the eye later on. The shading work here is brilliant. It still sticks to 5-colors-ramps if we consider that the pupil is "another color" than the rest of the eye.

That could have been all, but Master Henk has recently published a mockup of Shantae palace (3DS) together with a full tileset for that area. There's so much to study in here, and unfortunately, JPEG compression has made it nearly impossible to identify precisely which and how many colors Henk has been using. Yet, quick preview in my mockup suggests the color could blend in nicely. The pillar seems compatible with Egyptian style enough to provide an extra reference. The stonework is awesome as well, including almost all the little tricks I've seen in others with just the right amount of stylization. Maybe it's not really appropriate for plain pyramid walls, but something alike could surely work deeper under the ground.

And then, there had been an interesting sarcophage by Juanito Medinart, but it doesn't seem to blend so well... It might still be an interesting reference for style or so, but not as pixels.

Friday, March 11, 2022

Animating the Undead Cell

 

I admit one of the reason for playing Epic Mickey again was to see how they had dealt with the sands and desert things in the Agrabah level, but I was far from imaginating that it would unlock my animation issue for the UndeadCell. One of the ennemies we face in the game is a mushroom species that has level-themed variation.

J'avoue: une des raisons pour lesquelles j'ai rejoué à Epic Mickey, c'est parce que j'ai réalisé qu'il y avait là la meilleure version graphique de l'univers d'Aladdin, tout en sable fluide et pierres jaunes. Quoi de mieux comme source d'inspiration pour ma pyramide bilouteuse ? Mais je ne m'attendais pas à ce que ce soit le champi-turban qui me serve le plus de source d'inspiration.

Conveniently enough, the sprite table was available on the Spriter resource, but let's be clear: if you can rebuild the animation from the sheet, you're the original animator. But at least, there was one thing I could extract from it: the sine motion for the pot of the character and the fact that the 'hat' more or less follows the slope of the sine. Colors for the turban are h30s18v99, h31s40v87, h27s51v75, h29s60v62, h25s59v55, just in case I wouldn't be satisfied with the current ones.

So I tried to sketch that and it looked nice on paper. I redrawn it in my SpriteEditor and it looked interesting (although I couldn't loop 'walking' animations properly). Getting it to work in AnimEditor was a bit harder: you can lock a sprite in the world while you're animating the rest, but the undead cell has no thing such as a foot that could be locked and moved backwards (pushing the rest of the character forward) like dumblador had.

C'est que, voyez-vous, l'animation actuelle de la pile-momie est tellement peu concluante que je ne l'ai toujours pas intégrée dans le niveau-test. Mais ce champi mélange pixel art et technique d'animation "cartoon-ancestrale" qui me montre la voie à suivre. Je gribouille donc une sinusoïde qui servira de repère. Je note que dans leur animation, l'orientation et l'étirement du chapeau suit la pente de cette sinusoïde. Je fais de même.

Il y a encore une 'pose iconique' dont je veux m'inspirer: cette manière dont le personnage fait une courbe montante au moment de se redresser. Comme s'il se déplaçait en utilisant le poids de sa coiffe qu'il laisse d'abord tomber vers l'avant puis qu'il doit courir pour la redresser telle la pile de livre de Lagaffe.

Hopefully, while animating in SEDS, I made the character actually move within its 32x32 frame. Part of why it moves now is because I kept that, but scrolled the frame backwards so that the eye always remained at the same spot within the bounding box.


So here it is, in a "how it started / how it is going" sort of animation (from a file beamed before I could fix the forward motion). As you can see, it still need to be significantly polished, and I got barely any time to work on it this week, as my kid had to finish a show-and-tell for school.

ça me fait pas loin de 11 étapes d'animation pour la pile qui avance. de 32x32 chacune, mais bon j'ai 256K de sprites à ma disposition... ce serait dommage de faire le gripsou et ne pas en profiter à ce stade-ci.

J'ai du chipoter un peu pour trouver comment adapter le mécanisme de 'verrouillage de sprite' qui avait bien marché pour dumblador sur un personnage qui ici n'a pas de pied. Est-ce la bonne vitesse ? Bah, dans le pire des cas, je la mettrai sur du sable qui coule, et ça justifiera une vitesse plus élevée, hein ;) La voir revenir en arrière dans les premiers temps de son développement m'a donné l'idée que la vitesse d'écoulement du sable devrait être telle qu'elle reste immobile à contre-courant.

edit: ouaip. C'est bien beau tout ça, mais une animation qui "marche" dans AnimEDS n'équivaut pas forcément à une animation qui marche dans le jeu. En particulier, l'éditeur joue en réalité l'animation à la vitesse indiquée, forçant le déplacement correspondant. Le moteur de jeu, au contraire, asservit l'animation au déplacement. Ce qui donne ici une pile qui reste immobile un long moment puis joue presque toutes ses frames d'un coup parce que j'ai abusé du 'mov#1' et du 'mov#0' (enfin, je crois).

Saturday, November 20, 2021

Smashing pixels

I did a few tries to render the heavy punch smashers for the pyramid in SEDS, and most of them were deceiving. My best render So far was crafted with the Gimp using the style and palette of an inspiring Sonie-like indie game dubbed "Kyle and Lucy".
Since I had a day off yesterday, I brought them back on top of my Pyramid level mockup. After all, the pixels for the Smashers were all mine. They just needed to be moved out that Kyle-and-lucy environment.

I also took the opportunity to try another approach: some structures in the School Zone are made of wooden, gianthands. What if I turn then upside down? Can I get something Convincing by Shading them with blues and pretend they're now metallic?
 

Bon, ceux-ci ne sont pas les premiers gros-poing-écrabouilleurs que je tente, mais les précédents ne ce sont pas vraiment révélés concluant (#euphémisme. Voir ci-dessous). Mais là, je retombais sur un screenshot de Kyle & Lucy sur lequel j'avais profité de la palette pour redessiner un gros poing d'un autre genre alors que j'avais toujours mon mockup "desertcolor.xcf" ouvert. J'ai fait un test. 

Et tant qu'à faire, j'ai essayé un autre truc que j'avais en tête: retourner le poing-pillier de la SchoolZone et lui donner une teinte blue-métallique, histoire que ça ne fasse pas trop bois. Les avis sur twitter sont assez unanimes: c'est le gros poing du bas qui gagne. Par contre, un truc de cette taille en métal, ça ne fait pas fort égyptien. L'histoire a beau ne pas se dérouler sur Terre, je prends note: je m'en tiendrai à un gros-poing en pierre.

I haven't been running any twitter poll this time, but I still managed to gather interesting comments. Generally, the bottom puncher are perceived superior to the recycled school-zone structures flipped and recolorized. Of course, I should have X-flipped them for coherent lightning with the rest of the scene.
Among others, Joke@bilouCorp pointed out that Egyptians did not have the technology to produce large metallic structures. That's both quite irrelevant (since Bilou's pyramid is nowhere near the Nile and not even on our planet) and super-important, because I want people to feel like if they were in an Egyptian pyramid while at the same time feel like it is something else. If I come up with hammers looking like they're from the Misty Mountains or from Vinea, they won't "buy" it. Similarly, although I won't use the Egyptian hieroglyphs, I'll use glyph-like writings anyway and not neon ads.

Et je ne résiste pas à l'envie d'en profiter pour vous présenter le projet Kyle & Lucy de Cellar Chateau. Un jeu bien dans la veine de Sonic 2, avec ses sols qui font des crolles, ses boucles et ses tremplins. Je trouve très bien trouvé l'introduction des rollers aux pieds des héros félins (déclenchés dès que la vitesse est suffisante), ce qui permet de garder une animation lisible tout en ayant une vitesse de déplacement digne de Sonic.
On est ici dans une "zone de la musique" qui n'a pas à rougir devant celle de Rayman ou de Zool. Chapeau. Il faut dire que le talentueux Lapper (qui nous présente les avancées de son projet "Sonic Studio" sur sa chaîne Youtube) prête main forte au niveau du graphisme.

Maybe you had never heard of Kyle and Lucy before. It's another game project I'm following on twitter, with Sonic-inspired gameplay and surrealistic aesthetics. The music zone is clearly one of my favourite. Everything looks so readable there. Note how the designer has given Kyle retractable rollerblades so he could zoom through the level without having to move his legs at ludicrous speed!