Wednesday, September 30, 2015

Deuxième essai pour StraightThrow.

Je n'ai pas grand-chose de solide à opposer au commentaire de Zim comme quoi le lancer de School Rush manque de punch. En fait, en voulant faire les petits dessins-tutoriels pour l'action "lancer un taille-crayon", je me rends compte que la seule façon de le montrer, c'est avec un taille-crayon qui part en ligne droite vers sa cible. Un "Straight Throw", en somme.

Je fais donc un essai de gameplay: B fait un Straight-Throw, UP+B fait un Classic-Throw. Ainsi, je fais du cas de figure le plus important l'action par défaut tout en donnant de la marge pour planter un blador sur un crayon ou placer une SpongeBop pas trop loin dans l'encre.

  • [done] rebondir sur un ennemi pourrait faire sauter plus haut
  • [done] lancer manque de punch (ça ne va pas très loin), si l'on pouvait contrôler la distance et la direction rendrait le maniement plus jouissif (l'impression de faire ce qu'on veut)
  • [done] lancer en pleine course pourrait augmenter la portée du "projectile" (il me semble que c'était pas possible)
Lancer plus fort en pleine course ne donnait rien avec le Classic-Throw, parce qu'il devenait impossible de juger de la trajectoire. Avec Straight-Throw, ça ne devrait plus être autant un soucis, et ça encourage le joueur à prendre de la vitesse, ce qui est le point central de School Rush.

Remember I said "straight throw" as a power-up didn't convince me ? Yet when it is time for me to illustrate "you can stun pendats with a blador", what naturally comes out is a straight throw. So it seems Zim wisely pointed out the lack of power in the current (classical) THROW. I changed the way impulse from Bilou is conveyed to thrown items so I can have "straight-throw" by default and "classical throw" on-demand with UP+B. That feels much more natural in this game, altough less original and possibly less suited to the Big Adventure that is yet to come.


Edit: I'm not sure players will feel that the blador is thrown further as they move faster, but at least they will not get the feeling that they're reaching it back.  Another mechanic to change in a similar way would be to require double-B to use Big Punch.

Note to future self: remember how you spent displeasant hour trying to figure out the reason for a Guru Meditation after you compiled this TryThrow.nds from the mercurial sources in Trusty Tahr. Remember how you promised yourself to spend at least equivalent amount of time on a "build.sh" script that would make the start-of-work from a fresh hg clone reliable.

  • [done] update spons.cmd.c so that it also obeys two-dimensional impulse as the bladors do.
  • [done] merge in "hang-on-spons" when Bilou miss an AIRHOP auto-move.

Saturday, September 26, 2015

1st Mercurial Commit

Oh, the first one for this hobby project, I mean. I'm using mercurial happily for about 18 months at work. It is smoother to use than git, to my taste.

And it brings a first step for the "quick navigation" widget, that is the rendering of the map. It just need to be turned into a widget and migrated to the right window.


Bon, bri-coder un outil supplémentaire pour mon éditeur de niveau assis dans les escaliers parce que c'est le seul bon endroit de la maison pour le faire, ça faisait longtemps ... Mais les enfants voulaient jouer dans leur chambre, et rentrer trop dans la chambre, c'était devoir refuser "la vie la vie" sur youtube toutes les 2 minutes.

Par contre, cette fois encore, il manque criamment un mécanisme permettant à plusieurs contextes (les 'windows') de collaborer à travers une structure de données ou un widget commun. 

Oui, j'abandonne SVN au profit de Mercurial, avec lequel je me sens désormais bien plus à l'aise. Et puisqu'il me faut lâcher ma LTS de 2010 pour me risquer en Trusty Tahr, j'en profiterais pour basculer en bash et définir EDITOR=vim dans mon profil, au risque de choquer ceux qui ont fait de l'admin système avec Sheriff...

Tuesday, September 22, 2015

Magic Feet ?

Je cherche un moyen pour que le joueur de School Rush voie immédiatement s'il a un power-up ou non. Il y a bien sûr l'idée géniale de mon frangin d'utiliser l'écran du bas pour montrer les possibilités que Bilou gagne au fil du jeu. Quelque-chose, si on utilise l'habillage d'un "livre d'histoire", qui se marie assez bien avec les bonus-tutoriels que je cherche aussi à ajouter.

The next Big Thing I truly need to bring into School Rush is a way to view which powers Bilou can currently use. That's something Zim pointed out. That's something latent (you remember how the S-Team wasn't using power ups at all) since I introduced the power ups. I keep thinking that my brother's idea of using the bottom screen is a great way to avoid tutorial texts/screens. But I'll need something more.

Mais ça me semble incomplet. Il manque quelque-chose de visuel. Mais pas des petites ailes dans le dos, ni un chapeau à la Kirby. Pas non plus une sorte de bouclier élémental à la Sonic 3 ... Pas de changement de couleur à la Megaman. Rien de tout celà ne serait compatible avec le personnage que j'ai en tête. L'ennui, évidemment, c'est qu'en fait rien de ce genre n'a été envisagé dans le design d'origine, sauf peut-être les lunettes noires qui accompagnent l'astro-flasheur. Ce n'est pas vraiment une surprise: les pouvoirs de Bilou n'étaient pas prévus alors pour être temporaires (plus similaires aux missiles de Samus que de la fleur de feu de Super Mario, donc).

I know I don't want color swaps like in Megaman, nor little wings (Kirby-like) or a sort of colored shield (Sonic-like). That doens't fit my own perception of Bilou's character. I could accept, however, blinking magic feet or blinking magic hands, with trailing sparkles. It doesn't look too bad on this mock-up. I'll dig further how to properly implement that knowing that the multi-palette technology makes it a bit harder (requires memory un/re-mapping synchronized with screen updates).

Je fais donc un petit essai. Des pieds légèrement brillants et qui laisseront derrière Bilou de petites étincelles vertes pour le pouvoir 'FLOAT' alors que 'BigPunch' fera pareil avec les mains et de petites étincelles bleues. Il faudra sans doute quelque-chose d'un peu plus calme mais je crois que ça pourrait marcher.


  • [cancelled] given the GameEngine structure, I'll have to register a post-vbl callback
  • rather opted for custom idle animations

Monday, September 21, 2015

L'avis de Zim: définir l'animation

Deuxième point du feedback de Zim:

Mon conseil serait de mieux faire comprendre par l'animation du perso sa panoplie de mouvement, développer les actions d'attraper et sauter, supprimer celle de frapper (peut-être courir), et de faire en sorte que tout cela soit impeccable (actions qui sortent de manière fiable, pas de bugs de collision, etc.). Un jeu de plateforme est excellent lorsque c'est un plaisir intuitif et immédiat de manier son personnage, il faut vraiment insister dans ce sens.
- attraper en l'air est possible vers le bas (je l'avais compris avec les nuages), mais pas vers l'avant, même si on n'a pas encore ramassé le power-up
- attraper pourrait être boosté en l'action rendant multi-directionnelle (si vers le bas et les côtés, pourquoi pas vers le haut) et également peut-être en augmentant sa portée au moins un peu

Avec ces mains-en-plasticine, c'est vrai que Bilou ne montre pas particulièrement fort ce qui se passe lorsqu'on essaie d'attraper quelque-chose. En relisant les propositions de Zim, je me rends compte aussi qu'il peut y avoir confusion entre ramasser et s'aggripper, qui sont en réalité deux actions distinctes mais proches au niveau du gameplay. Un "air grab" permet de faire l'un ou l'autre selon l'objet considéré. Un "ground grab" ne fait
Ramasser, premier essai. Trop lent.
Ramasser, version actuelle. colle bien au hit-boxes de l'action.
Attraper en l'air, qui se concentre sur la direction "vers le bas"
Pour le "gros poing", la main de Bilou enfle et ne laisse aucun doute sur l'interprétation du mouvement, mais ici, la main utilisée pour "attraper / ramasser" pourrait aussi bien mettre un uppercut. Ma première réaction est "oui, mais le gros poing est un pouvoir spécial. Il faut que Bilou sans ses pouvoir ait l'air de ne pouvoir compter que sur son astuce et son courage".

What if Zim@alexzone and I do not have the same understanding of a "multi-directional" action. I thought so far that 'AIRGRAB' is multi-directional in School Rush, because when you press B mid-air, there are 3 directions checked for something to grab: in front of you, below you, and behind you. Those three areas are supported by the places where Bilou's hand move during the attempt to grab things. But multi-directional could also mean "you pick which direction the action takes place using your d-pad".

This is clearly not the case for air-grab. It would make sense for a wider-range grab, which Zim is advocating for: the animation could take place in a limited area (good for reading), and still reaching further pixels. You could need to do "UP/RIGHT + B" to reach some sponge bop and "DOWN + B" for some others, though.. and time your button press accurately to grab something. In comparison, current GRAB is a proximity action: move your player next to the item to grab and hit when you're close. That's all I require.

Enforcing the direction with the keypad also allows to draw a larger hand, that better conveys the idea that we're grabbing things. Ideally, we could understand what the move does by watching it in the void. Like you check kick and punch buttons on a beat-em-all before you follow the "GO->" arrow for some action. 

A mieux y réfléchir rien n'interdit que Bilou ait déjà le pouvoir de soulever des choses plus lourdes dans ce jeu-ci, qu'il le conserve de façon permanente et que ça se traduise par une main qui devient plus grande quand il veut attraper les choses. Des doigts visibles, légèrement écartés, pour maximiser les chances d'avoir ce qu'on veut... c'est sans doute ça qui exprime le mieux l'action, comme on l'aurait fait dans une BD.

Voyons le côté "multi-directionnel", maintenant. J'ai tendance à penser que le "grab" est multi-directionnel parce que quand je presse sur B, Bilou attrape ce qui est devant lui, sous lui ou au même endroit que lui. Mais ça fait une animation où il est difficile de voir la main. Multi-directionnel pourrait aussi vouloir dire "dans n'importe laquelle des directions choisie" (avec le D-PAD).

Ça représente malgré tout une modification assez importante. Je pense que je vais dans un premier temps essayer que Bilou puisse s'accrocher par-dessous une éponge (y compris lorsqu'il la touche par le côté) avant de commencer à faire ce genre de changement.

