Showing posts with label 20years. Show all posts
Showing posts with label 20years. Show all posts

Tuesday, January 05, 2016

10 ans de DS

Voilà. Il y a 10 ans, je déballais ma première DS. Juste un an après, je démarrais le projet "dsgametools" sur sourceforge. Bonne année 2016 à tous. J'espère parvenir à finaliser "School Rush" cette année ^_^ Le prochain projet de Bilou "Infinite Pyramid" a déjà commencé à me faire cogiter.



Happy new Year, everyone. Know what ? This year, it's been exactly 10 years since I got my first Nintendo DS. I still hope I'll be able to complete and release School Rush this year so that I can start working more effectively on my next homebrew project: Bilou in the Infinite Pyramid.

Noted the pattern ? 

  • one year from gameplay sketch to game release
  • one year from engine test to gameplay sketch
  • we have most of the GFX done within the first year.

Tuesday, November 19, 2013

A block too far.

Dix blocs à franchir ... Ce second obstacle continue à rebuter, mais ça devient plus facile à gérer. Dans la version g88, il était indispensable d'arriver avec la bonne vitesse sur une petite gomme. Sauter trop tard (en courant), c'était l'échec assuré. Ne pas courir, c'était arriver à coup sûr trop court.

I guess many have cursed that row of pencils in the g88 "anniversary" level. One thing I wanted to fix is that not only it required a master-level of the RUN and JUMP mechanics, but it did not provided a way for the player to build that mastery. Jump too late, and you'll end in spikes. Fail to run, and you'll realise quite late that you don't have the speed to clear the jump.
I experimented two approaches that make the obstacle easier to clear: the first one is widening the bouncing zone, which in turn reduces the stress on the timing. The second was to move the bumper away from the pit, so that missed attempts can be cancelled by the player.


Pour rendre ce saut plus facile à apprivoiser sans en tuer la difficulté, et maintenant que Bilou peut courir de façon fiable, il y a 2 choses sur lesquelles je peux jouer. D'abord, la largeur de la zone-bumper: un bumper plus large donne plus de souplesse au joueur sur le moment où il va sauter. Ensuite, un "filet de sécurité" entre le bumper et le début des crayons. De cette façon, le joueur qui a mal jugé de la distance de son saut garde une possibilité de revenir en arrière.

These two adjustments to the level make it more learning-friendly, but most of the challenge remain. Either you manage to RUN-JUMP as desired, or you find the alternate, safier route. For the next release, I'd like to grant player with the ability to feel empowered and have a laugh at the challenge, by power-ups, of course. You could either start the level with 5 hitpoints or pick one (random?) power-up before you enter it. That could be done through some form of DASH mechanic, or possibly a way to break more easily through that chalk-barrier, etc. Of course, I wouldn't have a "fix-them-all" item: if you get the ability to undermine _some_ challenges, you'll have to rely solely on your skills on others.


Enfin, avec l'augmentation de la vitesse que Bilou peut atteindre en courant, il est possible de passer par-dessus les pointes des crayons simplement en courant et en sautant, y compris en prenant "par le haut". Celà n'empèche que pour une prochaine release, il serait intéressant de proposer des "power-up" au joueur qui lui donnerait la liberté de bouder l'obstacle, même sans le contourner par le haut.

