Monday, September 30, 2013

Pendat ready [zero day]

it's marching, it turns back. That's roughly all. I need to fix collision boxes, testpoint coordinates, make sure throwing a blador can stun them, etc.
Yes, you're right, I should be delivering you a .nds of that new level. Let's see how long it will be overdue :P

Desired state for the release:
  • [done] The five monsters being present: Spongebop, Inkjet, Dumblador, Pendat and RectoVerso;
  • [done] Monster behaviour is complete: it hurts you when you step in, it can be defeated unless it is planned to be invulnerable, it doesn't stop moving for some coder-could-guess reason;
  • [done] Level is WYSIWYG: no trailing "invisible walls", no endless fall to some out-of-screen no-man's-land nor structures you go through although the same was solid just two screen before;
  • [done] Hazards hurt: ink, pencils; Bonuses can be collected;
  • [done] transition (at least a pause) when Bilou dies, so that player may analyze and improve;
  • [done] bonus to guide player into perilous fall;
  • [done] use (B) to pickup/throw bladors;
  • [done] can't ride spongebop/inkjet when carrying a blador. 
  • [ongoing] Some incentive to improve your exploration and play the level again.
  • Coherent soundscape.
Allowed to miss in the release:
  • some sound effects;
  • [wish] power ups; 
  • throwing bladors mid-air
  • [wish] sparkles, dust clouds, broken bits and other visual feedbacks;
  • [ongoing] dedicated stunned animation for some monsters;
  • [done] perfect alignment of Bilou when inkjet prepares for a throw;
  • [wish] push-able inkjets;
  • level 2;
  • [done] fix for spongebop-out-of-screen bug; 
  • [wish] reloading the whole level when you die.
  • [done] ability to look down what is available;
  • [done] clean display of Bilou's hand when holding a blador;
  • [done] Clean RUN mechanics.
  • [done] spongebop's coordinate reference for circular movement is the center of the character (same for the pin), not the top-left corner.

Sunday, September 29, 2013

1 day left

I have quirks in moving inkjets and the pendat doesn't feel like progressing forward right now (nor left now, afaik). There's a more concerning issue, however: I will have to cut the number of monsters present in the level. With pendat reaching up to 6 or 7 "limbs", and each limb being an individual OAM, and all those OAM (i.e. hardware sprite) being statically assigned to objects, I regularily (e.g. when inkjet throws droplets) hit the "128 OAMs" barrier of the hardware that makes some sprite becoming invisible. Another engine update will be requiredwelcome to fix that. That shall be the road ahead.

Saturday, September 28, 2013

2 days left

Inkjet throwing Bilou up finally works fine with corrected animations. I wish Bilou would lower by 3 or 4 pixels when the inkjet prepares the blast.
Tonight, I shall upgrade runME and the .cmd files on the DS so that I can try all those new objects in their real target environment. I also added some turn-back transition for pendats ... they should be able to join the game soon.
I still need some blocks for the "end-of-rail" tile and some horizontal
I need to make RectoVerso vulnerable to thrown bladors
I have to check inkjet-on-rail do work
I need to make sure the engine in RunME allows me to keep grabbing sponges.

Friday, September 27, 2013

3 days left.

Not so much achieved yesterday, but this day is off, so I can fix inkjet's behaviour. Some state command adjusted, and I have Bilou thrown up for the first time with a little thrill ... Now I have to find the tuning that makes the animation work fine.

Hmm ... something wrong with transanims, but it's getting to late to get that sorted out >_<

... oh, wait ... I'm not parsing ":anim%u" tail in transitions on 'done' or 'fail' but only on 'event' and 'found' in very specific situations ?? wth? 

Wednesday, September 25, 2013

4 days left

RectoVerso do bounce around and avoid jumping into hazardous places whenever it can do so. It could use a fix in its behaviour so that small steps (16 pixels high) are tolerated, but that's not critical in this level. Now let's focus on inkjet interactions. Avoid wandering inkjets, make it throw at reasonable rate, and make it throw Bilou upwards.

Tuesday, September 24, 2013

5 days left

I have some pixels for the "cork platform", I have tunable spongebops. Eraser jumps will not work very well with "invisible walls" as those would act as wall that make no physical sense for the player (unlike Rayman's airborn anti-toons and platforms trapped in cages). Instead, I could have the "prepare" state of verso testing the ground where the next jump should end, and turn back if that location isn't safe.

Would such a remote testpoint work ?

Sunday, September 22, 2013

7 days left.

I got LEDS working almost fine on the green DS with the expanded and reordered animation sheets. I went through trivial fixes such as "animation X shouldn't loop since we depend on it to be done before switching to another state", etc. In-editor GOB linking did worked, although producing curious effects: a Spongebop was found moving through the level backwards because the nail it's pinned on was cloned from an inkjet and therefore had an initial horizontal speed :P

Cette fois, c'est reparti. L'éditeur de niveaux et le moteur de jeu intégré à "runME" sont capables de gérer les nouvelles pages d'animations correctement. Je peux ajouter les petits raffinements du style "faire faire demi-tour à la gomme" ou "se relever après s'être ramassé un coup", etc. Il me reste 7 soirées pour compléter le comportement de la gomme, de l'encrier et du crayon et dessiner le "bas" du niveau anniversaire.

At some point, it will save time to be able to see the initialization expression of one GOB, clear it if needed (and later, to write it from scratch, of course). A way to have self-initializing spongebop would also help: currently, they do not preserve the "energy" they're given initially, and so their speed is "reset" to a given swing value when they're crossing the vertical line. Unless this is fixed, sponges with a too-short thread will break loose and sponges with a too-long thread won't swing as far as the level design states.

I still wish Bilou could get more height when leaving a grabbed sponge, too. And then, there's pendat.cmd virtually inexistant, verso.cmd hoping for more freedom, inkjet.cmd needing to settle down and some cork-platform to be drawn.

Sunday, September 15, 2013

Ready? School!

one whole line of airborn (trans)anims!
Aah ! Ça fait du bien! J'ai réussi à mener à bien les modifications synchronisées de l'éditeur de niveau et d'animations pour permettre jusqu'à 6 fois plus d'animations. Du coup, ma DS "green lime" est prête à reprendre le flambeau et me permet d'enfin bricoler ce "niveau anniversaire", qui a d'ailleurs bien avancé ^_^ Le fait que toute la famille ait été à moitié K.O.-microbes pendant le week-end n'y est pas tout à fait étranger ^^"

I'm kinda proud of this week-end's progress. LEDS, AnimEDS and runME have been syncrhonously updated to allow more animations (up to 6 sheets) and thus more flexibility in behaviours. That will give me plenty of headroom for "thrown by an inkjet", stunned by a blador and all other interactions that should make the School Zone interesting to play. As a result, I have doubled the content of the "anniversary school zone" level which I hope to be ready by the end of the month.

Btw, be ready to hate the bopping eraser. It will not exactly "chase" Bilou, but it's gonna turn back or adjust the height of its jumps depending on your position 0:-°

Friday, September 13, 2013

Missing monsters

A bug in pokemon. Here be
a no-such-monster exception
Latest tests seems to claim that upgrade LEDS is trust-worthy enough to start manipulating my precious level maps (or at least their Lime copy -- more to come soon). There's one last thing I would like to fix: making sure that we can detect missing monsters, which may occur if some "input/import" statement has been stripped from the GobScript .cmd file that describes the level. Right now, they'll likely don't show at all, giving you very little opportunity to select them (you don't know where to click) and change their type.

Lors des dernières tentatives de donner vie à la "school zone, level 1", je m'étais heurté à deux problèmes: des incohérences entre le nom de fichier de la map et celui réclamé par le script définissant le niveau et l'absence de certains monstres faute du fichier de comportement correspondant. Le deuxième point était d'autant plus gènant que le moteur de jeu refusait alors tout simplement de faire tourner le niveau ... et que l'éditeur de niveau rendait impossible l'édition de ces "monstres manquants" pourtant présents dans le
niveau. Vous suivez toujours ?

Bien. Trop occupé à faire le design du "langage secret" employé sur la planète 24.3-lxxix ce midi, je n'ai pas encore codé les dernières retouches sur LEDS avant de repartir dans les comportements de monstres et le dessin des maps, mais j'ai au moins pu dégrossir le terrain. Voilà qui présage un week-end bien rempli :)

It would be neat to take advantage of this last fix to also ensure that a decent number of animations can be used, without forcing them to be all on "sheet 0".

  • the pages corresponding to the .spr file need to be present in RAM so that we can tell location of "old" animations in VRAM. That's handled completely with Set::Load;
  • the code handling "anim%ano = spr:%sno" could allocate thumbno++ rather than using %sno directly, and then set thumbrq[%sno]=thumbno.
  • that allows animeds thumbs to be cherry-picked when thumbrq[%sno] is defined.
  • either the page carrying thumbs is created and filled *after* parse()
A missing .cmd file will result in monsters with no corresponding states[no] entry. We can prepare the states[] array so that all entries are ready to display the "missingno" icon. We should ensure at display() that the OAM is not in 'disabled' state, though.

Here comes the week-end ... take the dishwasher to warp 4 and let's make it so.