Saturday, September 19, 2015

I need the Rainbow Road

I started working on a last level for School Rush, where you'd have to climb up for safety. It was tedious, because navigating in the level in LEDS can only be done with L+DPAD at the moment, in 64-pixel increments. Yet this time, I had to move through 1024x8 pixels of emptyness before I reach the "bottom" of the level everytime I want to migrate something from the title screen.

And then, i tried to copy the current game on my brother's DS using my not-so-smartphone, so I lost that map. Sigh. I'm not re-doing it that way. I will first bring on a new tool in the Level Editor. Something like a "Quick Navigate" option. I thought a "Rainbow Road" would work okay. level structure is depicted by two rasters (one horizontal, the other one vertical), and auto-zooming so that you a square area covered with stripes, and touching one pixel of that square brings you immediately to the corresponding area of the level.


Bon, perdre un niveau qu'on édite, ce n'est pas drôle. Devoir recommencer en faisant des centaines de fois L+bas pour retourner au fond du niveau, ça l'est encore moins. J'ai pris un peu de temps cette semaine pour réfléchir à un moyen de se déplacer rapidement d'un point à l'autre de la map pendant l'édition, en tenant compte des ressources vidéo déjà largement sollicitées sur l'écran d'édition. Je propose la RainbowRoad: un carré sur lequel sera représenté le niveau en utilisant un dégradé bleu-rouge pour l'axe horizontal et un dégradé foncé-clair pour l'axe vertical.

As far as software engineering is concerned, I face once again the need for a given event (update of level coordinates) to be produced by any of M sources and consumed by N receivers. M and N are small, and constant once the program is built. A bus pattern could work, or possibly something like an object that sends notifications when updated.

Color selection in SEDS could also benefit from this pattern.

Post-Scriptum thoughts:
  • Having QuickMove out of MapEditWindow allows to keep level edition full-screen. I have very limited options to introduce yet another window over MapEdit.
  • The drawback is that currently MapEditWindow doesn't show when you toggle to TilesetWindow.
  • The transient "layer selection" overlay (available when map edition in "copy" mode) could host it as well.
  • Maybe replacing one of the rasters with a overview of how "dense" the area represented by one pixel is (with transparent-to-white) would give a good feeling of where we will go ... 

Saturday, September 12, 2015

L'avis de Zim : le coeur du jeu.

Un appel à travers le cyber-space ... Zim de Level'up se demande ce que devient le jeu de Bilou ... je passe annoncer la version actuelle de School rush et je reçois un avis super-détaillé ... Les power-ups de Bilou et les mouvements possibles sont le noeud du problème. Le coeur du problème, même, devrais-je dire après avoir lu l'article traduit dans les forges d'Antoine. Il y est question d'identifier le coeur du jeu, et de filtrer les idées de gameplay suivant la question "est-ce que celà renforce le coeur du jeu".

A moins que je ne me trompe, les deux actions de base sont attraper, sauter. Deux accessoires sont frapper, courir.
En ce qui concerne le fait d'attraper, je n'avais pas compris qu'on pouvait le faire, puis comment le faire (en maintenant bas), ce qui fait que je n'avais pas pu finir le premier stage, où il s'agit de s'accrocher aux nuages. 
Mon avis, s'il peut être utile, serait d'enlever l'action de frapper, et de faire d'attraper l'action principale, et de bien l'exprimer par l'animation. Et de la renforcer, pour qu'elle permette de tuer les ennemis (les attraper puis les cogner contre quelque chose en les jetant), et aussi en la rendant multi-directionnelle, et en lui donnant une plus grande portée, et en permettant qu'elle soit multi-directionnelle.

Je suis en fait desservi par le power-up automatique "frapper" offert sur l'écran de menu. Il n'est pas perçu comme un power-up (le jeu reste silencieux à ce sujet jusqu'ici). En proposant d'amener "attraper" à devenir plus central, Zim suggère d'en faire le coeur du jeu. Ce autour de quoi tout le gameplay tourne... Un peu comme "tout tourne autour des bombes dans Bomberman" et "tout tourne autour de la canne de Picsou dans Duck Tales", histoire d'éviter que le joueur ne se retrouve dans la confusion face à la panoplie de mouvements possibles qui est trop complexe.

Un "CATCH" capable de tuer des ennemis à distance, c'est Ristar, mais aussi le costume de Robin dans Mickey Magical Quest, avec son grappin. C'est le power-up "poing-lasso" que j'ai décidé de laisser sur le côté pour ce jeu-ci. Peut-être à tort.

La question qui me turlupine c'est "est-ce nécessaire d'avoir un coeur unique dans le jeu ?". Y-a-t'il un coeur dans School Rush ? ou plusieurs pôles qui se disputent l'attention du joueur ? Y-a-t'il un coeur dans Fury ? dans Rick Dangerous ? dans Commander Keen ? Miyamoto aurait-il du refuser la fleur de feu parce qu'elle ne renforce pas le coeur du gameplay (le saut) ?

Je crois que la fleur de feu a son rôle à jouer dans Mario parce qu'elle permet de choisir de ne pas sauter pour un bon nombre de situations ou mini-mario n'aurait pu que sauter (voire attendre pour les plantes piranha).

Le coeur de Fury, c'est de changer de personnage en fonction des situations. Le coeur de rick dangerous, c'est d'éviter les pièges. Mais si je dis ça, je ne fais référence à presqu'aucune action directe du joueur.

Pour revenir à School Rush, le jeu est construit avec des couches. En mode facile, la première couche de gameplay nous autorise à terminer tous les niveaux uniquement avec le saut. Dès le niveau normal, s'aggriper aux éponges devient essentiel, et le niveau difficile est impossible sans courir. Quant au coeur de l'action dès le mode "normal", je dirais que c'est "exploiter la force des autres personnages", ce qui se décline en de nombreuses actions.

Thursday, September 10, 2015

Pixel! HUD

J'avais été complètement charmé par "Pixel!" d'Arkedo. Le style graphique rétro mais parfaitement lisible, l'humour par les graphismes et les petites musiques chippy... N'ayant pas de PS3, par contre, je dois me contenter de l'étudier de plus près via youtube.

I hope you have a PS3. Because if you do, you are able to play arkedo's Pixel! game. In addition to its marvelous look, I want to point out the way the developer hint the player about a SHOOT ability that you earn by stomping monsters. You may easily miss the way the red gauge fills up, but what will not miss is the moment where it gets full, as it starts pulsating, turns yellow and produce little sparkles.

That's not only drawing your attention: that's also designed to make you feel the urge to press the Y button on your gamepad, as all of sudden, a button-shaped icon appears and gets animated with "press"-style motion while the icon of your cat animates as well.

I find it efficient, engaging and fun. I wish I had the idea to bring something like that for Apple Assault, and I'll have to look for something similar in School rush.


Un élément du gameplay de Pixel!, c'est que chaque rebond sur un monstre remplit un peu votre barre de Meeow! (en rouge, à côté de l'icône de votre personnage).
http://38.media.tumblr.com/251dfd1f0284f7e2e1aa618ab2a181f3/tumblr_nbxrwkx5CO1tliyz4o5_r1_500.gifCe que je trouve particulièrement réussi, c'est la transformation que cette jauge subit quand l'action MEEOW! devient disponible:
  • la couleur change, et passe au jaune
  • la barre "pulse" et brille avec des petits pixels blancs
  • l'icone s'anime
  • un rond représentant un des boutons de la manette apparaît et est animé pour montrer qu'on l'enfonce.
Bref, tout est là pour indiquer au joueur qu'une nouvelle chose est devenue possible... ça aurait très bien convenu pour les "shurikens" de Apple Assault.
Je dois maintenant réfléchir à quelque-chose de ce style pour les power-ups de mon School Rush.