Edit of asset "Parametric 2D Platformer Player Controller" Accepted

Old/Current New/Edit
Title Parametric 2D Platformer Player Controller Parametric 2D Platformer Player Controller
Description Player controller for 2D Platformers designed with the main goal of making it easier for designers to focus on levels and their own mechanics rather than fiddling with unintuitive, physics-facing values like acceleration rate and jump velocity.

Current features include wall jumping, double/triple/etc. jumping, wall sliding, coyote time, and input buffering. All of these are data-driven and easy to update (including at runtime).

All the grouped chunks of data (like horizontal movement or jumping) are put in custom Resource types, so a user could easily define different styles of movement (eg: running, walking, and crouched) and switch between them from their own script.

Double jumping is enabled by giving "Aerial Jump Data" one entry. triple jumping by giving it two entries, etc. The same Resource can be used multiple times to keep all jumps feeling the same.

Left, right, and jump inputs are selected from a dropdown which pulls from the ProjectSettings' input map. All of these and a general "Floor Coyote Time" have a configurable buffer size which lets the player buffer a given input before it's permitted to trigger it on the first possible frame.

Users can specify their own custom inputs and buffer windows as well for adding additional actions (eg: dodging, dashing, attacking).

Wall jumping is enabled, again, by providing a Resource with jump data (this can also be the same as your normal jump data). You also specify some ratios to define the feel of wall jumping.

Wall sliding can also be enabled by decreasing its "Terminal Velocity Ratio" to a lower value (I've found 0.2 works well).

Of course, there are signals for basically every event that the player could cause. This is to make it easy for you to drive animations, sound effects, and particle effects via the player controller without needing to write more code (very nice for prototyping and non-code-oriented developers).

Everything is fully documented with examples, if you're ever unsure of what something means.
Player controller for 2D Platformers designed with the main goal of making it easier for designers to focus on levels and their own mechanics rather than fiddling with unintuitive, physics-facing values like acceleration rate and jump velocity.

Current features include wall jumping, double/triple/etc. jumping, wall sliding, coyote time, and input buffering. All of these are data-driven and easy to update (including at runtime).

All the grouped chunks of data (like horizontal movement or jumping) are put in custom Resource types, so a user could easily define different styles of movement (eg: running, walking, and crouched) and switch between them from their own script.

Double jumping is enabled by giving "Aerial Jump Data" one entry. triple jumping by giving it two entries, etc. The same Resource can be used multiple times to keep all jumps feeling the same.

Left, right, and jump inputs are selected from a dropdown which pulls from the ProjectSettings' input map. All of these and a general "Floor Coyote Time" have a configurable buffer size which lets the player buffer a given input before it's permitted to trigger it on the first possible frame.

Users can specify their own custom inputs and buffer windows as well for adding additional actions (eg: dodging, dashing, attacking).

Wall jumping is enabled, again, by providing a Resource with jump data (this can also be the same as your normal jump data). You also specify some ratios to define the feel of wall jumping.

Wall sliding can also be enabled by decreasing its "Terminal Velocity Ratio" to a lower value (I've found 0.2 works well).

Of course, there are signals for basically every event that the player could cause. This is to make it easy for you to drive animations, sound effects, and particle effects via the player controller without needing to write more code (very nice for prototyping and non-code-oriented developers).

Everything is fully documented with examples, if you're ever unsure of what something means.
Category 2D Tools 2D Tools
License MIT MIT
Repository Provider GitHub GitHub
Repository Url https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller
Issues Url https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller/issues https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller/issues
Godot version Godot 4.4 Godot 4.4
Version String 1.0 1.0
Download Commit 98b2465d04e1e7946b2e9ec4fd7abb0bbae8fa10 98b2465d04e1e7946b2e9ec4fd7abb0bbae8fa10
Download Url (Computed) https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller/archive/98b2465d04e1e7946b2e9ec4fd7abb0bbae8fa10.zip https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller/archive/98b2465d04e1e7946b2e9ec4fd7abb0bbae8fa10.zip
Icon Url https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller/blob/master/parametric_platformer_controller_2d/icon.png?raw=true
https://github.com/Bryce-Dixon/godot-parametric-2d-platformer-controller/blob/master/parametric_platformer_controller_2d/icon.png?raw=true
Preview Insert
Type image
Image/Video URL https://mastodon.brycedixon.dev/system/media_attachments/files/114/278/164/502/708/905/original/a3107fd68a63019d.mp4
Thumbnail
Preview Insert
Type image
Image/Video URL https://mastodon.brycedixon.dev/system/media_attachments/files/114/278/169/583/355/077/original/2abba061dc79bec4.png
Thumbnail
Preview Insert
Type image
Image/Video URL https://mastodon.brycedixon.dev/system/media_attachments/files/114/278/184/348/853/814/original/a43fdc32262454a8.png
Thumbnail