Entretemps, j'ai pris le contrôle de la course de Bilou, de sorte que je gère la vitesse maximale qu'il peut atteindre (suffisante pour franchir les 10 blocs de justesse sans l'aide de la gomme) et qu'on peut se mettre à courir en faisant un double-dash dans une direction (à la Kirby) ou en donnant une impulsion vers le bas pendant qu'on marche ou donnant un coup de R.

Saturday, November 16, 2013

Fine-tuning.

    Raw as raw can be: here's a collection of "todo items" related to the "20 years anniversary level" that has staid draft since my first re-contact with the BilouCorp. It's not very sexy, but at some point, gameplay fixing is also those kind of fine-tuning.
  • [done] BIGFALL Camera: a maximum vertical speed of 7 for the camera is a minimum as Bilou's maximum vertical speed is near 6 (pixels/frame). It feels better when the camera is controlled by the DPAD (holding down when falling) rather than activated automatically when reaching a specific velocity. With those settings, the player has 0.5 second between the time pencils appear at the bottom of the jump-of-(fai|dea)th and contact with the ground. half that time is required to manoeuvre Bilou away by 16 pixels, that leaves ~0.25 seconds of reaction time to the player.
  • [done] Spongebops appearing on the bottom of the screen due to wrapping of the Y coordinate by the DS hardware (?) mislead the player into believing that there's an invisible sponge that will reveal if they jump into endless pits.
  • [wish, AskTheTeam] Bonus room with a "hidden exit" should better be replaced with a room that offers a limited time to collect all the items and brings you back to the level when completed (as in DKC). Until the engine can support that, make sure the room's exit is as close as possible from its entry, so that realizing that you can't come back through the path you picked doesn't prevent you from going further with the game.
  • [done] Chalk do break, much more easily than pencils. Use some chalk picture for the break-through platform on the desktop.
  • [done] Add an 'onscreen' controller that triggers an event when an object gets offscreen, so that 'stunned' animations can be completed and items no longer "magically disappear".
  • [done] with a horizontal top speed of 540, running becomes enough to clear the pencil-pit area: no more bouncing-on-bumpers or grabbing-sponges is necessary. with momentum limited at 480, it is still feasible to clear the pencils, but it requires to jump when Bilou's first feet is already out of the safety area, so the bumber is "safier", and it could be made more in the middle of the platform as initially designed, so you don't necessarily fall into the pencils if you miss it.

Croyez-le ou non, mais j'ai réussi à recontacter la "Bilou Corp", et j'ai donc une toute nouvelle toudoulisse pour le niveau-anniversaire. C'est un peu brut, vous m'excuserez peut-être un jour. Plein de petits règlages à faire: les vitesses de caméra quand on tombe, le remplacement du crayon-qui-casse par une craie-qui-casse, etc.

Sunday, November 10, 2013

L'avis de Joke

Longue session de beta-testing hier avec Joke de la BilouCorp -- une corporation sans lien direct avec mon personnage fétiche mais néanmoins fort sympathique et versé dans la conception de jeu vidéo -- si bien que ce matin, je passais le démarrage du niveau en mode "image par image" pour comprendre d'où venait ces "à-coups" quasi systématique quand on descend de la latte pour aller se mesurer à notre premier crayon.

  • il sautille un peu sur la descente de la règle au début
  •  … la caméra ça va je trouve
  •  ça manque d'effet sonore pour les sauts et rebonds 
  • le premier saut qu'on doit faire d'un crayon à l'autre avant le pot d'encre, je remarque qu'on peut pas y arriver si on ne se tourne pas d'abord dans la bonne direction
  • La gomme du crayon c'est volontaire la possibilité de passer derrière ? le fait qu'on soit propulsé en sautant quand on est dessus n'a pas l'air de nous aider à passer. il faut prendre de l'élan je pense, ça complique les choses
 Il y a deux ans, j'aurais plus ou moins considéré ça comme du temps perdu: ce sautillement ne gène en rien le gameplay... mais ça fait tache et en plus, c'est la première chose que le joueur va voir du jeu. Donc, je creuse à grands coups de ddd avec la méthode désormais bien rôdée de "je m'arrête avec Inspector Widget dans la situation qui m'intéresse avant de mettre mes breakpoints".
Après une bonne heure d'inspection méticuleuse, j'arrive à la conclusion que le code du moteur de jeu, des contrôleurs etc. est 100% clean: c'est dans l'animation que ça coince. Pour une raison encore inconnue, une des étapes d'animation force le déplacement à être horizontal plutôt que de s'adapter à la pente en cours ... bizarre, bizarre.

Je ressors donc mon "extracteur d'animation en vrac (à perforation en vrille): il y a en effet quelque-chose de louche avec les animations de marche de Bilou. Les étapes d'animations qui se comportent bizarrement ont un bit "déplacement vertical autorisé" qui reste à zéro. Chose intéressante: le pendat (qui était incapable de suivre les pentes) a systématiquement ce bit à zéro. Dumblador, lui a son bit "déplacement vertical autorisé" mis pour chaque étape.

J'aurais été bien incapable de dire en aveugle à ma fée quelle manipulation elle aurait du faire pour changer ce règlage dans AnimEDS, ce qui signifie que c'est un des contrôles-candidats pour un menu déroulant ou quelque-chose de ce genre.
En fait, c'est le petit "!" devant "y" qui doit être retiré pour "déverouiller" l'animation verticalement.

Mais alors ? Si ce sont des règlages au niveau de l'animation (et pas d'une étape isolée), pourquoi cet étrange étape verouillée dans la marche de Bilou qui ne l'est pas pour le reste ? Sans doute parce qu'il s'agit de la liste de commandes générée pour permettre de boucler la boucle, et que son code n'a probablement pas eu droit à sa mise à jour (ouuuuh ^^").

J'édite l'animation en hexadécimal dans Midnight Commander ... Je recompile à cloche pied ... Bilou retient son souffle: c'est l'heure du test fatidique ... attente insupportable de 15 seconde pendant que la caméra re-traverse le niveau à contre sens pour venir se centrer sur Bilou au départ.

Ah oui! Bien mieux! La descente est fluide, la remontée aussi... Il me reste à aller corriger AnimEDS, donc.


Saturday, October 26, 2013

G88 and the sound is gone!

For some reason, slide effect Gxx in music track wasn't played properly. Let me investigate ...

  • ::playRow() checks EFFECT_PORTA_NOTE. It will complain about instruments that change, then, capture the cell's note as "target note" and record the slidetune_speed from parameters. The playing note in the channel remains unchanged, although the "pattern cell" has the new one.
  • ::handleEffects() is for per-row effects. It also process some "volume column effects", but PORTA_NOTE is a "per-tick" effect.
  •  but I have checked that the PORTA_NOTE (effect #3) happens always on the 'regular' column.
  • xmtell.pl confirms there is a note on the cell that has PORTA_NOTE. Yet, when processing the row to setup channel state (including target note and slide speed), the cell mentions having EMPTY_NOTE ^^".
Reason ? The musical cells in an XM pattern may either be stored as is, or packed using a "magic bytes" that indicate which fields (effect, volume ...) are present and which are missing. For some reason, libntxm code was resetting the note to "EMPTY_NOTE" when the cell was stored in plain mode. I'd say there was no chance 0xt0b could debug that properly since he had no effects support -- thus likely only tested modules with no effects (where no cell can ever be "complete", obviously.


Pour éviter des bruits désagréables entre deux notes de la mélodie, mon frère a utilisé assez abondamment les effets de glissé pour enchaîner deux notes sans relancer le sample depuis le début. Mais dans la release d'origine, ces notes étaient curieusement silencieuses. Après pas mal de bourlinguage dans le code de la libNTXM d'0xtob, j'ai fini par me rendre compte que c'était lié avec la présence de "cellules pleines" (avec une note, un volume, un effet et ses paramètres). C'est maintenant réglé, ce qui veut dire que vous avez bien mérité une version révisée du niveau anniversaire.

Now, I have another issue with G00... parameter value 00 for an effect means "same value as the last effect" I used to do that on demand when processing per-tick effect, but for porta-to-note, I need to apply it earlier, when the finetune speed is defined.

So, enjoy g88 revision of the anniversary level.
  • camera control with UP and DOWN dpad directions;
  • improved spongebop bounces;
  • fixed music;
  • fixed crash/stall upon level reload.

Sunday, October 20, 2013

School level delivered!

Enfin nous y voilà. 3 ans après 'Apple Assault', un nouveau jeu Bilou est sorti. Enfin, "jeu" est excessif: c'est une démo jouable comme vous auriez pu en trouver avec votre magazine PC-Fun préféré dans le milieu des années nonantes. Avec un seul niveau, il n'y a par exemple aucun moyen de reprendre de la vie ni de regagner des vies. J'ai pourtant d'excellents souvenirs de la démo de Prehistorik 2 avec son compteur de pourcentage d'exploration. Nous nous étions donc mis en chasse des dernières plate-formes invisibles et bonus cachés jusqu'à parvenir à un 100%. C'est ce genre d'ambiance que j'ai tenté de reproduire dans le niveau-anniversaire mis en ligne hier.

Looking back at the former releases and the completed todo lists initially left me with some bitter taste: since March, it looks like nothing significant has been achieved and that almost all the features were present in the "usability test demos". Reality is somewhat different. Even the month spent exploring SMW and incentives for "alternate path" was the key to level re-design. There *was* some significant progress on the reliability of my SEDS/LEDS/AnimEDS tools. when monsters are randomly altered after every save, when you have some animation that may disappear under some circumnstances, when the map may be erased by a misplaced click, the odds that you manage to craft a level featuring 20 monsters are weak. Shaping up to 54 unique animations is only possible with some convenient numbering scheme.

Hopefully, those 6 monthes made the tools reliable and the additional month made the level appear. Let's celebrate ^_^.


Et dire que depuis Mars dernier, il me semblait de n'être nulle part, puisque presque toutes les modifications apportées au moteur de jeu dataient de 2012. Et pourtant, du changement il y en a eu: tout ce "rush" sur le niveau-anniversaire n'aurait jamais été possible avec des outils aussi peu fiables que ceux dont je disposaient en début d'année, succeptibles de perdre ou d'écraser le travail accompli à la moindre fausse manoeuvre.

I was concerned about the lack of variety in my tileset. One book here, one binder there ... wooden structure, metallic items, spiky pencils. At the end of the level, I started feeling repeating myself. If a level 2 was required, I'd need more variety, shadows, and such similar things. That's especially blatant in those confined areas where the scrolling background is not visible. Hopefully, I'm not near 80% of tile space as I initially thought. I merely used 50% of the space, because many object got dismissed as "drafts" as I progressed (greyed/translucent areas).

Le niveau dans lequel on se promène tente de respecter le plus fidèlement possible le design d'origine (1994) créé par mon frère, mais remplace régulièrement les "clés" et les "interrupteurs" abstraits par des interactions entre personnages. Par contre, au niveau graphismes, je dois admettre que sur la fin du niveau, je tournais un peu en rond. Pour continuer à construire la School Zone, il me faudra d'autres objets. Et là, soulagement de dernière minute; je ne suis en fait qu'à ~50% de l'espace disponible. Du côté des sprites je devrais pouvoir compter sur le doublement de l'espace disponible (j'utilise 64K sur 128), mais il faudra "expliquer" ça à l'éditeur de niveau.

I will have to do similar cleanup in the "sprites" memory or upgrade to full 128K of sprites (the hardware allows it, LEDS won't like it :P) if I want to have the full set of animations of pendats with pixel art (initially, 3D was planned) or if I want to have spinning sponges once on the ground.

Quite amusingly, many aspects of the monsters behaviour where "hacked" during the release-rush through creative use of the current game engine and level editor -- such as undermining some platforms so that monsters see them as holes while Bilou can indeed walk them -- where I'd have in normal hobby development extended the game engine with dedicated features to support the desired behaviour (such as a monsters-wall that Bilou can move through).


Si je suis parvenu à boucler ce "niveau jouable" en 2 mois alors que je travaille sur la school zone depuis Septembre 2011, c'est entre-autres que je suis passé sur une autre approche: chaque fois que c'était possible, j'ai rusé (par exemple en trouant le sol sous les pieds des Pendats pour leur faire faire demi-tour à l'emplacement souhaité) plutôt que de chercher à étendre le moteur de jeu (p.ex. avec un mur invisible pour les monstres). à retenir.

Et maintenant ? Quand tous les confettis de l'anniversaire auront été balayés? Bien sûr il y aura un peu d'emballage nécessaire pour permettre à mes p'tits n'veux de faire leur propres niveaux: manuel d'utilisation, blocs supplémentaires pour les vies et les soins, par exemple. Sur une autre branche, proposer une réalisation de "Deep ink pit" malgré tout pourrait s'avérer sympa, encore que le concept du jeu n'était pas aussi riche que celui d'Apple Assault. Enfin, il serait temps de s'attaquer à la 3D, histoire de permettre aux crayons de poursuivre Bilou et d'introduire le fameux Bang Bash qui, en février 2006, introduisait le jeu vidéo Bilou dans la blogosphère...

Oh ... et il me faudra un écran "sound test" pour comprendre les effets curieux qui se produisent sur les musiques ces temps-ci.

Saturday, October 19, 2013

20 ans!

Il y a 20 ans, Bilou voyait sa première aventure esquissée sous les crayons de mon frère d'après les programmes CPC de Pierrick. J'ai fait de mon mieux alors pour transformer les "idées papier" de mes ainés en lignes de code et en pixels, mais la School Zone m'avait tenu en échec: le niveau de complexité dépassait ce que mes outils pouvaient supporter, menant peu à peu à la mise au grenier du projet.
Gain speed to break through that pencil barrier.

Aujourd'hui, je prends ma revanche avec ce homebrew pour Nintendo DS qui vous emmène à travers le dernier niveau dessiné par mon frère avec les monstres de Pierrick. Plus vous ramasserez de bonus, plus on vous emmène loin dans le temps...

That's it: the anniversary level celebrating the 20 years of Bilou video game sketching, design and coding is ready to play. At last, Pierrick's ennemies and my brother's level come to life and challenge you to gather all the letters scattered through the chemestry classroom. The more you get, the further we take you back in time. Can you make it back to 1993 ?

A: sauter et rebondir / jump & bounce
B: attraper et lancer / grab & throw
Bilou can run faster if you do a sharp turn back (tap left and slide to the right to run to the right). You can bounce on monsters by tapping A just when stomping them.

Pour courir vers la droite, pressez d'abord la croix vers la gauche puis glissez le pouce vers la droite. Pour courir vers la gauche, faites l'inverse. La "barrière crayon" peut être traversée si Bilou tombe d'assez haut.

Playing on the Real Thing
You need a DS and a linker device that can play homebrew files. With most linkers sold after 2007 (that support DLDI), all you'll have to do is drop the .nds file somewhere on your media card and launch it as any game.

With older linkers, you need to patch the .nds file manually using the driver compatible with your hardware. If your hardware need patching and you haven't patched, you'll see the bottom screen displaying only purple background with the words "NODA!" written in the middle. (and other boot info around).


Playing on an emulator
You're suggested to use desmume and follow these instructions to set the "GBA slot image" as being the .nds file itself. Other emulators (notably iDeaS, patch as R4TF) will require manual DLDI patching (see above). You'll get a better experience with a SNES-like gamepad.

Known Bugs/limitations
Although it's an anniversary, it's also a first release. There are things that are not visually consistent and room for improvement. It was however decided to release early and that those features would be left for future levels/releases.

edit: fix anniversary-G88 released.

Friday, October 18, 2013

9-18 days late

Oct. 9
That's it! level map is complete, monsters are placed and they behave as expected. I have two more "special blocks" to define for horizontal pencil spikes (83) and level exit (21). We can break through the "pencil barrier" that lays between the upper and the lower part of the level. Pencils are not the best item here, but I haven't found something that would make more sense. Maybe something made of glass ?

J+9. La map est prête, les monstres en place. Nouveaux blocs spéciaux pour les pointes de crayon et la sortie du niveau. On peut casser la "barrière" entre les deux parties du niveau, mais il faudra que je réfléchisse à quelque-chose d'autre que des crayons. Quelque-chose qui donne l'impression d'être cassable. Du verre ? Allez, encore un peu de code, que 'SchoolTest' devienne enfin plus qu'un test.

Now the focus shall be on the glu code that will make SchoolTest being more than a test, but something that looks like a playable level.
 
Oct. 12

Don't expect anything before 16th of October: IRL interference. However, the welcome screen is now ready, and I have good basis to invite you to progress in the level :) If only those ink droplets could be made more ... visible...

J+12. Interférence de la VTJ prévues jusqu'au 16/10. L'écran d'accueil est prêt et j'ai un début de mécanisme pour encourager à explorer plus le niveau. Penser à passer plus de graphisme sur la couche "background" histoire qu'on voie mieux les gouttes d'encre.

... moving some ground tiles on the BG layer, maybe ?
^^"


Oct. 15

Final touches here and there to make sure there is no hidden trap or non-working bonus. Rewards picture render better and ***drumroll*** I gave the soundtrack a first (successful) test. You should get a release end of the week.

J+15. petites touches de finalisation sur les images-récompenses. eeeeet premier essai avec une bande-son qui marche.

Oct. 17
Fixed a "last minute panic" bug, allowed Bilou to throw Bladors even when jumping or walking and reverted bonus to latin script. I'd say it is mostly done. I'm essentially waiting for CJ's (or Πk's) soundtrack... and I still have to realize the "howto" background to explain how to grab and jump etc.

J+17. bug de dernière minute. Permettre à Bilou de lancer les taille-crayons même s'il et en mouvement. C'est plus ou moins prêt. J'attends une 'zik à mettre là-dedans.

You may expect the release to take place this week-end ^_^

Oct. 18

Everything you need to know gathered on the welcome screen. The rest is to be learned by playing. I hope that doesn't make it too cluttered.

J+18. voilà. L'écran d'accueil qui vous dit tout ce que vous avez besoin de savoir pour commencer à jouer. Le reste, vous l'apprendrez en jouant. J'espère que ça reste assez lisible.

Je viens de recevoir une musique de mon frangin. J'intègre ça et je fais une riliize demain.

Meanwhile, my brother sent me a nice tune to populate the soundscape. I'll integrate that and release tomorrow.

Tuesday, October 08, 2013

8 days late

Took yesterday evening preparing material for the "achievements" (or so). Blador is now bound to button B and HOLDing one prevent you from RIDing inkjets or spongebops, just like grabbing one's legs to DUCK prevents Fire Mario from SHOOTing fireballs.

If I find some time tonight, I really should spend it on making that hole in the desktop break-able only when Bilou has sufficient vertical speed.


Après une petite soirée passée à vous concocter de petites récompenses pour les plus assidûs d'entre vous dans la chasse aux bonus, je revois suite aux commentaires de Cyril la manipulation des dumbladors. Pour ce soir, ce sera (enfin?) le bouchon-à-casser pour passer d'une moitié à l'autre du niveau.

PS: si ces minis-posts permettent mieux de maintenir la tension avant le lancement du niveau, ils sont par contre nettement moins efficaces pour progresser sur le projet. Pour les outils et les modifications dans la libgeds, je garderai des posts-todo aux ré-éditions multiples faisant le lien vers les diff du svn ...

Sunday, October 06, 2013

6 days late

I have level design for the end-of-level sorted out. Blador interaction with other monsters is completed, why-pencils-dont-hurt question is sorted out. RunME is resumed, the level map is 80% complete (it could use some variations, but the basics are present). I still need to ensure that RectoVerso turns back when encountering a wall while jumping and check the design of the bonus rooms.

That-hurts-stars instead of wandering feet when Bilou get splatted by a RectoVerso eraser would also be better.

J+6. Trouvé un design correct pour la fin du niveau. Les interactions entre taille-crayon et le reste des monstres sont terminées. Les crayons font mal comme prévu. La carte du niveau est complétée à 80% (elle pourrait être un peu plus variée, mais le principal est là). Il faut encore que je m'assure que les gommes font demi-tour quand elles rencontrent un mur et que je vérifie le design des salles-bonus.

Friday, October 04, 2013

4 days late

No time/energy for spriting or coding today ... not even mere GobScript'ing. I just barely managed to revise the end of the level ... Hopefully, I now have good ideas (imho) for the bonus cave and the "end of level unlocking".

