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.

Aucun commentaire: