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


 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, December 02, 2022

baloo_file ?

 Je tente une migration de ma VM ubuntu au bureau. De 18.04 à 20.04, en espérant que ça me permettra de partager plus facilement les produits de builds avec les machines de tests tournant en 20.04 ...

Mais au moment où j'essaie de prendre la machine en main, je suis face à un système tellement peu réactif que passer en mode console est à peu près ma seule option. Le coupable, c'est kswapd ... enfin non. Le coupable, ce serait plutôt baloo_file, qui semble s'être décidé à indexer l'entièreté du système (à travers un process fils baloo_file_extractor) en même temps que d'autres opérations de bienvenue (regarder si il y a une mise à jour dispo) sont aussi en cours. Sur un système avec 2G de mémoire au total, ça ne pardonne pas vraiment.

Le message d'erreur quand le programme de mise à jour d'une distribution à l'autre aurait pu être plus clair, cela dit. ... Voire, l'outil aurait pu auto-installer ses dépendances plutôt que de signaler une erreur :-P

L'outil de mise à jour voulait me virer e17 ... mais pas de panique: c'est juste parce que le package a été rebaptisé "enlightenment". Heureusement, il est possible de passer le 'nettoyage des anciens packages' le temps de vérifier que tout se passe comme il faut, découvrir les alternatives de la nouvelle distro puis valider le nettoyage avec apt auto-remove (ou quelque-chose du genre suggéré au premier apt-get remove e17)

La bonne nouvelle c'est que je vais pouvoir utiliser terminology dans cette VM aussi. à moi les tyls et autres tycat pour avoir des images en ligne de commande $_$

Par contre, terminology n'a pas de support pour la ruse "un 2eme fond d'écran parfaitement ajusté pour qu'on puisse lire le texte par-dessus" que j'utilisais avec Eterm... 'faudra peut-être que je travaille à une PR.