Pas de panique, cher lecteurs francophones moins à l'aise dans le monde du Cheick Spire: je n'ai pas l'intention d'abandonner les posts bilingue. Il se fait simplement que je trace pour avoir un niveau jouable (et intéressant) dès que possible ... et pendant ces 2 minutes où je vous raconte tout ça, eh bien je n'édite pas mes petits scripts pour faire en sorte qu'on puisse décrocher l'éponge de son clou ...

Thursday, October 03, 2013

3 days late

Both pendats and verso may be stunned with bladors, although the feedback is very minimal right now (but funny). I fixed the "inkjet teleporter" issue and I'm trying mostly-harmless spongebops.
Yet, I don't like *at all* those "aouch, ZLIST errors" message I get now in runme >_< (the fix for 130 OAMs in runME wasn't propagated to the svn ^^") ... good news is that it only happens with RunME (again!)

I also got my concept sketch for the welcome/tutorial screen and a nice idea to motivate players to hunt for the bonuses hidden in the level.

J+3. Petit projet d'écran d'accueil qui permette d'indiquer au joueur ce qu'il a à savoir sur les mouvements possibles dans le jeu. Oh, on peut assommer les crayons et les gommes, même si le feedback pour ces actions-là est ultra-minimaliste. Fin des encriers-téléporteurs. Premiers essais avec des éponges qui font "même-pas-mal".

