Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be 📖

Parametric 2D Platformer Player Controller

An asset by BryceDixon
The page banner background of a mountain and forest
Parametric 2D Platformer Player Controller thumbnail image
Parametric 2D Platformer Player Controller thumbnail image
Parametric 2D Platformer Player Controller thumbnail image
Parametric 2D Platformer Player Controller hero image

Quick Information

0 ratings
Parametric 2D Platformer Player Controller icon image
BryceDixon
Parametric 2D Platformer Player Controller

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.

Supported Engine Version
4.4
Version String
1.0
License Version
MIT
Support Level
community
Modified Date
10 days ago
Git URL
Issue URL

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.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Parametric 2D Platformer Player Controller icon image
BryceDixon
Parametric 2D Platformer Player Controller

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.

Supported Engine Version
4.4
Version String
1.0
License Version
MIT
Support Level
community
Modified Date
10 days ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers