My goal is to add new conditions and actions on the Platformer Character behavior to make it easier to do custom movements and help the community write extensions for them.
I’m thinking of adding this to the Platformer Character behavior:
Add a boolean parameter “try to keep the character speed constant” to the “max falling speed” action.
Add an action to change the current speed on X axis.
Add an action to change the current falling speed.
Add a condition to check if the character was stop by a platform on the right or on the left.
This is some examples of platformer extensions:
Coyote time (already in the community extension list)
I think I’ve seen a lot of people ask for dropping down from jump through platforms? Like, an action they can use that is “simulate drop from Jumpthrough platforms” or something similar.
Not sure how it could be accomplished, right now I usually recommend they temporarily disable the platform behavior on the platform itself, but that causes issues if there are enemies on it as well.
I guess it’s something we should add to the engine. The workaround needs JS: move the character 1 pixel down and force its state to falling with a small initial falling speed.
First I want to say this one is so good, it’ll be a very nice addition to any game, attention to details like this is what makes the game feel alive.
Is there any platformer custom movements that you would like to see in an extension?
Here is my list with details:
1- An extension that lets the player activate crouch with options like:
Toggle crouch (Hold button to crouch or not)
Crouch movement speed
2- An extension that lets the player to dash with options like:
Dashing force strength
Dashing length
Is the dashing pressure based? (If you pressed the dashing key longer the dash will be longer)
Dashing Acceleration and Deceleration (Not sure how this would feel or look like)
3- (This should be an event more than an extension) Add An extension / event to add a delay to any animation loop without affecting FPS of the animation.
(For example when the animation is finished, stop the animation for 2 seconds then loop, I know this can be done with events, but having an option for it in the engine should be a thing by now).
With details like:
On which animation to delay the loop and on which frame
4- An extension to add Sliding to the player with options like:
Sliding speed
Sliding deceleration intensity (How slow you become with time until you stop sliding)
Sliding range (How far can you slide)
Stop Sliding if the player is falling (Yes or No)
With details like:
Stop sliding automatically if the player hit a wall
5- An extension that lets the player push or drag objects around (With a click of a button) with options like:
Push/Drag speed
With details like:
Stop the object when hitting a wall
Stop the player when he is in between the object and a wall
Stop the player when he is in between 2 objects that is being pushed
If I have any other ideas I’ll add it here in a new comment.
(1) and (4) could probably be done with a behavior that allows to toggle with an alternative configuration. This behavior seems to be a good case where the same behavior could needed multiple times on the same object.
(2) It could be interesting to also have a vertical dashing (for instance, to smash enemies on the ground like in Dead Cells) or a dashing toward a position (to do things like the homing attack of modern Sonic games)
I think that a platformer bounce behavior could be useful to bounce off an enemies or spring. I guess, it could be done with a jump that has an alternative configuration.
(5) An object that can be moved in a platformer can almost be done by adding both the character and platform behaviors. But it’s not easy to push the object with a character because the character looses its speed when it collides a platform. It would need:
a new setting to keep the character speed at collision (or the extension could save it and put it back)
an action to change the current speed on X axis of the object to set it to the character speed (and eventually reduce the speed of the character to feel the weight).
gravity change (default is South)/glue to solid platform or at least some sort of running on a wall
(Example: Sonic slopes and Pizza Tower’s wall running)
Platformers that change the gravity will probably have other very custom rules so they will probably need a custom platformer system build on top of a physics engine.
In case a gravity to North, it would mean to choose between top/bottom, positive/negative and greater/lower everywhere in the code of Platformer. So, it will probably never happen, but it can be workaround by having a copy of the level rotated at 180° and switch the character from one to another when the gravity toggle and rotate the camera too.
Wall running, seems to be something possible, but it would need a lot of changes:
the jump is not necessarily in the same direction as gravity
a character on the floor can slide with gravity
and probably all sort of other tricky cases
The platformer extension could give an option to follow a floor with a constant speed (it’s currently constant on the speed X)
Greetings, I’m very interested in your make unit movements like in some tactical games with GDevelop. I’d like to chat with you, but I can’t find a way to contact you. It is interesting how to complete the move and transfer it to the enemy and the attack of the units itself. I’m a beginner in gamedev))
I think it would be useful if we were able to modify the Y Speed of a character.
This would be very useful to create more types of obstacles like geysers (holes where water comes out rapidly) that gradually pull you upwards, and aren’t an obstacle.
I know this is an old topic, but this feature would be genuienly useful.
Thanks.
The thing is, when jumping, the character abruptly stops falling to execute the jump. I’m looking for, in my case, to subtract to it so that, using the example of the geyser obstacle, make it so that if you fall in, it slowly breaks your fall, and then, it pulls you up.