Wednesday, October 02, 2013

2 days late

Making sure Blador can be used as a weapon, cleaning level ... that shall be done. Quite amusingly, the fact that a testpoint is still needed for monsters because they will FAIL to walk on ground only when they've advanced *past* the last pixel of the structure they're walking on also means that I can set a second test point *deeper* in the ground and force the monster to turn back before encountering "fragile" ground that is only 1 solid-tile-high ... or as in the case of the introductory pendat, artificially introduce "fragile ground" here and there to confine him.

I located and fixed the root cause of "disappearing monsters due to excessive load on the GPU", which was actually only present in runME, and not in the game engine or the game data ^^".

J+2. On peut utiliser les tailles comme arme, et le niveau a été "nettoyé". Ce qu'il y a d'intéressant avec le système des "test points pour les monstres", c'est que si je met un 2eme point-test plus "profondément" dans le sol (disons dans le 2eme tile du sol), je peux alors créer des zones-tampon à l'aide d'un 'creux' sous la première ligne de tiles solides.

J'ai réglé le problème des sprites hardware insuffisants (mais comme vous lisez la version française, vous le savez déjà ;). Si j'ai l'occasion j'ajouterai ce soir les collisions pendat/taille lancé et gomme/taille. Petit sondage: est-ce que les éponges devraient blesser Bilou ou juste le repousser ? (résultat: juste repousser. 100%)

If I manage to find some time tonight, I shall code the reaction of pendats and rectoverso to thrown bladors. Is Cyril right thinking that a Spongebop shouldn't hurt Bilou ? Give me your feeling on the poll before the demo is out!

Poll Outcome: 100% (4 person) voted for SpongeBop that doesn't hurt, but merely bops you away.

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.

Le jour J est arrivé. Le .nds pas. Le pendat marche et fait demi-tour, celà dit, mais c'est à peu près tout. Il faut que je lui règle ses boîtes de collision, ses testpoints, faire en sorte qu'on puisse l'assomer avec les taille-crayons, etc. Bref, le mieux que je peux vous proposer c'est de faire le tri entre ce qui mérite qu'on retarde la sortie du jeu-anniversaire (liste ci-dessus) et ce qui peut attendre une autre release (liste ci-dessous).

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.

J-1, bonjour les pépins. En plus des effets curieux lors des déplacements d'encriers et du pendat qui fait la grève, je me retrouve régulièrement avec le moteur de jeu qui se plaint qu'on dépasse la limite des 128 sprites hardware. Il faut dire qu'à lui seul, un pendat en consomme déjà bien 6 ou 7, et que le moteur les pré-alloue pour l'ensemble du niveau. Du coup, quand les encriers décident de lancer de l'encre je suis trop court.

(edit: heureusement, ce n'était qu'une fausse alerte liée au fait qu'un des morceaux de runME s'auto-alloue la moitié des sprites hardware et n'en laisse que 64 pour les niveaux du jeu ^^" voir les détails dans les commentaires)

edit: fixed with automated OAMs management. It took over 1 year, but hopefully, meanwhile I had realised that I was far from the hardware limit and just experiencing issues in runME because it pre-allocated half the OAMs "for internal purpose"

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.

Bien. Les animations pour projeter Bilou fonctionnent. Ce serait pas mal que Bilou s'abaisse de 3-4 pixels pendant que l'encrier se prépare. Reste à mettre à jour runME et transférer les .cmd sur la DS pour faire quelques tests en situation réelle. J'ai aussi rajouter une animation de demi-tour pour les pendats. On devrait pouvoir les intégrer prochainement.

Manquent encore des blocs pour la "fin du rail", les rails horizontaux, rendre les gommes vulnérables au lancer de taille-crayon, vérifier que les encriers-sur-rail fonctionnent correctement et que le moteur de jeu permet d'attraper les éponges dans runME.

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? 

Le J-3 est un jour de congé, et ça tombe bien, parce que je n'ai pas avancé autant que j'aurais voulu hier. Quelques commandes state à ajuster et voilà Bilou qui se fait projeter par un encrier pour la toute première fois. Petit frisson. Reste à ajuster l'animation pour que ça marche correctement. Et corriger le parser pour qu'il prenne les animations de transition en compte dans tous les cas, et pas seulement quand la transition est le résultat d'une collision.

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.

J-4. Les gommes peuvent se balader en rebondissant et elles évitent les endroits "dangereux" pour elles quand c'est possible. Concentrons-nous sur les interactions avec les encriers: ils doivent arrêter de se promener dans le niveau, tirer leurs gouttes à une vitesse raisonable et surtout, projeter Bilou en l'air.

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 ?

Plus que 5 jours avant la fin du mois de septembre, celui qui est 20 ans après la 'naissance' de Bilou. J'ai dessiné une 'plate-forme en liège', j'ai des éponges au mouvement ajustables. Les gommes-sauteuses ne marchent pas terriblement bien avec les 'murs invisibles' , donc je rajoute un état où elle se prépare à sauter et où elle 'sonde' le sol pour décider de faire ou non demi-tour. Si ça marche, ce sera un record battu pour les testpoints.

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.