mercredi, avril 19, 2017

Augmentons la Gravité ?

J'ai eu l'honneur (et un peu la chance, il faut l'avouer) d'avoir un retour de Romain Claude -- dévelopeur principal de Splashers sur mon School Rush. Un feedback assez technique et qui ne sera pas facile à prendre en compte, parce qu'on s'attaque ici au coeur du gameplay.

Mon principal retour pour le moment concerne la prise en main, que je trouve assez raide. De plus, le fait que le jeu soit assez mou rend le tout assez hardcore, même en facile ... Côté contrôles vous devriez avoir un air control progressif (de moins souple à beaucoup plus souple), et ceci marié à une gravité plus forte rendra la prise en main plus réactive et agréable. Par contre pour retrouver la même hauteur de saut il faudra augmenter la valeur de l'impulsion.

I'm honoured and proud that Romain, main designer of the platformer "Splasher" took the time to try and give detailed and technical comment on my own "School Rush". In the upcoming weeks, I'll likely be busy understanding the implications of his proposals and doing attempts to adjust the gameplay of SchoolRush accordingly.

The first suggestion is to increase the gravity to get more a reactive experience -- which echoes a comment from Kirby Kid in a previous iteration. That's not something to be taken lightly, though. Many things in the game depends on the gravity. Changing it by a ration g'/g means that you have to modify the jump impulse v1 so that the maximum height of the jump -- v1²/2g -- remains constant. But even so, the amount of time you stay in the air is reduced due to the increased gravity, meaning that the distance you can clear with a jump is shortened.

Mais changer la gravité, c'est changer beaucoup de chose. En plus d'ajuster la puissance de l'impulsion, je dois aussi ajuster la vitesse de déplacement de Bilou puisque le temps qu'il passe en l'air, lui a été réduit. Sans celà, il faudrait revoir tous les obstacles du jeu.

En fait, une fois tous les paramètres dépendants de la gravité réajustés, on a le même jeu mais avec le temps accéléré. Ce n'est pas déplaisant, mais ça va demander aux joueurs d'être plus alerte, parce que du coup, je vais devoir aussi augmenter la vitesse de l'encre sans ça elle est complètement à la traine. Peut-être devrai-je aussi accélérer les pendats...

By increasing the walking and the jumping speed of Bilou with the appropriate factor, I can keep the levels unchanged and enjoy a more engaging gameplay. I'll have to speed up the rise of the ink: at the moment, the game has turned too easy and I might also have to speed up pendats, so that Bilou don't outrun them too easily, which will shrink the response time allowed to the player (to 86% of the current value for g'/g=4/3) ... but it still leaves 500ms+ to react, so that should work.

http://critical-gaming.squarespace.com/blog/2011/1/5/super-meat-boy-pt1.html
J'essaierai celà dit d'éviter "l'effet Meat Boy" si je le peux, à savoir d'avoir le contrôle en l'air tellement élevé que l'on finit par "glisser" dans l'air et se déplacer plus vite horizontalement que verticalement. Mais en ajustant la vitesse horizontale maximale, il devrait y avoir moyen d'éviter ça.

Directly linked to the change of gravity, Romain suggests progressive air control. The current code controlling Bilou has some momentum while mid-air with an acceleration that is 1/2 of the one you have on the ground.

In his interview about Splasher, Romain says:
Air control is a touchy subject: you need sufficient control so that player can compensate for an imperfect impulse (imperfect timing or speed) while still having an interesting skill floor, but not give too strong air control, else the player will [go wild at uncontrolled speed] at the slightest move of the joystick.
To balance things in Splashers, Romain used delays, so that the air control just after the impulse is not as strong as it is some frames later.
This happens in Super Meat Boy too, with a character that initially struggles to work against its original impulse, but that gets increasing amplitude as you maintain the joystick pushed into one direction. To be honest, Super Meat Boy isn't one of my reference in terms of gameplay. I would even consider it as a counter-example of convincing physics . Comparatively, the physics in School Rush is intended to push the player to run first and jump next: while mid-air, you can slow down and turn back, but you can't reach the running speed again after you lost it, only the walk speed. More thoughts and code on that later.

Dans le "School Rush" actuel, j'ai un système qui encourage le joueur à prendre le temps de courir avant de sauter: une fois en l'air, on peut ralentir et faire demi-tour (Bilou reste tout de même un explorateur de l'espace, ça offre quelques mouvements inaccessibles aux simples humains), mais on ne pourra jamais atteindre à nouveau la vitesse maximale avant d'avoir touché le sol pour courir à nouveau.

Ma première tentative pour m'approcher du "contrôle de plus en plus souple" (que je traduis par "augmentation linéaire de l'accélération horizontale avec le temps passé en l'air") consistait simplement à autoriser une vitesse horizontale plus grande en phase descendante par rapport à la phase ascendante. Mais ça, ça n'a pas été un succès.

vendredi, avril 14, 2017

splashers

Quelle sympathique façon de découvrir un nouveau jeu que ce match de splasher entre Usul, Ben et Leo.  Mais il y a mieux: la présence de Romain, le dévelopeur principal du jeu qui nous présente un peu son histoire et celle de son jeu.

There are days were you're lucky if you speak French. Because if you do, you can get all sort of advices on gameplay tuning and interesting relationship between Rayman: Origins and Splasher explained by the game designer himself. 

Le Notuto dans splasher

"Notuto", c'est mon mot à moi pour décrire le fait de construire son jeu pour qu'il n'y ait pas besoin de tutoriel spécifique.  Puisque toutes les actions importantes du joueur passeront par des tirs d'un des liquides impliqués dans le jeu, les premiers niveaux auront recours à des "canons" de l'encre la peinture correspondante. La bonne idée, c'est que ça permet de mieux montrer le côté dynamique (il va falloir peindre) que d'avoir la peinture déjà placée à un endroit donné. ça montre aussi certaines interactions que de la peinture statique n'aurait pas eu. Autre truc "notuto", les ennemis fuyeurs, qui partent en avant quand ils nous aperçoivent et du coup déclenchent des pièges qui les exterminent, nous montrant le fonctionnement de certaines mécaniques de jeu.

Romain took advantage of the primary mechanics of his game (shooting) to present all the variants it could have. Because it is quite easy to have something within the level that shoots too (a cannon) and thus you can have the player watch the new variant before she actually has to do the new variant. 

This is even reinforced in the "free-the-dude" not-so-hidden rooms, where sometimes the simplest winning move is not to move and let the room do the work for you. A nice way to avoid written tutorials, if you ask me.


Puis il y a les "warp zones" où il n'y a parfois rien à faire, pour donner au joueur un moment où il est invité à analyser la situation et trouver ce qu'il convient de faire plutôt que de devoir enchainer des manipulations techniquement exigeantes, qui sont ré-inspirées des "maps-cage" de Rayman Origins.

Le tuning

Parce que Splasher, c'est aussi 3 ans à peaufiner les détails pour que l'expérience de jeu soit celle espérée par le dévelopeur. 
La distance entre l'avatar et la caméra, très dé-zoomée contrairement aux Sonic des années '90. Une grande attention apportée aux déclencheurs d'évènements en fonction de l'avancée du joueur (comme dans SMW), même si apparemment c'est plus "checkpoint par checkpoint" que "écran par écran", sur le coup. Et je n'ose même pas imaginer le travail que ça a dû représenter d'ajuster les zones bloquantes autour des scies pour que le joueur n'ait pas besoin de calibrer *chaque* saut.

Les mécaniques de jeu

Le contrôle en l'air, où on discute sur le contrôle en l'air, conditionnée sur le temps de saut (quasi nul au moment précis de quitter le sol, et prise de contrôle au fur et à mesure que le saut atteint son appogée puis que la descente commence.

Puis il y a le shoot "assisté": on indique une direction et l'avatar tir vers la cible détectée dans cette région-là, par "aimantation de la visée" grâce à une zone d'attraction centrée sur chaque cible potentielle. Cette dimension-là sera plutôt développée dans les phases de "boss".

L'interview avec P-Y.

Il y a un mois ou deux, j'ai eu le plaisir de répondre à l'interview de P-Y, un doctorant qui s'intéresse tout particulièrement aux motivations des développeurs de jeux amateur et hobbyistes. Plus ou moins trois heures de questions-réponses que je vais un peu indexer, histoire peut-être d'en faire une vidéo illustrée par des extraits de blog ? Parce que vous vous en doutez, quand je raconte tout ça, j'ai des bouts de mon blog en tête, bien sûr.

Voilà donc pour la première heure

00% -- Comment en es-tu venu à vouloir faire des jeux ?
09% -- La première fois où tu t'es dit "j'ai envie de faire un jeu vidéo" ? (05:55) -- c64 -- calimero
18% -- Si vous aviez eu la super-nintendo à la maison, vous n'auriez pas pu faire de jeu sur SuperNES -- tiled -- hardware
32% -- Le lien entre créer et continuer à jouer. (20:00)
38% -- L'analyse des jeux comme prolongement du jeu (23:00) -- critical link -- rpg -- mechanics -- dangerous -- mario
47% -- Il y a des amateurs de jeu vidéo comme il y a des cinéphiles ? (28:50)
52% -- une couleur chaude pour les sauts difficile, une couleur froide pour les sauts faciles. (31:59)
54% -- le platformer comme de la lecture à vue (33:07) -- mario
59% -- Guitar Hero n'est pas un jeu, c'est un concours ; Manic Miner est un puzzle (si tu lui mets les vies infinies) (36:00) -- beyond-blogosphere -- do-you-sass-zx-willy
76% -- Quand tu fais un jeu, est-ce que tu cherches à exprimer quelque-chose ? (46:22)
81% -- L'appropriation, l'expression des mécaniques appréciées dans la création. (49:00)
85% -- Comment a disparu l'envie de piéger le joueur ? (52:15) -- rayman -- badman
94% -- Amateur = je le fais pour moi ? (57:00) -- feedback

PS: oui, l'environnement était un peu bruyant. A refaire, on ne s'installera plus dans une cafétaria.

mercredi, avril 12, 2017

De plus en plus long ?

Ai-je raison de penser que les niveaux de jeux de plate-formes sont de plus en plus long, et donc infaisables sans avoir une demi-douzaine de checkpoints au minimum et des vies infinies ? 

pirez in Bilou : School Rush (1'30") P

SMB 1-1 à l'aise (1'20") NES
SMB 4-1 à l'aise (1'20") NES
Commander Keen, perilous pit (4'00") SNES
Commander Keen, perilous pit (0'45") -- world record. SNES
DKC, Millstone Mayhem (1'20") SNES
SMW, Donuts 1 (1'15 en prenant son temps) SNES
DKCR -- level 2, 100% (7'30") WII+
DKCTF -- level 2-6, no collectible (2'40) WII+
Rayman Origins, level 2-1, 3 cages (4'30") WII+
Splasher, level 2 (speedrun) (1'30") WII++
Splasher, level 7 (speedrun) (1'50") WII++
Giana Sisters Twisted, level 1-6 (speedrun, no boss) (4'35") WII++

La minute' trente de Pirez pour finir le parcourir le niveau 1 de Bilou: School Rush est donc assez bien dans la moyenne. Ce n'est pas un niveau court, mais ce n'est pas un niveau long non plus. Il y a bien des jeux qui ont des niveaux beaucoup plus longs (la palme revient à Giana Sisters, talonné par les Donkey Return/Tropical freeze si on essaye de récupérer les items).

Sometimes, I got the feeling that levels in platformers are up to 10 times as large as they used to be. That feeling grew up as I played/watched some Tropical Freeze and culminated with the strolling in the amethyst mines of Giana Sisters: Twisted Dreams. But is it accurate ? Above is a list of youtube power plays / speedruns of some of my reference games. I picked the second level most of the times, or the first level orf world 2 ... or some particularily memorable level I want to compare against.

It looks like I'm not completely wrong, but biased by the amount of side-action that exists in latest Rayman and Donkey Kong games. Splasher, on the other side, seems to have a more standard 1:30 average run-through time. Just like Bilou: School Rush :P
.

Splasher, par contre, reste dans un timing habituel. C'est uniquement parce qu'il s'agissait d'une "blind race" que j'ai eu l'impression que les niveaux étaient beaucoup plus longs que le "niveau standard"

PS: non, ne cherchez pas Keen 4 sur NES. C'est un jeu PC. Je le mets dans "SNES" en fonction de son époque et de sa technologie (CPU 16 bits, peu de mémoire, son FM). Idem pour les "Wii+" et "Wii++".

Ah oui. J'expliquerai un peu plus tard le lien avec Splasher.

vendredi, avril 07, 2017

Un peu de perspective ?

J'avais trouvé hob (runic games) totalement épatant, mais en faisant des essais pour le ramener à une vue 2D totalement à plat (façon Mario World ou SMB* sur NES), il faut bien reconnaître qu'on perd beaucoup de l'effet étrange, même en essayant de jouer sur des effets de lumière pour reproduire la perspective.

A peu près au même moment, je tombe pour la première fois sur la réinterprétation de Zelda II par Itchabop ... Je suis convaincu. ça donne plus de profondeur aux scènes, une ambiance plus close et à mon avis tout à fait utile pour la zone du chateau ou de la pyramide (et sans doute très bien aussi pour le temple perdu si jamais j'arrive jusque là).

(C) Ichtabop 2017
Hob's environment design works great because of hob's perspective. Itchabop's mockup of Zelda II conveys impressive atmosphere partly because of its perspective that put next to each others things that you can walk on and parts that are out or reach and mysterious.

Can I improve my skills and tools to get something similar in the desert and castle zone of Bilou ?


Du coup, je sors mon bloc à gribouille et je cherche un peu ...

Quelle perspective ?

Il faut qu'on reste dans quelque-chose de propice à du jeu de plate-forme. Je connais le système 1/3 pour une face 2/3 pour l'autre face, régulièrement utilisé pour un jeu façon Zelda "2D", mais même en inversant les proportions habituelle et en mettant 1/3 pour le sol et 2/3 pour les murs, c'est encore trop (cf. le tuyau de mario en bas à gauche de l'image). J'opte donc pour 1/6eme de dessus contre 5/6eme de face en espérant ne pas déchirer le continuum espace-plan.

I think I need something more subtle that the typical RPG perspective, where a cube's top would take 2/3 of the tile's height and the cube's front would be 1/3. Testing with Super Mario pipe makes me think that I should have at most 1/6th for the top and 5/6th for the front part to have a platformer-friendly perspective.

With those values, a 16-wide cube would show 2.66 pixels of "top" area -- okay, let's say 2 pixels of "top" color plus one pixels of shared "highlight" area.


Avec ces valeurs-là, un cube de 16 pixels aura approximativement 2.66 pixels de "surface horizontale" affichée. Allez, disons deux pixels pour le plat et un pixel de highlight partagé, puis 13 pixels "de face".

Et la School Zone ?

Oui, parce que pour avoir des images intéressante dans School Rush (et dans la school zone en général), j'ai déjà cherché à éviter les objets placés complètement face caméra, notamment avec les livres qui sont décalés. Plus question avec une élévation de 15° de choisir arbitrairement la taille de la tranche et la taille de la reliure. Il faudra que ça corresponde à un angle de rotation et une dimension de page qui soit cohérente. Ensuite, il faudra beaucoup plus de graphismes parce que si j'ai bien calculé, une section de 48 pixels de large correspondra à un décalage de 5 pixels et autant de variante d'un tile (mettons la transition bas/côté du livre) qu'on ne souhaite de dimension de livre (16 pixels plus large, il sera 2 pixels plus bas, etc.)

That's all nice for cubes and affordable for pencils, but big books will be more complex to handle. Their ratio will need to be studied more in-depth. The slopes to have will depend on the angle they're doing with the X axis, and they will lead to *much* more tiles just to cope with the vertical offset introduced. That's completely unpractical for the current engine. Another approach of how level map is turned into contents for the video RAM is mandatory to get the effect propagated back into the School Zone, and that won't happen any time soon.

Une horreur pour le game engine actuel

Pas question, donc, de pousser ça dans School Rush. Par contre, avec un game engine qui utiliserait la mémoire vidéo comme un "cache" pour un tileset plus grand, et avec un level editor capable de créer au besoin des versions "déphasées" horizontalement ou verticalement de n'importe quel tile, ça deviendrait envisageable.

vendredi, mars 31, 2017

c'est rien qu'un jeu.

J'avais été assez surpris d'entendre Nemau chercher à pousser jusqu'à effacer des sauvegardes ou obliger qu'elles soient uniquement sur serveur pour assurer que la permadeath soit effectivement de la permadeath. Outre le défi technique (sorte de course à l'armement entre le hacker et le joueur), je crois qu'il ne faut pas perdre de vue qu'il ne s'agit que d'un jeu. Pas d'un concours, d'un examen ou de la finale olympique.

Some games do permadeath, other don't. Personally, although I never had re-played a specific map of Worms, I appreciated the idea that I'd have the power to bring a exceptionally interesting seed to a friend so that he can experience what I had. Should the game designer start investing time into anti-savestate copy (assuming the span of the game session can be as long as requiring savestate when there is procedurally generated levels) ?

Okay, copying a file is not playing fair, but it's a game, right ? there is no contest, there is no price. If you want to have a contest like a speedrun, the game itself is not quite what you need. What you need are referees, like with any sports. If you spoil the game by cheating against the game rules, why should there be any punishment beyond the fact that you've spoiled yourself the chance of experiencing what the game has to offer ? If the player want that hard to stop the game, restore a file, enter the game again instead of keep playing another game, maybe it means the game fails to provide interesting sessions when you start ? Can you protect against time-machine-like system-wide backup/recovery ? Should you ?



Ça veut dire qu'on doit avoir la possibilité de tricher sans qu'il n'y ait d'autre punition que le fait que le jeu perd son intérêt. Pourquoi préfèrerait-on quitter le jeu, recopier le fichier, redémarrer le jeu plutôt que de refaire une partie? S'il est effectivement désagréable de devoir tout reprendre, c'est peut-être que le contenu généré automatiquement n'est pas suffisamment intéressant. Tu peux essayer de "cacher" le fichier de sauvegarde, mais il y aura toujours moyen de le manipuler depuis l'OS à moins de commencer à utiliser un hardware de sécurité spécifique.

Par contre, une copie du fichier de sauvegarde peut permettre de faire essayer une expérience passée à un copain de passage.

lundi, mars 27, 2017

Bamboo Spark to the rescue

J'avais envisagé m'offrir une noteslate pour mon anniversaire. Mais même un an après la date de sortie annoncée dans l'appel à pré-commandes, il n'y a toujours pas de Noteslate disponible. Par contre, j'ai reçu la très sexy et un peu curieuse "bamboo spark". Une tablette graphique nomade et autonome, en somme.

I have a dream of an electronic device that would not hurt the eye. It would be as easy to use as a sketchpad. It might be crude, but it could capture drawn information as naturally as a keyword captures typed information.

I had hope that noteslate would match that dream. I had hope that staedler digital pen would fulfill that dream. I had hopes that hacking code for the cybook would make that dream close to reality. It didn't worked. This week-end, my family gave me a Bamboo Spark unit. Something that captures pen strokes, even when there is no computer around. You just write on plain paper with a modified rollerball pen. When close to an Androïd/iOS device, you can then swap pages that are in the device's memory.

From there on, you can send your notes to different data-sink applications on the phone/pad you have, though unfortunately, with my fairy's pad, twitter and blogger applications don't seem to work.


On trace, ça enregistre. On synchronisera avec un appareil Androïd (ou iOS pour les autres) plus tard. Les traits sont nets, bien plus précis et fiables qu'avec le décevant stylo numérique de chez Staedler, malgré la présence ici et là de "lignes fantômes" que je dois encore retoucher dans gimp. C'est aussi beaucoup plus propre qu'une photo de bloc-note et même que la plupart des scans.

 The result is clearly more appealing that whatever I come up with using a scanner or shooting a picture, but it is unfortunately not yet perfect. First, I cannot crop without downloading the file on a full-blown computer (or maybe I could do that in Androïd's Image Gallery ?). Second, the device introduce random "ghost strokes" that impact readability and better have to be deleted. It's a shame the "draw" feature of the androïd application can only paint white (or black) pixels over the captured strokes, and not delete a stroke as a vector object.

Pour les schémas du type "UML" et sans doute pas mal de croquis d'études, c'est assez chouette. Par contre, peu probable que je puisse m'en servir au bureau pour encoder directement les comptes-rendu de réunion: la reconnaissance d'écriture n'est présente ni dans l'application Android, ni dans l'appareil lui-même, mais uniquement sur les serveurs de chez Wacom. Pas sûr que le boss apprécierait que tout ce qui se dit en salle de réunion termine là... Et pour le contenu du blog, on repassera: la fonction n'est disponible que moyennant abonnement premium :(

If sketching UML documents works fairly well, there is no default handwriting recognition. For that, you have to upload to wacom's cloud and pay the premium subscription to their services. That means the device can't be used as a write-to-report short cut, unfortunately. Not if the meeting whas somewhat private, as any meeting at work would be:


Wacom may disclose all of Your Personal Data to service providers [for data processing, storage and transmission, and other form of support for the application] and to legal authorities [in case wacom believes this is required by law]. Wacom will not sell or disclose your personal data  to other third parties.
I thought I had found a windows application that would allow me to skip the need for a android device at hand (for use in the office, that is), but it is apparently for another device. I also find it strange that it leaks usage information through Google Analytics. The era of Micro Application is so far away ! (in any case, as mentioned in the Inkspace license contract, "You can withdraw your consent by opting-out the use of Google Analytics. The opt-out is available under /Settings/About/Google Analytics/ within the Inkspace App").