Showing posts with label dreamland. Show all posts
Showing posts with label dreamland. 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      

Saturday, April 25, 2026

Foreground for the underground ?

Something is annoying me with the underground section of the green zone levels: it's too repetitive. It shows in every screenshot I try to make. I have variation tiles that could make it less uniform, but they don't really work if we repeat them. I have plans for a background, parallax layer underground, but it only really works in open environments, not in tunnels, and underground areas are mostly made of tunnels. in the Green Zone.

But those funny pillars might work as foreground  layer as well! Maybe even better because they're bigger than the pebbles repeating tile of ground I have. They would focus the gameplay in a smaller part of the level just like a circle-of-light would, but with something pleasant to look at. The question is, how can I make it indeed focusrather than obscure. I don't want to make Infogramish game where you don't see where you're heading to because of the foreground.

Let's ask Bouli to make a bit of math, here: if my foreground layer advances by e.g 3 pixels everytime my regular layer advances by e.g. 2 pixels, then I just have to make a map that is 3:2 bigger than the playfield if I want to follow things properly.  

I mean, my "foreground" map would be drawn over a 150% zoom up of the main map, and that should be it. At least, that's the intuition. How to confirm it quickly ? Well, how about cutting some paper to make a live overlay and make it move around. Of course, you have to consider that only a part of the result will be shown to the player, too.

Does that mean I need a special mode or a variant of the Level Editor ? ... maybe not. At least, not more than "use the "physical" layer of gac.map (move by 2:3) and let me edit gacfg.map on top of that.

The fun trivia here, is that the initial motivation was to find a way to have VRAM for textures now that I know it does not require palette slots. But while comparing the options, I came to the conclusion that I had no real use of 3D in the green zone anyway, except maybe to render more trees in the background... but checking Case Portman's Lost in Fuzz video, I realised that proper amiga-style parallax would work better than any 3D and would be easier to make here. And yes, I'm only using 2 tilesets out of the 256K allocated to the background tiles in Dreamland, so I could fit a 3rd one and another "infinimap" in the unused space ...

Does it means textured 3D becomes out of reach ? No, but that Bilou's Dreamland will sometimes use 3D, sometimes not (plain 3D does not require more VRAM, but it consumes one layer).

Does it means Yoshi-Island-Style dual screen action should be forgotten ? No, but it would only work in levels where we have no 3D objects and no fancy lush background/foreground maps.

Does it mean having Bouli or another character "telling the story" on one screen while Bilou is "living the action" on the other impossible ? No, but Bouli may have to survive within 16K of sprite VRAM, using DKC-like live-update techniques for his animations.

edit: sidequest finding: shifting extended palettes from 64K to 16K VRAM isn't that trivial to do. (but not required unless we want to texture 3D stuff)
 

Tuesday, March 24, 2026

A few fixes

It should have been a calendar, and somehow I'm using it that way on the "recto" side. But it's a week-by-week calendar, which means it's also a near-A3 rigid laptop with good quality paper that I can use nearly anywhere to write notes about nearly anything. 

But I wouldn't be studying Turing processors this week-end, nor how the 1st Pokemon game stored its maps. Instead I was trying to tackle two old bugs in my editors that affect loading new files in AnimEditorDS and leaving "monsters edition mode" in LEDS. It's not very impressive, but it's releaseversary day, so here it is anyway.

And, well, it seems like it's been nearly one year since I made a release of the Dreamland demo itself. Now that the "WIP" level in the greenzone -- the one I intend to keep and that has been historically the first Bilou level ever -- has an exit door, I can make some release for that as well. Enjoy

  • water slides
  • revised appleman mechanics, including the funny rolling throw
  • connected doors
  • smashing big punches

I'm sure there are plenty of bugs and glitches here and there. This is not a polished demo, more a presumably playable snapshot of the ongoing work.

 

 

 


 

Saturday, June 21, 2025

Les portes ... prochain vrai objectif

C'est ce qu'on pouvait lire en mars sur une de mes pages d'agenda et en avril sur mastodon. Et c'est toujours d'actualité, bien que j'envisage de faire d'abord un essai des éléments de base de leur implémentation sur un le bonus qui rend des points de vie ... Si vous avez un peu essayé la dernière démo, vous avez sans doute été surpris par un brusque changement de niveau dès que vous vous approchez un peu trop d'un truc en forme d'ouverture. C'est clairement quelque-chose que je voudrais améliorer.

La bonne nouvelle, c'est qu'en fait, j'ai déjà la moitié du travail: enregistrer la position actuelle dans des variables. Et voici la deuxième partie: se diriger vers les coordonnées enregistrées.

Bilou's Adventure maps have doors... you know, the kind that are located at some point on the map and will near-instant put you somewhere else on the map. So I'd like "Bilou Dreamland" to have doors as well... That will require a bit more effort in the GEDS environment that can't simply do ROOM=12 : xbilou=100 : ybilou=100. So i've got this nice tree stump sketch in my agenda since at least March'25, and I've been twisting my mind around the issue of how to make it work with state machines and collisions and linked game objects.

