A downloadable engine for Windows, macOS, and Linux

Buy Now$14.79 USD or more

A general-purpose platform engine (Game Maker Studio 1.4 and 2.0 source file) that can be used to quickly get a platform game project up and running. Available for both GMS1 and GMS2! Pick the file of your fancy, or both!

  • Custom collision checking system that is faster than Game Maker's built-in pixel-by-pixel collisions.
  • Uses no platform-specific functions: can be used with any export module with only minor changes!
  • Power-up system: pick up power-ups from item blocks and lose them on damage; each power-up can be assigned its own code, letting you fire projectiles, fly, and more or less anything you can imagine.
  • Jump-through platforms; the custom collision checking system allows ANY object that uses them to treat jumpthrough platforms properly.
  • Moving platforms; can be jump-through or solid, moves both player, liftables, power-ups and enemies around, can crush all of them if they get trapped between a moving platform and a solid object, including another moving platform.
  • Moving platforms can be set to constantly patrol a path, with an arbitrary shift along the path in order to synchronize platforms with each other, or to wait at the start of a path, follow it once the player lands on it, and then drop off into the abyss.
  • Simple event system with NPCs that can be assigned arbitrary code to execute in each of their actions; comes prepackaged with simple message boxes.
  • Checkpoints that lets you restart where you died, even if it was in a different room.
  • Doors to transport the player between different locations, either in the same game room or between different rooms.
  • Extra lives, Game Over, and gaining 1UPs by comboing enemies or collecting 100 coins.
  • Liftable objects; very general and easy to customize. Lets you make portable platforms the player can carry around, shells to send sliding along the ground to knock out enemies, and other types of objects that can be carried.
  • Enemy system for walker enemies that can be easily customized.
    • Enemies can wander aimlessly or chase you.
    • Enemies can walk off edges, jump off edges, or turn around at edges.
    • Enemies can randomly jump while walking.
    • Enemies can jump and walk at different speeds, including being horizontally still during either and move during the other.
    • Enemies can be assigned an arbitrary shooting script with one line of code to set up, enabling simple or complex attack patterns. (They don't even technically need to spawn a projectile as part of their attack)
  • Surface-based light-and-darkness system with an arbitrary level of darkness ranging from pitch black to barely noticeable; can be set to glow around the player, items, and light sources independently of each other.
  • Item blocks that can be filled with arbitrary objects and do arbitrary things when the player hits them, including creating empty blocks or bursting into debris.
  • Ladders you can climb, including grabbing them mid-jump.
  • Water that can be swum in.
  • Support for multiple playable characters; just set up data and change the current character variable.
  • All scripts and objects has thorough comments that explains their functionality.
  • Easy to edit and extend to suit your needs.
  • 4 example levels to learn from!
  • 9 example enemies.
  • 3 example power-ups.
  • Includes custom-made, previously unreleased tilesets, backgrounds, sprites, sound effects and music that can be used in commercial games!
  • Credit appreciated but not mandatory.
  • Can be used in commercial games, but do NOT resell the source code itself, even if modified.
  • GMS2 source code is in fact a direct port of the GMS1 source code, converted using the GMS2 legacy import tools. While it has been checked for problems, there might be stuff I missed. Please report any problems you find with it.
Published Feb 14, 2016
Made withGameMaker: Studio
Tags16-bit, engine, platform, Retro
Asset licenseCreative Commons Attribution v4.0 International
Average sessionA few minutes
AccessibilitySubtitles, Configurable controls


Buy Now$14.79 USD or more

In order to download this engine you must purchase it at or above the minimum price of $14.79 USD. You will get access to the following files:

Source Code (GMS1) (v1.1) 4 MB
Source Code (GMS1) (v1.0) 4 MB
Source Code (GMS2) (v1.1) 5 MB
Source Code (GMS2) (v1.0) 5 MB

Download demo

Engine demo (.EXE) (GMS1) 4 MB
Engine demo (Compressed application ZIP) (GMS1) 5 MB
Engine demo (Compressed application ZIP) (GMS2) 4 MB
License Agreement 22 kB

Development log


Log in with itch.io to leave a comment.

(1 edit)

"Support for multiple playable characters; just set up data and change the current character variable"

How, please? which object/script contains these? I would like to switch between two players at the start of a level, with the exact same data, just different sprites

Thanks so much in advance and great job creating all these fine assets. Keep up the good work :)

(1 edit)

Scripts-->Initialization-->init_characters, it's a tabbed script with init_character_maria as the only alternate tab at the moment. At the bottom you'll see the lines of code that initializes sprites. To fully add a new character, I guess what you should do is...

  • Make a new constant for the character's ID (must have a different value from char_MARIA)... you could use the existing constants char_LOUISE, char_PRINCE, char_FROG and char_SUNSHINE if you'd like to, of course.
  • Make a copy of init_character_maria (create a new tab and copypaste init_character_maria's code text into it) and use the search-replace feature to replace "char_MARIA" with the new character constant
  • Change the sprite assignments to the new character's sprites (they're at the bottom of the script).
  • Don't forget to call the script from init_characters, just how it calls init_character_maria.
  • To change the active character, just assign the character ID to the variable global.playerchar based on what the player selects - it's always assigned char_MARIA by default since the demo only has 1 character. You can make the menu any way you want~

I think that's all you need to do, hopefully I didn't forget anything :) Just hit me up with more comments if there's any problems~


Thanks so much for the swift and indepth reply. Awesome! Will try all of it soon, thanks again!

I got the following error msg in GMS2.  Any resolution for this?

Script: player_score at line 1 : no references to arguments 0,1 but references arguments 2,3

Good catch, I can't believe I've let this slip through. Replace x and y with argument0 and argument1 respectively (in the script) and it should work as intended. I'll get an updated version with this fixed uploaded.

Uploaded a "v1.1" version of both source files with this fix applied. Let me know if there's any more problems.


It worked properly after replacing it.  Thanks.  and love your work!

Added a new GMS2 version of the source code - the original version imported and ran just fine in GMS2 for me, but this should save you a bit of work. If you've bought MariaEngine previously, this new version should be downloadable at no additional cost.

It's still a bit experimental since GMS2 got released just a few days ago, so please report any problems with the new version here.

So from what I can tell, this is an addon / editor gui addition to GameMakerStudio?

If you manage to integrate an easy way to add busts for dialogue, it's probable I'll use this for PFC.


It's a GMS source file, so anything you see in the demo can be tweaked just by editing the code. The dialogue system basically just uses an array for text, shouldn't be too much work to add in another array for mugshots/busts to go with it.


Thanks for the info! Once I consider working seriously on PFC again I'll definitely grab this up.

Your ladders need a bit of work. Also standing on a one way block and an enemy jumps up through will damage you. I assume to hop on enemies you need to be in the air rather than just above them. There doesn't seem to be a pause or an exit out of game when you're in full screen (I guess alt + enter worked to get me into full screen, it can work to get me out.) What about controller support?


The sprite provided is dark. Do you have a brighter version of that sprite ? Thanks !



Blazes, this is better stuff than the best of what's on the GM market. o _O Genius work.

Thanks! ^__^

And yeah, the GM Marketplace is kinda clunky at the moment, so I can see why a lot of content creators don't use it... (especially the GM integration that makes just adding something to a project take ages). It's much nicer to just distribute/load a GMZ file IMO.