Platformer Movement for Gamemaker
A downloadable asset pack
Play and download the demo here
Introduction:
Hello everyone, thank you for clicking on my asset pack :) This is a complete character controller system for Gamemaker Studio 2 platformers. The original version was available on the Gamemaker Marketplace, but can now also be downloaded here. It is easy to use and beginner friendly and is a great base to build your platformer game apon. I'm planning to continue updating this asset pack with your suggestions and ideas. If you find a bug, have a suggestion or need help be sure to place a comment below, I will try and answer all of them.
Thanks so much for the support! We just past 500 sales :)
Make sure to rate and comment, it helps me out a lot :)
Features:
If you buy one version you will gain lifetime acces to all the updates.
Legacy Version (2021-09-25):
- Smooth Movement
- Good Collision
- Keyboard + Controller Support
- Coyote Time (Jump Assist)
- Variable Jump Height
- Demo and instructions are in the download
Update 1 (2024-5-12):
- Smooth Movement
- Solid and Pixel Perfect Collision
- Slope and Stair Physics
- Keyboard + Controller Support
- Changeable Keybinds
- Coyote Time (Jump Assist)
- Variable Jump Height (Depending on how long you hold the button)
- Demo source code project included in the download
(The second update is almost done, but sadly I wont be able to finish it right now. The experimental version can be downloaded, although it still has a few bugs. The full version will be available in a couple of weeks)
Currently working on:
Moving platforms(Done)- Rotating platforms
One way/Jump trough platforms(Done)
Future Update Plans:
- Animation Support
- Wall Jumping
- Double Jumping
- Dashing and Sprinting
- Platformer Camera System
- Platformer Accessories (Spikes, Doors, Keys, etc.)
- Squash and Stretch
- Slipperiness Variable
- Complex Gravity
Guide:
You can also view and download the full guide here
Setup:
1. Unzip the .zip file and import the .yymps file into your project. (Tools > Import Local Package)
2. In the create event of your player character, run 'movement_initiate();' You can change all of the variables at any time, in this example the default variables are changed. (You can find a list of all the variables below)
3. In the step event of your player, run 'movement_update();' (You could also update the variables here, for example, if you had a booster you could change the speed when colliding with the booster)
4. Create an object named 'obj_collider' and add all the objects that you want to be collidable as its children
Variables:
Default variables are for a 32x32 player, you may need to change the variables depending on the scale/resolution of your game
Name | Type | Default | Description |
---|---|---|---|
collider | object | obj_collider | Defines the object used as the collider for your game. (Child objects of the collider object will also be collidable) |
Keybinds | |||
key_jump + key_jump_sec | key | vk_up ord("W") | The keys used for jumping (Set to 'noone' to disable) |
key_left + key_left_sec | key | vk_left ord("A") | The keys used for moving left (Set to 'noone' to disable) |
key_right + key_right_sec | key | vk_right ord("D") | The keys used for moving right (Set to 'noone' to disable) |
More information about keyboard input can be found here | |||
Controller settings | |||
gamepad_jump | gamepad button | gp_face1 | The gamepad button used to jump |
gamepad_horizontal | gamepad axis | gp_axislh | The gamepad axis used to move left and right |
gamepad_device | integer | 0 | Which gamepad device is used for input |
More information about gamepad input can be found here | |||
Forces | |||
force_acceleration | float | 1.2 | Acceleration force for moving left and right |
force_gravity | float | 0.8 | Downwards force |
force_friction | float | 0.85 | Amount of friction when moving (This variable is from 0 to 1, 1 is no friction and 0 is 100% friction) |
Jumping | |||
jump_force | float | 8 | The upwards force applied when jumping |
jump_duration | integer | 9 | The maximum amount of frames the jump force is applied (This also depends on how long the player holds the button) |
Slopes | |||
max_slope_height | integer | 2 | Maximum height of pixels that the player can move up and down on |
slope_resistance | float | 0.9 | The extra resistance added when climbing a slope (This variable is from 0 to 1, 1 is no resistance and 0 is 100% resistance) |
Speed | |||
speed_x | float | 0 | Initial horizontal speed of the player |
speed_y | float | 0 | Initial vertical speed of the player |
Other | |||
assist_frames | integer | 4 | Number of 'coyote time' frames |
Status | In development |
Category | Assets |
Release date | Mar 12, 2024 |
Rating | Rated 5.0 out of 5 stars (3 total ratings) |
Author | FakeStanTheMan |
Genre | Platformer |
Made with | GameMaker |
Tags | 2D, Controller, GameMaker, movement, Parkour, Physics, Pixel Art, Side Scroller, sourcecode |
Code license | MIT License |
Asset license | Creative Commons Attribution_ShareAlike v4.0 International |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Xbox controller, Playstation controller |
Links | Documentation, Gamemaker Marketplace |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $28 USD. You will get access to the following files:
Comments
Log in with itch.io to leave a comment.
Amazing - thank you for this. Cant wait for the next update!
Thanks a lot! The next update should be out in ~1.5 weeks :)
Really looking forward to it!!
Witchcraft
Useful witchcraft
Hahaha
Man, I remember the first time I tried to get a solid platformer code working with irregular surfaces. I recall it being monumentally painful as a novice.
Just bought it, definitely worth more than $12. This is the sort of simplicity I would have killed to have handed to me no strings attached to pull apart!
Exited for the future updates!
Thank you so much :)