Any platformer custom movement extension you would need?

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)

Air jump, wall jump and slide jump
A demo build: Liluo game build
The demo project: AdvancedJumpAirAndWallJumpExample_D8H-1.zip
The extension PR: [AdvancedJump] Add wall jump, wall sliding, air jump and dash by github-actions[bot] · Pull Request #325 · GDevelopApp/GDevelop-extensions · GitHub

Automatic ledge grabbing
A demo build: Liluo game build
The demo project: platformer-autograb.zip
The extension PR: New extension PlatformLedgeGrabber. by D8H · Pull Request #341 · GDevelopApp/GDevelop-extensions · GitHub

Automatic jump height configuration (easier than choosing the jump speed), trajectory evaluation (useful for AI)
A demo build: Platformer Jump Evaluator by D8H
The demo project: platformer-jump-evaluator.zip
The extension PR: [PlatformerTrajectory] Add a behavior to evaluate jump trajectories. by D8H · Pull Request #334 · GDevelopApp/GDevelop-extensions · GitHub

(note than any feedback on these extensions are welcome)

Is there any platformer custom movements that you would like to see in an extension?

6 Likes

Maybe auto jumping when walking on a platform’s edge?

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.

4 Likes

A condition to check if the player is on the edge of a platform?
It could allow the auto jumping or a “I’m going to fall” animation.

1 Like

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.

1 Like

@davy

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:

  1. Toggle crouch (Hold button to crouch or not)
  2. Crouch movement speed

2- An extension that lets the player to dash with options like:

  1. Dashing force strength
  2. Dashing length
  3. Is the dashing pressure based? (If you pressed the dashing key longer the dash will be longer)
  4. 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:

  1. On which animation to delay the loop and on which frame

4- An extension to add Sliding to the player with options like:

  1. Sliding speed
  2. Sliding deceleration intensity (How slow you become with time until you stop sliding)
  3. Sliding range (How far can you slide)
  4. Stop Sliding if the player is falling (Yes or No)

With details like:

  1. 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:

  1. Push/Drag speed

With details like:

  1. Stop the object when hitting a wall
  2. Stop the player when he is in between the object and a wall
  3. 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 Like

(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).
1 Like

Absolutely love that yeah!

I believe this can be done with events but as an extension it will be a nice addition for sure.

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)

1 Like

oh i never thought of gravity direction but that is a REALLY great idea

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))

Wallrunning would be great

a super jump (very high jump that can be used mid air) behavior would be great.