Now, my Basic games typically struggled to extend beyond one level. At best, I'd chain-load the next level which would happen to look a lot like the previous one (or not) by sharing lot of code thanks to copy-pasta... And entering a door would typically freeze everything as the game had entered a dedicated micro-script that ignored everything but entering the door. 

L'idée générale, c'est donc d'avoir deux "personnages" pour une porte, l'un représentant le point d'entrée et l'autre le point de sortie. Le mécanisme d'attache qui permet à Spongebop de rester pendue à son clou peut aussi servir pour lier les portes. Bilou, lui, se liera à la porte "entrée", et la suit de la même façon que dumblador suit Bilou quand il le transporte.

The overall idea is to have two game objects involved in a door-to-door transit: one being the incoming door, and the other being the target location. There will be a one-way link between them in the level script. As part of the 'entering' trigger, Bilou would attach to the input door, which is itself attached to a target GOB. Using that to transport Bilou to the destination should work quite nicely: it's been years that tracking the attached object works nicely. The question is "how do I send back the door once Bilou has left?"

I cannot just "track an object left at the original position", because so far, the engine only track *one* object at a time. But I could record the position before leaving, and -- with the help of a new controller -- track that position. In fact, I already have such "record position" behaviour as part of the "grid" controller used by bouncy branch and furblock.

Coding directly such a multi-step mechanics didn't sound a wise move to me, but I had an animation for the health power-up that made it circle around ... and a notebook entry suggesting to do that with lines of code rather than lines of pixels. I'll save the introduction of an invisible permanent object to circle around if I inject "reccoords" and "track(recorded)" in that health pick-up ... which has just been completed today. 

Voilà donc un premier pas franchi: ce petit point bleu volant a enregistré sa position d'origine comme l'aurait fait une porte et est en train de se servir du nouveau contrôleur pour s'orienter et graviter autour. 

Bon, et se faire transporter ne sera pas tout: je voudrais aussi qu'on ait l'impression que Bilou *rentre* dans la porte avant le transport. Quelque-chose de plus convaincant que le simple décalage vers le noir de la version BASIC où appuyer sur "haut" un peu trop à gauche ou à droite nous enverrait à travers le chambranle, la main devenue noire de Bilou ressemblant à un trou de trop dans le mur :P  

And I must admit I injected significant time in thinking how Bilou would *enter* the door. I know it isn't required to see him walk into the door like Bubsy did, and likely the spin at the start isn't strictly required either, but I intend to use it as the excuse to align Bilou with the door such that I can later fade him to black without having a Bilou-shaped hole dug into the wall (QBilou.bas did that ^^) nor require pixel-precise location to activate the door (Super Princess Peach did that >_<)

edit: If I give the engine one extra opcode to "attach to the object that object is attached to", then all those extra steps about the "door" acting as a flying carpet that takes you to a given destination and then goes back to its anchor location becomes useless...

Saturday, May 31, 2025

May the demo be with you

Well, I can't really call it "a release", but there's something new waiting for you to download it on sourceforge: an update of the "three rooms" demo with more Applemen.

Stomp them, stun them, pick them, throw them. I won't claim that they're working flawlessly, but at least they're working, compared to the many attempts that took place last month.

It should also allow you to try the water jets and the hooking mechanics if you manage to find the "hidden" second green zone "level". And if my records are correct, this is also your first opportunity to face Bangbash yourself, because last demo was last year, just before I started working on making it move!

Oyez oyez! voici un nouveau fichier téléchargeable pour explorer vous même toutes les petites mécaniques de jeu qui ont fait le buzz lors des "Screenshot Saturday" de ces derniers mois! Ramassez et lancez des Applemen ! Défiez Bangbash ! Bondissez grâce aux branches, aux jets d'eau ! Accrochez vous aux racines !

La dernière fois que vous aurez eu autant de fun, c'est quand vous étiez dans une plaine de jeu !

Parce que, bin, on ne va pas se mentir, ça reste une démo-plaine-de-jeu pour vérifier que les mécaniques principales du futur "Bilou Dreamland" fonctionnent bien sans devoir traverser un niveau de 2048x1024 pixels pour s'en convaincre. Mais ... mais ça pourrait bien changer prochainement. 

Vous allez voir qu'il y a encore plein de petits détails pas au point, surtout s'il vous vient l'idée de lancer des pommes dans l'eau. C'est assumé. C'est parce que pour la prochaine démo, je vais me faire une version "brouillon" des niveaux qui sont déjà dessinés histoire qu'on puisse voir ce qu'ils donnent avec la physique actuelle de Bilou. 

Saturday, January 11, 2025

Dreamland checkpoint

"I can roughly work 1 maybe 2 days on Bilou every time the kids have holidays" was my answer to my step-brother when he asked whether I was still working on my game. So where are we (compared to 2024) ? 

Let's check some boxes, to see that. Note how I realised that I shouldn't try to include that level with 3D books : that would require new tools development and we're now past that kind of change.

Some of the box have been shifted from cyan to green: that means they're still things that will require more significant work to be done, but they're not *mandatory* for a first playable version of the level they're featured in.

And I just read a note I made to my today's self: 

There'd be some fixing on the old maps, possibly some keys or switches by NPCs, but that shouldn't be as ambitious as The Big Green Zone Relooking I've been talking about 3 years ago. The aim would rather to make the game more fun to play, and clearly not to get rid of any magic door.

The geyser thing is almost a "big relooking" thing... "push and flood the level" clearly was. It shouldn't stop me from trying the level.

Wednesday, March 06, 2024

Reprendre les vieilles maps ?

Surprise quand j'avais fait le tour de mon cahier "level design", je n'ai en fait que 2 niveaux et demi candidats pour la Green Zone. Alors que le jeu en BASIC donne l'impression qu'il en comptait 5. Mais certains niveaux (dont celui baptisé "les grands arbres") ont vraiment mal vieilli.

Alors pourquoi ne pas inviter à la fête les maps de la démo 9/9/9 ? Elles auraient besoin d'un peu de vernis, mais elles pourraient faire l'office d'écran pour apprivoiser les mécaniques du jeu avant d'être lancé dans l'historique niveau 1 de la forêt ... 

The goal for the Green Zone of Bilou's Dreamland should be around 26 screens (that's Kirby's Dreamland world 1 size). I have only 2 levels of Bilou's Adventure that seem mature enough to be included ... A bit light if you ask me. But I do have 2 small levels drawn for the earliest GEDS demo back in 2009 that might be welcome, either in the 'dreamland' game, or in the 3-rooms demo.

They might feature a bit too much of Funky Funghi, but some of them are in interesting settings, like in that 2nd level with chunks of dirt here and there that are only waiting for bridges to be tested... So I went for a poll, and 3/4 responders picked "go for inclusion" while the last person would prefer those maps to be exclusive to the 3-rooms demo.

Et le 2eme niveau de la démo, avec ses petites plate-formes et ses funghi partout serait le terrain rêvé pour introduire les ponts et jouer un peu avec. Et si la question n'a pas suscité de débat remarquable sur twitter/mastodon, il y a au moins unanimité sur le fait que les faire intervenir au moins comme terrain d'exploration supplémentaire depuis la démo "three rooms" est une bonne idée.

  • [done] import cube:/home/grizzly/pype/codinDS/dsgametools/schem.map 
  • [done] import cube:/home/pype/hobby/R4-bakcup/GREENY.MAP
  • [done] import cube:/home/pype/hobby/R4-bakcup/GREEN2.MAP
  • [done] see what they look like
  • [todo] bring them back on NDS so they could be fixed with up-to-date tileset.


 

Wednesday, February 21, 2024

Demo: Scorpeye, Apple, Water and Sand

A new demo appeared. At last, my checklist is complete (and sure, there are still many more things to write for a next list). The demo is still based on the "three rooms" -- mini-maps barely larger than the screen, each presenting one of the zones the full game should provide. Don't expect much more land to explore. I still have a few concepts to prove before I can do that.

Enfin direz vous, et je ne vous contredirai pas. Voici la nouvelle démo de mes travaux en cours sur Bilou's Dreamland. Toujours limitée à 3 salles à peine de 2x2 écrans qui servent pour expérimenter les nouvelles mécaniques sans passer trop de temps à courir jusqu'à la nouvelle fonction à tester. Mais pour la première fois, vous allez pouvoir nager, affronter les sables mouvants, lancer des carapaces. Et puis il y a toujours le rodéo d'éponge et le saut en encrier. Allez, quoi. Sortez votre linker et faites-vous plaisir :)

Compared to the previous demo, you can try

  • the new appleman animations
  • the collapsing platform (pyramid)
  • the scorpeye shell (jump on the scorpeye, then grab it like you'd do with a blador)
  • flowing sand, pushing you down the slopes
  • improved swim mechanics, waterflow
tested on NDS Lite, desmume 0.9.11 and desmume 0.9.6

Feel like playing a real game ? Try my previous titles ;)

Monday, January 22, 2024

How long before we play ?

Somebody asked The Question: how long before we can play the game (presumably Dreamland). So I picked my secret blue notebook and for every level, I tried to identify what I'm still missing to let you play it. Each of the checkboxes cost about 1 month of hobby time. maybe. I won't try being a project manager here. Not during hobby time. Oh, and blue boxes cost more. Possibly up to 3 months.

Je n'ai pas vraiment envie de jouer au gestionnaire de projet pendant mes temps libres. Mais voilà, la question a été posée: "dans combien de temps est-ce qu'on pourra jouer" (à Bilou Dreamland, je présume). Alors j'ai repris mon cahier bleu, celui des secrets, des niveaux et des idées de gamedesign. Et pour chaque niveau déjà esquissé, j'ai fait l'inventaire de ce qui me manquait déjà. Pour les 3 premiers mondes prévus pour le jeu. Je n'ai encore aucun niveau pour le 4eme (ni aucun pixel, d'ailleurs). Chaque case à cocher sur cette map géante, c'est probablement 1 mois de hobby. Probablement 3 pour les cases rehaussées de bleu. Faites le compte ;-)

edit: avant la prochaine démo,
  • [done] faliciter la sortie de l'eau
  • [done] animer les chutes et les pentes de sable
  • [done] Appleman en CompoundGob
  • annoncer la démo aussi sur #retrodev, la communauté francophone de Fei, Kannagi, Banshaku et les autres.

Mais la bonne nouvelle, c'est que certaines de ces cases ne sont pas indispensables pour avoir une version "jouable", c'est à dire où on puisse atteindre la fin des niveaux. Les PNJ, par exemple, sont supposés être optionnels tout comme Yoshi était optionnel. Parfois, une substitution par un élément déjà existant pourrait s'envisager. Certains niveaux de la school zone seraient mieux avec des lattes en guise de tremplin, mais déjà jouables en utilisant les gommes rebondissantes de School Rush, etc.

Wednesday, January 11, 2023

2023 - 1993 = 30

ça vient juste de me frapper ce matin en réunion. Cette année-ci, Bilou aura 30 ans en septembre! J'avais fait un homebrew-d'anniversaire pour ses 20 ans, avec juste un niveau. J'aurais aimé avoir un Dreamland au moins en pré-alpha quand j'ai envisagé de commencer à travailler sur Dreamland, mais c'était compté sans les ralentissements et distractions de ces dernières années.

Alors, bon, avant de vous sortir une jolie carte postale, je vais peut-être déjà me pousser un peu à implementer la solution crasse-mais-simple pour corriger cette plate-forme reclapante, non ?

Guess which blue ball turns 30 this year ! Hmm ? Hmm ? Yes. That one. I don't know whether I can still something like 'Dreamland' by the end of 2023, but I can surely try and find some more hobby time for it, right ?

Friday, December 31, 2021

Dreamland: on fait le point

 La deuxième année de développement de "Bilou Dream Land" tire à sa fin. Il n'y a pas encore de nouvelle maps, mais je pense que les outils sont maintenant prêts à l'emploi.

Ce qui n'était qu'un brouillon avec quelques notes est maintenant une démo exécutable sur DS. Bugguée, certes. Incomplète, tout à fait, mais une démo tout de même. Je me donne l'année 2022 pour continuer d'ajouter des mécaniques de jeu dans ces trois pièces (branches rebondissantes, de l'eau où on nage, des plate-formes mobiles et des écrabouilleurs pour la pyramide, etc). Après 2022, il commencera à être temps de construire les niveaux eux-même avec tout ça, et de réfléchir à la technique pour faire les boss.

Au niveau du contenu du jeu, j'ai un premier projet de niveau dans la pyramide (depuis Aout) -- gardé au secret, évidemment -- et la zone-montagne commence à se dessiner peu à peu. Le "goomba-like" et les "bricks-like" sont venus compléter le bestiaire de la pyramide: je ne devrais plus avoir besoin de rien de ce côté-là. Ce qu'il me faut maintenant, c'est convertir tout ce petit monde en pixels.

Well, why not swapping the years with a flash back on what has been achieved. I almost did it last year. With 2021 closing, it's been 2 full years working on my "Bilou Dreamland" objective. The cornerstone of the year was introducing the "3 rooms" milestone. I'm proud to announce that as of today, that milestone sketched in March is now a demo, of 3 interactive environment packed into one (huge -- 2.7MB) .nds with swapping songs and shared contents for Bilou.

Beyond those got-them-working steps done, I've got most of the monster design for the Pyramid zone covered ... and starting to get idea for the final "Peaks zone". So stay tuned: 2022 will be the year for implementing all those fancy mechanics within the 3 rooms before I start doing full-fledged levels. Maybe I'll even be able to prototype the NPCs.

Il y aura encore eu quelques gros bug-de-murs pendant l'année, mais tout semble indiquer que Bilou supporte convenablement son nouvel environnement, maintenant. En tout cas, on peut essayer les maps de J.L.N sans devoir redémarrer à tout les coins de couloirs.

Euh ... donc en fait ... mise à jour de la Démo.

Edit: J.L.N me rappelle qu'il y aura des boss en plus des 4 mondes. J'imagine que mon prochain milestone (en plus de remplir ces salles de tests), ce sera de faire un proof-of-concept avec au moins un boss. N'importe lequel.


Saturday, July 03, 2021

3-rooms todo board

The 'todo board' for School Zone worked quite well. Maybe I should make one for my "3 rooms" milestone, given how unlikely I am to do large amount of work for homebrew project these days...

(Well the milestone description for "3 rooms" is in itself a sort of todo-board; just focusing less on what is not going well right now)

And in case you see Bilou heads all over the place again, make sure you get a look back at that Bug Punch post...

Un montage graphique pour me rappeler de ce que j'ai à corriger, ça n'avait pas trop mal marché quand j'avais démarré la School Zone. Je me dis que ça pourrait marcher aussi pour mon challenge des "trois téléporteurs" ... Tentons, donc.

Sunday, April 18, 2021

Dreams/efsroot/*

Premiers pas vers mon objectif des trois "téléporteurs": j'ai une structure capable de produire un .nds qui comporte aussi bien les graphismes de la school zone que ceux de la green zone, avec un bilou.spr partagé entre les deux et la possibilité de passer de l'un à l'autre pendant un chargement de niveau.

Bon, j'ai eu droit à mon compte de p'tits bugs pendant que j'ajustais les pages de sprites à utiliser pour les monstres de la green zone, évidemment.

Et si une grande partie de ces défauts sont maintenant corrigés, il reste quelque-chose de travers avec la gestion des palettes. Pour la school zone, bilou.spr et school.spr contenaient exactement les même palettes, mais green.spr en a une autre. Et essayer d'afficher les applemen avec la palette des pendats donne des résultats pas tout à fait esthétiques.


Monday, March 29, 2021

3 rooms milestone.

My next first milestone for Bilou Dreamland will be to create a .nds where you can use doors to visit the 3 available environments. Ideally, each of the "room" (need not to be single-screen, but should stay simple) would feature the key gameplay mechanics I want to work on / repair before I go for more complete level designs. Sandboxes, in a sense.

On dirait bien que mes éditeurs sont maintenant prêts pour le travail sur Bilou's Dreamland. Support des nouveaux types de collisions et de pentes, support du choix de palette sur les deux plans. Et les spritesheets/tilesheets ont été nettoyées et prêtes à l'emploi aussi.

Il me faut donc un prochain objectif, et ce sera les trois portes salles. Une pour chaque environnement, pas trop grande, mais assez pour qu'on puisse y placer les différents éléments de gameplay critiques pour le jeu comme les cascades, l'eau qui change de niveau, le sable qui glisse, les portes, les plate-forme crocos, les branches qui plient, etc.

(Eh, CJ, ça fait penser à tes niveaux-téléporteurs du jeu d'origine, ça, non?)

Monday, January 18, 2021

spr.load+

The next big step for my game engine to be capable of running project “Bilou  Dreamland” is overlay loading. In all my previous games, there was one main tileset and sprite set that contained all we needed. Monster, hero, Pick-ups. Anything that had to be animated sat together in that file…

Bon, prochaine étape significative pour le développement sur DS: faire en sorte que le game engine puisse charger les graphismes "en deux temps", en particulier pour les sprites. J'aimerais bien éviter de devoir répliquer le graphisme de Bilou sur plusieurs spritesets, tout simplement.

Et ouaip, j'étais prêt à lancer ça en début de congé de Noël, puis je suis laissé distraire par un 'to branch or not to branch', *deline m'a chipé la tablette pour lire du Ewilan, et moi je me suis mis à faire du déterrage de brouillons :-/

C'est ça, la quarantaine: ou bien tu code, ou bien tu blogges. Les deux, c'est niet.

In order to come up with a “world 2” that features new creatures, this has to change. Especially, I want to have a single “Bilou.spr” containing character animations for all moves. The engine will then complete this with world-specific monsters and NPC data. When you think about it, the very reason why there’s never been a level 2-1 in my BASIC games was because  I couldn’t find the proper solution to this design challenge.

Mais, allons. Ne soyons pas défaitistes: c'est pas que je n'aie rien fait sur DS pendant les vacances. Juste que je n'ai pas fait ce que j'avais prévu, et que j'ai complètement perdu de vue depuis ce que j'ai fait depuis ce moment.

Plutôt que de me lancer dans une nouvelle branche, j'ai stabilisé et consolidé les différents outils.

edit: j'ai déjà quelques p'tites modifications qui donnent pas mal.

Par contre, il faudra que je réfléchisse à un moyen de valider que tout ça fonctionne bien comme prévu.

Well, I was about to start this at the start of xmas holidays, and then *deline picked up my boox to do some e-book reading while I was wondering whether a new branch would be required or not and then I ended up spending the holidays posting some very old drafts. Welcome to being 40: blog xor code.

well, nor the whole holidays, actually . I’ve still been able to do some ndsdev, just not the kind of things I expected. Tools are now stronger and more reliable. I’ve finally started to code something for it, but I need to figure out how I am going to test that.

edit 30/1: j'attaque...
edit 2/2: sprdo could help testing it.

Thursday, January 14, 2021

Flexible!

I remember how adding bounciness to the erasers bumpers felt and how I immediately wanted to have some erasers all over the games to be bouncing as much as I could. So wouldn't it be a shame if the branches of the Green Zone were all static platforms while they could be slightly bouncing you higher instead?

Les gommes qui rebondissent, c'était bien gai. Surtout quand elles se sont mises à bouger en réagissant à notre présence, au point que j'avais envie d'en rajouter partout dans le jeu. Du coup, en repassant sur le level design de la green zone, je me suis dit que ce serait dommage que les branches des arbres restent raides comme des piquets alors qu'elles aussi pourraient nous propulser dans les hauteurs. Oh je ne parle pas d'un bumper à la Sonic, mais si ça pouvait nous faire monter déjà de 1.5 blocs de plus que le saut standard (3.5 blocs), ce serait chouettos.

 Note that I don't meant to change them into Sonic-like bumpers. I said "slightly higher", like your jump would be 5 blocks high rather than 3.5, but still high enough to make the trip fun, and the top of the trees higher to reach without cluttering the screen with leaves.

I don't know yet whether I can do that with animated tiles alone or whether I need to switch to sprites while animating, and then back to tiles à la Super Mario brick blocks.

And before I'll dig deeper into such technical thoughts, I wanted to check what it'd look like. Apparently, just lifting tiles up and down by 1 pixels would produce a decent effect. That was quite some month ago. (you can't notice it, but there are two frames (one full-low and one full-high) merged into that picture).

Après un petit essai en torturant une ancienne capture d'écran, la première question sur laquelle je me penche c'est "tiles ou sprites". En clair, la branche va-t'elle se comporter comme un 'monstre' fort peu mobile ou une pente un peu bizarre. Avec un effet correct rien qu'en décalant d'un pixel de plus à chaque prochain tile, que je n'ai malheureusement pas 'filmé'.

Depuis, j'ai eu l'occasion de faire un test avec AnimEDS -- beaucoup moins concluant -- et de recompter le nombre de fois qu'une telle "branche" est présente dans les différents niveaux déjà réalisés pour la Green Zone. A savoir un maximum de 4. A ce stade-là, je peux franchement tolérer une approche "100% sprites". Même pas besoin de passer d'une image "décor" à une image "sprites" à la demande comme pour les bloc-question de Super Mario quand on les bouscule. En tous cas, pour Bilou's Dreamland, je vais prendre le risque de supposer que je n'ai pas besoin de faire des optimisations là-dessus.

Last week, I did some more tests with AnimEDS but I couldn't come with a convincing animation for the branch (modeled as some set of green balls). Also, I counted how many such 'branches' I have in existing Green Zone levels, and there is at most 4 of them per level. So there is no real pressure to do this 'made of tiles' rather than 'made of sprites', so the upcoming Bilou's Dreamland game will be a test of whether doing such level elements with sprites is a working strategy.

Et du coup, si c'est du "tout Sprite", pourquoi ne pas se faire plaisir et coder quelque-chose à base d'une animation d'un 'squelette' qui indiquerait où placer les sprites plutôt que d'animer à la main ? Avec un angle égal entre chaque segment, on a un rendu assez fidèle de 'branche qui plie'. En variant la valeur de l'angle, on peut redresser la branche, etc. tout ça fait des schémas assez sympa à dessiner...

I think I'd also check whether such things can be animated based on a coded skeletton rather than with pre-built pixels. Or at least I could be tempted to do that, but it could turn out to be a bad move, despite it having some definitive appeal. Dedicated pixels could provide better motion that code-driven shifts of still pictures.

I mean, look at those neat diagrams where adding a constant alpha angle at each segment produces a nicely curved branch, and how applying a weight at the middle of the branch only curves one half, and let the other half unchanged. And how having a maximum-alpha threshold will affect how easily the branch bends with weight.

But ultimately, the object isn't that big. It might turn out that weight-at-the-edge only differs from weight-in-the-midle by a few pixels. And similarly, a 'big bounce' and a 'small bounce' might differ only by not using extreme frames.

Mais ce n'est pas forcément l'approche qui donnera l'animation la plus sympa. En particulier compte tenu du fait que la branche à animer n'est pas bien longue.

Cogitons un peu. Si je donne une pente d'1 pixel de dénivelé au bout de 8 pixels en avant pour le premier segment, le 2eme segment, devrait avoir un dénivelé de 2:8, puis on sera à 3:8, et ainsi de suite. Avec cette valeur de alpha, une branche de 6 segments de 8 pixels peut déjà s'approcher d'une pente à 45°.

Mais surtout, ça me donne une manière facile de tracer ce genre de courbe dans SEDS et de tester des animations de baguettes diverses (raides comme une latte ou souples comme une branche de sapin) à partir de 4 valeurs de courbure et une inclinaison maximum à 4:8 (valeur à partir de laquelle il faudra 'raccourcir' le traît de 10% pour tenir compte de sa diagonale).

Friday, January 01, 2021

Bilan sur DreamLand : première année

2020 s'ouvrait sur un constat: il y a quelque chose de bien vu dans la formule de Kirby's Dreamland, un équilibre entre sophistication et simplicité, qui pourrait être un bon intermédiaire entre les petits jeux comme SchoolRush et la grande aventure.

Avoir un objectif m'a motivé à me sortir des tests unitaires à répétition qui auront pourtant continué quasiment jusqu'en juin. La deuxième moitié de l'année aura permis de remettre à jour mes outils (et LEDS en particulier) pour utiliser les nouvelles fonctionnalités du moteur de jeu en terme de propriétés du terrain

Flashback to early MMXX: there’s some successful alchemy in Kirby’s Dreamland, a balance between feature-rich yet kept-simple gameplay, and it could be the intermediate step l need between small games I’ve made so far and the Grand Adventure we once ambitioned.

Having such a goal clearly boosted my motivation and helped me to pull me out of this unit test swamps where I was. Starting with June, tools got upgraded – esp. the level editor- to enable the ‘new map’ in the engine

Entretemps, J.L.N a parfaitement adhéré au projet. Ça ne le fait pas plus prendre les crayons mais il m'innonde littéralement les oreilles de ce que les boss pourraient faire et comme LEDS est réparé, il peut même commencer à dessiner des niveaux selon ses préférences. Ce n'est pas aussi directement exploitable que le niveau gribouillé de Rémi, mais ça lui fait passer le temps.

Il faut dire que s'il y a bien un truc sur lequel je coince, c'est le fait de dessiner des bouts de pyramide ou des bouts de parcours dans la montagne pour compléter la 2eme moitié des 4 mondes prévus pour DreamLand. Le confinement ne m'a pas autant aidé que je n'aurais voulu, de ce côté-là.

Meanwhile, J.L.N. joined the project. Not that he would pick up any pencil, but I’m litterally flooded with proposals about what bosses could do. And since LEDS is repaired, he can even draw some levels when he feels so. It might not be as ready-to-use as Remi’s level was, but at least, it keeps him busy and focussed.

Par contre, je prends ici-même une résolution: je prends le risque d'avoir un mélange entre perspective 5:6 et vue frontale dans le jeu (idéalement pas au sein du même niveau quand-même), et d'en subir les conséquences plutôt que de continuer à me griller les neurones à savoir quelle serait la meilleure approche. L'expérience nous dictera comment faire pour la suite. Sans ça, je vais de nouveau faire un 'analysis paralysis' là-dessus. Les graphismes déjà dessinés resteront dessinés tels quels et ceux qui devront venir compléter un niveau s'adapteront au style du niveau en question.

You deserve honesty, here: I struggle with level design for the pyramid world. And the mountains level isn’t any easier. Even being confined did not help in that regard. Yet I still want to have these zones featured in Dreamland. 

So let me at least take a new year decision: I accept the risk of mixing 5:6 perspective in some level and frontal view in other levels of the same game. There might be some consequences but I prefer facing them rather than boiling my brain to find a hypothetical perfect solution. The game will test that, and will teach us what to do in a future game. The alternative is more months of analysis Paralysis. But whatever has been drawn already will stay as they are.

Friday, November 27, 2020

4U2

 C'est un groove dont je ne me lasse pas, même s'il a plus de 10 ans maintenant. Mon frangin a écrit "4U2" à une période où on avait la SNES et Donkey Kong à la maison, et pour ma part, ses roulements de percu m'invitent à sauter d'arbre en arbre aussi.

Et comme j'ai plus trop l'âge pour ce genre d'exercice, j'ai furieusement envie de filer le rôle à Bilou, ce thème viendrait alors compléter "little flower on the grass" pour illustrer musicalement la Green Zone.

Mon frère le présente comme un morceau 16 pistes (que j'avais ramené sur 6 pistes à l'époque de mon player SoundBlaster), mais vérifications faites, on pourrait le ramener à 13 pistes + 3 pistes libres pour les effets sonores. Il est un peu gros (611K), mais il y a un sample de synthé qui fait plus de 290K et qui ne demande qu'à être loopé (on en passe d'ailleurs jamais la moitié pendant le replay). Il y a aussi pas mal de sons de drums'n'bass qui se terminent par du quasi-silence et qui pourraient aussi être raccourcis/loopés/finalisés à coup d'enveloppe.

Il lui reste un dernier défaut: il est fort répétitif. On a 2 patterns qui tournent en boucle pendant pas loin de 2 minutes, avec un instrument de percu qui arrive au bout de 40'. Puis on coupe un peu la rythmique, puis on la remet. etc. ça manque d'une p'tite mélodie, et les syntés qui arrivent pour doubler le 'marimba' à 2 minutes ne relève pas vraiment le niveau. Les 2 mesures de piano "façon planer n'est pas jouer" sont très chouettes mais trop courtes elles aussi.

Bref, il faudrait trouver un thème sympa (1er monde) à jouer p.ex. à la flute de pan. Mais je n'ai encore rien à proposer pour l'instant.

Friday, July 24, 2020

Water Pool

Une petite cascade, c'est bien, mais avoir aussi une idée de ce que donne les zones immergées, ce serait mieux. Alors bin j'ai ressorti mon Gimp pour essayer ça. Je peux dire que les "mares" de la Green Hill Zone de Sonic Mania ont agi comme un déclic.

Having a sweet waterfall is nice. But where is all that water going to ? How should I render water in Bilou's Dream Land ? (I want to have some!) ... I knew I had to give it a try for some time, and then I played Sonic Mania. They have some and I was struck by how simple they've done it. So I went for something similar (esp. on the surface)

  • il faudra prévoir un effet "wobbling", horizontal comme vertical. 1 ou 2 pixels devrait suffire
  • les p'tites bulles font une fameuse différence.
  • les blocs solides peuvent facilement avoir une couleur plus proche du vert.
The palette-swap alone won't be enough, I'm afraid. The mockup above only turned convincing after I added little bubbles (these will be sprites, obviously) and some wobbling effect.

Unless it is required to make the water level change over the level, I shouldn't have to rely on interrupts to swap palettes. Just adjusting the palette of the background tiles in the editor should be enough.

The wobbling, however, will better work if I have some H-SYNC-ed DMA reprogrramming the horizontal and vertical scrolling registers. That means it will be tricky to mix water and non-water background on the same "scanline"... I'll have to check the existing level layout to see whether this is an issue.

Friday, June 12, 2020

Cachette Secrètes ...

Il y avait quelque-chose de bien fun dans Prehistorik 2: de nombreuses cachettes dans lesquelles on trouvait plein de bonus plus farfelus les uns que les autres. Pas trop à se tracasser, celà dit: ça fait juste monter votre score. Mais ça fait aussi quelques clins d'oeil rigolos. Quand on tombe sur un pacman ou une cocotte en papier, par exemple.

J'avais eu dans l'idée d'ajouter des objets étranges à collecter dans Infinite Pyramid, qui serviraient de témoignages des années qui ont vu naître Bilou. Une K7 audio qui déclenche un jingle de l'inspecteur Gadget, par exemple. Ou un pixel art de Fury of the Furries. Ce genre de chose. Repenser aux parties de PRE2.EXE et à sa casserole géante (élément sympa qui nous rappelle le niveau qui vient de s'écouler) me donne l'impression que des objets hétéroclites sont plus fun qu'un gros tas de bananes, aussi Rare soient-elles.
 
Don't trust what's being said in French: it all happened because I was playing Eagle Island, and couldn't help but trying to smash the owl into walls just in case there'd be hidden things. Only then I recall that I grew this habbit while clubbing around in Titus' Prehistorik 2.

But granted, the thing about K-7-shaped bonuses in the pyraputer that would play Inspector Gadget jingle is a true trivia that has been suggested to Cyborg Jeff for approval. And indeed, bringing that together with the "nostalgia" for clubbing into walls made me realize that collect-a-thon are more fun if you don't know in advance what you'll collect and when designers break your expectation about what may comes during the hunt. It's another way to "make gaming moments memorable" when your game doesn't really fits an epic scenery.

Par contre, je n'avais toujours pas de bonne solution pour faire la chasse au bonus. L'effet préhistorik est drôle parce qu'on peut prendre les attentes du joueur à contre-pied. ça marchera moins (imho) si il a vu les bonus approcher depuis le bord de l'écran. Alors, bien sûr, je peux donner des coups de tête dans les branches pour faire apparaître des trucs. ça se transpose moins bien en dehors de la Green Zone. Je peux lancer des taille-crayons dans les murs, mais ça limite les endroits où chercher.

Je peux aussi essayer de faire une animation de Bilou à 4 pattes, qui permette de rendre la recherche des cachettes dans les murs un peu plus excitantes, mais entrer dans la cachette n'est que le début. ça ne nous donne pas l'effet "bonus surprise" de PRE2.

Puis en gribouillant, je suis tombé sur une idée mélangeant PRE2 et SMB3. Pourquoi ne pas permettre à Bilou de passer à certains moments derrière le décor. Là, il peut utiliser le bouton "GRAB" pour essayer de fouiller et faire sortir tous les bonus cachés ^_^

it brought my attention to the fact that I still don't have a good candidate for PRE2.EXE's club (or DK ground-pound attacks) to investigate things when you haven't been provided a blador/koopa/DK barrel to hint you that there is a secret nearby. I've been scribbling some options, starting with the obvious "jump and hit things repeatedly", continuing with "crawl under a lower (secret) passage into the wall. Nothing really convincing.

Taking a step back, why does clubbing-for-secrets work in PRE2 ? Partly because you'll clubbing all over the time. That's why blowing on things in DK:R doesn't work as well as rolling into the grass in DK:TF. What could Bilou do ? So far, his bare abilities are JUMP and GRAB...

We all know how JUMP can be used to reveal hidden goodies, right ? How about GRAB ? You sure could do it the SMB2 way. Not only you lift up defeated baddies, but you can strip goodies out of the ground after you found a suspicious thing protruding from the ground. You could also do it the DK:TF way, grabbing a root, holding 'GRAB' for a bit longer and finally you reveal the hidden stuffs. But both are for obvious secrets. Mechanically, they're not that different from the hit-me-plants of Rayman Origins (or DK:TF, by the way)

But I could turn them into PRE2-hit-the-unexpected-spot if I combine that with a mechanics from SMB3: hold up/down to switch to the background layer. Only then, you'd start digging for secrets by using GRAB again and again. There won't be the "smash-smash-smash" sound, but it could be made equally funny, I think.


Je sens que ça va être rigolo. On peut aussi le faire dans la pyramide là où il y a du sable, ou en passant derrière un pillier / une statue plutôt que par devant.