Skip to main content
  1. Games/

Tile Based Moving Platform Engine for Gamemaker by Slyddar

6 mins
Games itch.io

Tile Based Moving Platform Engine for Gamemaker
This is a tile based platform engine which uses efficient tiles for instance collisions, as well as incorporating those efficiencies into horizontal and vertical tile layer moving platforms.
Some of the features of the engine :

  • Tile Based Collisions : Tiles offer the fastest collision system in Gamemaker
  • Moving Platforms : My system uses fast Tile Based Collisions to move multiple platforms either Horizontal, Vertical or Circular. Settings for wait time, speed, distance and slow down.
  • One Way Platforms : Allows the player to drop through tiles, or jump up through them.
  • Player State Machine : A system which makes building your player quick and easy, as it allows faster bug resolution. Includes Combo Attacks (light and heavy), Double Jump, Block, Crouch, Crouch Block, Death and Knockback abilities.
  • ****Juice : Game enhancing features like player dust for jumping, landing and walking. Squashing and stretching of the player when jumping and landing, giving the game a better feel. Screenshake for hitting enemies, or making an impact.
  • Enemy Setup : Enemy object with weapon swing and pummel ground attack pattern, which support player block and knockback.
  • Item Collection : Enemies drop gems, which animate in the air before flying to the player for collection. This is then shown in the GUI.
  • Dual Controller and Keyboard support : Both a controller and keyboard work as input, at the same time.
  • Simple lighting system : A light object can be used to give anything a nice radiant glow. Any colour can also be set.
  • Smooth moving Camera system : Can be used to follow any object, and offers various panning speeds.
  • Room transition : Allows a fade to black transition between rooms.
  • Room Spawning System : Multiple room spawning positions depending on room entrance.
  • Lives and Damage System : Entities can take multiple damage before being destroyed. Normal and Critical Damage is shown when enemies are hit, and a HP GUI element is included.
  • Game End : After all lives are lost, game returns to the Main Menu.
  • Initialisation Room : Allows for easy persistent object management.
  • Template Parent Room : Allows quick reproduction of room structures for faster level creation.
  • Corner Correction : When jumping vertically, allows the player to be slightly corrected if they hit the corner when moving upwards.
  • Fully Tiled Sample Room : A completed room to demonstrate how to build your rooms correctly, including multiple moving platform examples.
  • Rain System : Rain and lightning, including sound, can now randomly occur.
  • Sound effects : Basic 8-bit sound effects are included.
  • YYC Compatible : Compiling in YYC allows for the most efficient and fastest build.
  • Documented Code : All lines are commented as to their purpose, and the entire project has a complete write up to make understanding the engine as easy as possible.

Change log 1.0.32 – 7 May 24:

  • Player Enemy Collision updated : Updated the player <> enemy collision code.  It’s now been moved to the o_enemy_par object and has been fixed.  It’s commented out, but you can uncomment it to enable it.

  • Function process_enemy_attack updated : Ensure the owner_id variable exists before attempting to access it

Change log 1.0.31 – 20 Apr 24:

  • Corner correction : Change to the collision function to allow for jumping into solid corners to correct the player x position, allowing them to not get stuck on corners

Change log 1.0.30 – 27 May 22 :

  • **Bbox Changes : **Gamemaker 2022.x changed bbox values from integers to reals, and this changed a few things for tile collisions. Upon entering a  room, it caused the player to sometimes fall 1 pixel and then recover the next step. I’ve added a check to the player room start.  This path fixes that by simulating the calc_movement and collision scripts for a few steps at room start.
  • **Position Changes : **Room entry positions updated vertically by -1 pixel to cater for the bbox changes.
  • **HD UI Update : **Updated the s_hp_bar file to show you can use HD images for the players face in the UI.

Change log 1.0.29 – 21 Aug 2021 :

  • **Enemy Collisions : **If you wanted to run into enemies and take damage, uncommenting the player <> enemy_parent collision now works correctly.   Uncomment this line in the collision event to enable it.  Also process_enemy_attack has been restructured, so refer to the readme.

  • **Enemy Masks : **Enemy idle collision mask adjusted, and used as the default mask, to now make collisions with the player fairer when player <> enemy collisions are enabled.

****Change log 1.0.27 19 Oct 2020 :

  • Object Persistence : objects destroyed in the room will not be respawned when returning.  See read_me for more details.
  • GMS2.3 compatibility : Current bugs in GM2.3 related to the importing of rooms caused room order to not be imported, causing errors. This has been manually fixed by recreating the rooms again. We’re still waiting on a bug fix to GMS2 though. UPDATE Aug 21: Current versions of Gamemaker should not have this problem now.

Change log 1.0.25 16 Oct 2020 :

  • EULA : Added EULA outlining your rights in relation to the code use (EULA is at the bottom of this file)
  • Death Tiles : These now deal damage and knockback the entity, instead of instant death.
  • New script : damage_entity() used to deal damage to any entity.  Damage is unblockable.  e.g. used for dealing damage to all entities touching death tiles.

Change log 1.0.24 14 Oct 2020 :

  • Circular platforms : Multiple configurations are possible, allowing for full circle, half, quarter, or any custom angles. Also includes slowdown and wait on start and end. Pivot and support structure is also drawn.
  • Enemy attacks : Enemy now can attack player. Full swing and wave attack pattern included.
  • Gem Collection : Enemies drop gems, which animate in the air before flying to the player for collection.  This is then shown in the GUI.
  • Very fast platform movement : Room 2 demonstrates new code changes to the vertical platforms allowing the player to move on even faster platforms.
  • Wait options for platforms : Can be set to pause the platform at start/end points
  • Better damage system : Now shows damage numbers and enemy hp bars
  • Rain system : Random showers can occur, including lightning and sound.
  • Bounce pads : Hay bales serve as bounce pads
  • Many small bug fixes

Try the Windows Demo here.
Note : Tile collisions are reliant on the size of the tiles and the size of the masks.  This system is setup for a maximum of 32 x 32 tiles and sprites.  Larger sizes will require changes to the code in order to work correctly.
This package incorporates the use of graphics, which are free assets from external sources. The graphics are included, but these are free assets and are available below if needed :

Related

Betrayal At Club Low by Cosmo D
2 mins
Games itch.io
House by barkbarkgames
1 min
Games itch.io
Gimme Friction Baby Playdate Tribute by notpeter
2 mins
Games itch.io
Gratiarum by Vidas Games
1 min
Games itch.io
A Mall Near You by Diesel Rave Studios, smpletan, adriotes, oakey, Narwhix
1 min
Games itch.io
Test Test Test by Mojiken Studio
2 mins
Games itch.io