• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Asset - Project ON SALE - Tile Based Plateform Engine (GMS1)



GMS1's complete tile base plateform engine. Create your levels using ONLY 1 controller, the rest are tiles only! That's what's comming up in the next release. Easier interaction with tiles, easier collision engine. Better control over your game elements. AND for the first time...A pixel-perfect collision engine with non-rectangular tiles. Comes with a complete tile set for your very own game including basic character, ennemies and decoration. Next release is near so hurry up and get your hands on this asset at a discounted price.

Curent version
This is a one of a kind asset that permits you to create full length platform games using only tiles and very little objects. You can now, interact directly with your tiles. No more objects hidden under tiles. And for the first time on GMS, create animated tiles and managable tiles! With this engine, your work will be cut in half when creating your rooms. Using the tiles tab in the room editor, create your levels. Once finished, add your objects (ennemies, character, controlers and items) - Your level is now created and ready to be played!

Asset: https://marketplace.yoyogames.com/assets/1912/tile-base-platform-engine-tbpe

Feature list:
  • Animated tiles
  • Solid platform tiles
  • Pass through tiles (use the down key to drop off)
  • One way tiles
  • Conditional death tiles
  • foreground and background decoration tiles
  • Interactive tiles that can react to certain conditions
  • A full length PDF help file to guide you and help you understand
  • If that ain't enough, I'm available to help out answer your questions!
  • A full featured pixel perfect platform engine with ennemies, life and coins
  • Basic RPG engine with hit points, strength and level up
  • A full pause system with character stats
For a smalll preview of this engine, here is a video:
 
Last edited:
I'm soooo anxious to announce that V2.5 of this asset is comming up with a BIG HUGE suprise. Irregular shaped tiles will now be supported meaning that precise collision checking will be supported for tiles. Put your hands on this asset at a special discount until the next release. Any comments and ratings are also welcomed!!!

Some of the features on their way are:
  • Precise collision checking on tiles
  • New and improved collision engine which will require WAY less scripts and a more normal coding style
  • Slopes and hills (OF COURSE!!!)
  • More details to come...
 
A small followup on the process for V2.5.

All scripts before release 2.5 will be obsolete. A new collision engine is being developped and with precise collision checking being a HUGE chunk now available. You will be able to create almost all of your games using tiles only. Create your ennemies, powerups and more using the upcomming engine. One tile sheet for your whole game, that's my goal.

For now the whole engine is starting to be developped. For those already owning the engine, here are a few points:
  • The depths will all be stored in an array with visibility, reference codes for easy lookups and more
  • You will now interact the same way as with objects giving you the real freedom and programming style that Game Maker has made us love for years.
  • En endless world of possibilities will be opened as the engine will now introduce the use of surfaces that you will now be able to play with
More information to come soon - Stay tuned and thank you for those that rated the engine and those that baught it - That's a really big encouragement for me to deliver a unique but delightfull tile engine for the GM community.
 
After months of personal stuff, I finally have been able to do some work on the upcomming engine. I never really worked with slopes and hills before so this was new. And programming an engine easy to use for both begginners and intermediate game developpers is a challenge I impose to myself. Here are a few updates on the process for the upcomming version:
  • Slopes are now fully functionnal as of today giving you smooth gameplay for both downgoing and upgoing slopes.
  • Tile animation engine has to be integrated in the new engine as the whole core of the engine has changed for collision
  • There will be a lot less scripts for you to play arround simplifying the whole engine and giving it a small boost in speed
TBPE is on sale until next release so get you hands on it while it lasts. If you do have any questions, please feel free to contact me, email, pm or by replying to my topics.
 
Whew! After hours of debugging and testing, here are a few updates on what's comming up:

First off - The old tile collision engine will no longer work as it was a way to show you that you can actually collide with tiles themselves but given that GM is object driven and that the whole point of using GMS is to work with objects, the tile engine now makes collision with objects which will give more control on what can be done and improves speed. BUT the big difference is that NOW you won't be needing the objects tab anymore in rooms. All your room setup will be done in the tiles tab of from ennemies, characters to controlers, all of them will be applied in the tiles tab.
  • Tile animation is now finished and ready
  • Object collision and slopes are now fully supported and work flawlessly with the tile engine
  • A HUGE gain in speed from the previous version
  • All there is left is to reintegrate the RPG engine with ennemies life,health and experience
Comming up soon, don't despair. Meanwhile grab your chance at a low price for the engine as it's on special until next release!!!
 
Game Maker Studio 2 has been taking the spot lately so programming slowed down a bit as I am always a big fan of new stuff developped by YoYoGames. A small followup on the current progress:

Resuming so far, the new stuff that has been working made bugs and glitches popup so for now, I'm in problem solving and bug correction.
• A few complications have surged with surfaces
• Object drawing began to have problems
• GM's bug report screen is just a pain when resolving issues so searching for problems is extremely time consuming
• Slopes, hills and other irregular shaped terrain now work flawlessly and smoothly (I love that new feature)
• Tile based levels will also be compatible with hand drawn levels giving other people greater freedom in level creation

I'm so anxious in releasing this version but I need to supply good quality/well commented code and a nice engine. I also want to give somewhat of a completed game instead of just one level or at least a few levels.
 
Last edited:
After the release of Game Maker Studio 2 (GMS2) Beta that I tried and fiddled with. Lots of tile functions have been added that are present in this engine minus a few flaws that will never be taken into consideration. Here is a list of things that GMS2 DOES that Game Maker Studio (GMS) did not support:
  • Animated tiles
  • Tile layer function and names
  • Auto tiling (While not present in my engine, this was part of a next update)
What's not present:
  • Tile/object collision engine
  • Additionnal tile functions for easy controls over tiles (NON GMS integrated functions)
  • Basic RPG engine (Duh!)
With the comming of GMS2, I will be releasing a last update for the TBPE before moving on to GMS2. Please be reassured that I will still be available to resolve issues and bugs but no further releases with new functionalities will be done, or at least, I cannot promis more to come. I will still keep my promise and release, once final, version 2.5 of TBPE in respect to those that paid.
 
Small notes on where it's at as of this date in 2017:

• I'm having difficulty in having some nice tile animation in the new system. The animation portion is not quite ready yet.
• Tile/Object generation has a problem and I'm still searching for it. It's probably just a stupid thing, I just need to find where the stupid thing is.

The PDF document has not yet been updated for this version. I did not recieve any feedback to know if people were actually reading the PDF document but this could also push the release later.
 
GREAT NEWS TODAY!!!

I have FINALLY found the problem to my tile/object generation. That was a stupid mistake but burried deep inside those numorous lines of codes. So project can continue on. Now at the very event of a new problem solved, we are always, as programmers, caught in an infinit loop of bug corrections. So I solved one problem and another one rose up and it's something that worked before so I'm up and running after a new problem. Huh....programming. I'm trying to build this as simple as possible with as many comments and as clear as possible.

So now, the platformer has some problems but the tile generation now works properly. I'm very glad that this big problem has been resolved. I've been working long hours in trying to find out that stupid bug. I'm anxious in releasing this new version as it has absolutely nothing to do with the old version. Therefore, it will be incompatible with the old code so projects using the old code will need to be rethought but I'll give a bit of explanation once the end is near.

Also another good news, after long forum discussions with the release of GameMaker Studio 2, I have decided, at least for now, to not upgrade to GMS2 because of the numorous GUI and IDE problems that actually slow down my work. I've spent hours in trying to beggin a platform game on the new system and failed miserably being stuck with weird GUI actions and code rewrites, I just got tired of rewritting code that deleted automatically when 'X'ing out and a bunch of other stuff. I won't go deeper in this discussion as this is not the place. But this means that further updates to TBPE will be viable so I'll plan on working out after this major relase some more platforming and RPG fun.

As a final note, here is a sneak-peak on a long term idea that tickles my mind. The ability to use a 2D tile system and project it in a 3D world à-la 2.5D style. I originally created a 2.5D game but it was hard on the FPS. So once the TBPE engine works flawlessly in 2D, I'm going to have fun in trying to create a 3D world out of it without changing the way it works in programming. Having that in mind, the tiles background has been redrawn to make that process easier in the futur.

Stay tuned, and YAY, something is on it's way!!!
 
AND there we go. The bugs have been resolved, at least for tile interaction and level creation. I am now attacking the animation process as this is a complete different story. Although it was pretty well all wrapped up un v2, since the system is completely different, the animation codes need to be rewritten. I'm so anxious to finish this big project as it will open up a whole new world of possibilities for the GMS1 users.

The room will count ONLY 1 object in the creation process. That controller will then generate the whole level for you from the tiles you have placed in the room. So when creating your room, you simply put the controller as an object and skip right through your tiles tab to create your level. Even though this example is a platformer, top down RPGs can be managed the same way and much much more.

A small not, once V2.5 will be released, I will create a new thread abandonning this one. Up until the final release, keep your eyes in here for more followup.
 
Ouuuuuuh! I'm so anxious now. Tile animation is now finished. I'm left into impllementing the platformer and RPGish styled engine. After hours of debugging and script writting, I can now start to create the game itself and stop working on the engine. Very nice FPS speed, a lot less lags. Here are a few screenshots on the current process. You will see that there are way less tile scripts and the levels will require only 1 controller. The rest of your level creation is done throught the tiles tab including, adding ennemies, coins and other items as you wish.

ALL the scripts for the tile engine
DaRic - Tile Based Platform Engine.project.gmx_  -  Professional Edition (v1.4.1-20170217-211722.png

All objects are shown in the room which is 1 unsprited controller
DaRic - Tile Based Platform Engine.project.gmx  -  Professional Edition (v1.4.17-20170217-211501.png

And here are the tiles only. The coins are also tiles!
The waterfall and coins are actually animated when then game is running and YOU get to choose their animation speed
DaRic - Tile Based Platform Engine.project.gmx_  -  Professional Edition (v1.4.1-20170217-211541.png

There's a bit of work to do to have more freedome on tile animation speed (for example, negative speeds or higher than 1 speeds).
The screenshots are basic but I'll be handing out some new screenshots and am hoping for the month of march to release TBPE V2.5 (hoping). Please stay tuned it's almost there!!!
 
A

Ampersand

Guest
Is this using tilemap collisions? Are you checking pixels or are you checking slope-formulas?
 
Don't you mean Tile Based Platforming Engine?
This has actually a story behind. It's stupid but true. The YYG marketplace could not hold more characters in the title so I had to chop a character somewhere. That's why it's missing a "d" in "based".

Is this using tilemap collisions? Are you checking pixels or are you checking slope-formulas?
It's checking pixels. It's not using tilemaps, its much more rudimentary than that but a heck of a lot less work when creating levels in GMS1. The only BIG downside that some may find is that you need to manually enter tile coordinates in an initialisation script but that's a small price to pay for creating a platformer in minutes without navigating through objects and tiles tab in the room window. The whole system generates the level for you and is intelligent enough to animate tiles inside the current view only while remembering which subimage the animation is at for tiles outside the view.

The current version has nothing to do with the upcomming version. This was a personal goal I had to actually interact with tiles instead of objects but the calculations and the number of loops the engine must go through was just too much and programming a full game out of it was outside the GMS scope. I decided to reorient the whole engine to fit better with GMS' style of working to make it confortable for new commers and familiar to long time users.
 
A

Ampersand

Guest
If you're checking pixels against a single color mask, slope-formula would be loads faster. Open cell, closed cell, and then slope cells. If in slope cell, check local cell position against line slope formula and return true or false. Otherwise, nice engine you have put together here :) Also, you could make the Marketplace name "Tile-Based Platformer Engine", and that should fit. Tile-based ought to be hyphenated, and these sorts of games are classified as "platformer" a lot more often than "platforming".
 
If you're checking pixels against a single color mask, slope-formula would be loads faster. Open cell, closed cell, and then slope cells. If in slope cell, check local cell position against line slope formula and return true or false. Otherwise, nice engine you have put together here :) Also, you could make the Marketplace name "Tile-Based Platformer Engine", and that should fit. Tile-based ought to be hyphenated, and these sorts of games are classified as "platformer" a lot more often than "platforming".
I'm still thinking if I keep the TBPE in there or not. That's why. Removing these letters, I can indeed, fit the corect title. I used the TBPE for ease of search. Once the new engine will be finished, I'll see if TBP stays or not. For the slopes, I'm not too familiar with slope formulas. The interaction is done with a completely black image so there is no colors in the real interactions so what you describe COULD be somethinng to work on but for now, I'll at least finish up this engine because I've been announcing it for months. After this release, I look deeper in what can be done. But thanks a lot for your comments and I'll take into consideration what you have posted once my project is back up and running again.
 
A

Ampersand

Guest
I'm still thinking if I keep the TBPE in there or not. That's why. Removing these letters, I can indeed, fit the corect title. I used the TBPE for ease of search. Once the new engine will be finished, I'll see if TBP stays or not. For the slopes, I'm not too familiar with slope formulas. The interaction is done with a completely black image so there is no colors in the real interactions so what you describe COULD be somethinng to work on but for now, I'll at least finish up this engine because I've been announcing it for months. After this release, I look deeper in what can be done. But thanks a lot for your comments and I'll take into consideration what you have posted once my project is back up and running again.
I'll shoot you an example, shouldn't be too hard to get implemented. Works very similarly to simply checking position_meeting() against a single color mask. :) Good work regardless.
 
I HAD to work on a side project to use in conjunction with TBPE. I created the GMS Tool application made for working with tiles. Here's a small screenshot of the software.

Game Maker Studio Toolbox-20170228-223449.png

This nifty little software permits you to get your tile coordinates on the background without needing to calculate or work arround it in Game Maker Studio. This application is for those that want a tile tool for Game Maker Studio 1. GMS Tool will capture your opened background properties screen in Game Maker Studio making it clickable. Knowing that YYG will put no more effort in GMS1 besides bug correction, I thought some people might want a tool like this to work with tiles. It also permits you to see an animation preview with custum speed and frames.

I'm not sure if the package manager in GMS permits to add executables in the "Included files" section, but if it does, you bet that you will see this app there as it will be more than usefull with the new tile engine. For now, you can download it here: http://www.filedropper.com/gmstool

Stay tuned, it's getting there.
 
Last edited:
Uh-Oh.... :(. Script optimisation obliges. I have to rewrite part of the code as there are way too many loops. The system does more than one loop for all the tiles in the room which can severely slow down room creation AND cause enormous bug holes. I need to fix this which means the rewritting of the drawing and interaction portion. It's not dramatical as most of the code is already written BUT, I need to change some scripts and port them to sub scripts to simplify the generation process for noobs and advanced users. I made ONE change which braught up a bug which opened my eyes on a more serious problem I was unaware of. Whew, caught it in time before release.... Working on an engine is much more work that working on a game....Man will I bee soooo happy to see this release coming soon. Seeing that this will be a major release, I'm not too sure if V2.5 will still be applicable but seeing the projects I have with a further release for V3 and where it's going to be heading, it's just not correct to hop right now to V3 and seeing that it's still a platformer engine using tiles, it's just logicall to keep it in V2 for now.

As for the price once released, V2.5 will be at 14.99$. Discount at 6.99$ :cool: is still going, be sure to get your hands on it before the next release!

o_O SNEAK PEAK...
Very little detail is going to be published until V2.5 will be stable but here is a very small hint on the new feature V3 will have. Still in the sight of creating levels with the tiles tab in the room creation window, V3 will feature transforming the whole engine in a 3D world, thus V3, commonly named 2.5D, the whole world will be viewable in a 3D environement keeping the platformer type gameplay. That's all I can reveal for now as I need to focus on getting V2.5 out first.
 
:)Well, well, well...After a few hours and a few frustrations:bash:, I finally reduces the number of loops from 3 to 1 which is an excellent and significative drop in loops. I have also redone the tile animation portion which works like before. This massive change also permitted me to add an extra script which did not exist before that will permit the addition of tiles on the fly and NO, it's not the same thing as GMS' built-in tile_add function as this is a script built for the engine itself.

The engine is now working as it should be working minus a few minor interaction with mask issues. Due to the lengthy waiting time, I might not create more levels for the first release in V2.5. BUT, I will include the following in further releases under V2.5:
  • Make a few changes to what is activated outside the view.
  • Add a level exit and of cours, another level which will show that RPG values are persistant
  • V2.6 will include a save mechanism as I thinks it's pretty much the next step once the engine works well.
I'm left with reintegrating the controller graphics as the hud is no longer sprites. In other words, with this engine, you won't need any sprites at all, you can just use tilesheets to create your whole level without any objects.

Now that this HUGE migration process is terminated, I can finalise the little details and bring back the RPG engine to work again. It's basically the same thing as the original but this time, ennemies, coins, and other collectible will be manageable in the tiles tab of the room creation window eliminating the need of the object tab besides including the main controller.
 
Last edited:
I had to rewrite a script as it was no longer possible to draw white stuff. After a few searches and a few trial/error in the process, I have been able to remove the sprite from surface work-arround to have an image drawn completely white and this time, images are drawn directly in the room without creating any drawing surfaces for white images.

For the curious ones, I had this script that converted sprites in white:
Code:
// Returns the image data of a sprite, blended full WHITE
// GMS cannot really color sprites in white so this script does it for you.
// Arguments:
// 0: Sprite to blend in white
// 1: Subimage to draw

// These will set the surface dimension to the sprite's width and height
// We use less memory that way.
var draw_width = sprite_get_width(argument0);   // Get sprite width
var draw_height = sprite_get_height(argument0); // Get sprite height

// Set and create surface to draw on
var tmp_sfc = surface_create(draw_width,draw_height);
surface_set_target(tmp_sfc);
// Clear surface
draw_clear(c_black);
draw_rectangle_colour(0,0,draw_width,draw_height,c_black,c_black,c_black,c_black,false);
// Set blending mode for inverted color
draw_set_blend_mode_ext(bm_inv_dest_colour,bm_inv_src_colour);
// Draw sprite in BLACK
draw_sprite_ext(argument0,argument1,0,0,1,1,0,c_black,1);
// Cover up the entire area in WHITE which will invert our previous black
draw_rectangle_colour(0,0,draw_width,draw_height,c_white,c_white,c_white,c_white,false);
// Capture image to return by creating it from the surface
var ret_img = sprite_create_from_surface(tmp_sfc,0,0,draw_width,draw_height,false,false,0,0);
// Exit surface drawing and remove it from memory
surface_reset_target();
surface_free(tmp_sfc);
// Reset blending mode to normal
draw_set_blend_mode(bm_normal);

// Return inverted image
return ret_img;
Well now it's much easier and uses less lines of codes (basically, it's just removing the surface creation and drawing):
Code:
if (in_white = true)
  {
  draw_set_blend_mode_ext(bm_inv_dest_color,bm_inv_src_alpha);
  draw_rectangle_colour(dpx-dout,dpy-dout,dpx+(tw*dscale)+dout,dpy+(th*dscale)+dout,c_white,c_white,c_white,c_white,false);
  dcol = c_black;
  draw_set_blend_mode_ext(bm_inv_dest_color,bm_inv_src_alpha);
  }

draw_background_part_ext(bgnm,tbgx,tbgy,tw,th,dpx,dpy,dscale,dscale,dcol,1);

if (in_white = true)
  {
  draw_rectangle_colour(dpx-dout,dpy-dout,dpx+(tw*dscale)+dout,dpy+(th*dscale)+dout,c_white,c_white,c_white,c_white,false);
  draw_set_blend_mode(bm_normal);
  }
I had a little break on this project, my head was going nuts so I turned arround a created a small tower defense engine to begin a new project. The engine is now finished and publiched on the marketplace for those curious to pick it up. Now that my little side project is done, I'm back inside TBPE.

What's left?
  • Seperate mask collision
  • Bring back particle effects using tiles (I'me pretty sure that I will need to use a drawing surface work-arround for this as I cannot just draw a particle on screen using a background position, it's not supported in the particle functions)
  • Re-implement the RPG system
  • Re-integrate the stats screen
  • Write the help file
Yep, there's still a lot to do, but when paying for an engine, it's normal for me to make sure you will get something worth the money you pay and paid for. So stay tuned, thank you for those of you who are patient, I'm still on it and won't leave it until I finish it!
 
There is still some work to do, thinking I could have released for march was not wise at all, there's lots to program before releasing this huge but magnificent engine. I'm just anxious to start working with this engine instead of working IN this engine. Collision is now VERY easy, object creation is not too complicated and I reduced my script loops from 3 to 1, that was awsome! I also updated some graphics which gives a nicer feeling to the game. I need to correct some bugs with the pausing system as well as with the level restart system, bugs that just came up while implementing the simple RPG system already in place.

Here are 2 screenshots of the current progress.
Greenshot-20170407-173952.png
Greenshot-20170407-174008.png
 
AND here we are with another nasty bug I need to correct in the new engine! This time, the game crashes everytime we restart a level. I need to figure this one out and its a BIG chunk of code to verify, sigh....One day....one day, I'll be able to release this! I'm still on it, I'm still on it!
 
One way platforms on it's way! Previous bug has been corrected concerning the room restart issue. Once the one way platforms will be ready for use, the only thing left will be:
  • Death traps
  • Conditional walls and death traps
  • Add the blue shelled ennemy
  • finally, the level exit
I tried to disable objects outside the view to gain performance but I have small issue with animated tiles and we cannot simply disable the objects we want as it's all or nothing. I'm still working on this.
 
I have to rewrite the whole collision system as the colision with slopes had too many loops and ifs and for a noob, that would have been a mess to understand. The basis of this system is to make it simple and easy to integrate. This also permits me to add new functions and easier to manipulate code. The game does not crash anymore when restarting and the vertical collisions work flawlessly, now, it's the horizontal movement that's tricky, but...it's on it's way. The deal is still there, buy this engine at a low price as of the next update, the price will go up.

For those wondering, the current version interacts DIRECTLY with tiles in a complex system of scripts that are hard to modify and do not integrate well with GMS' way of working. BUT I have been able to prove that interacting with objectless tiles IS possible and just for that, the current version is worth it!
 
After almost a month of programming. I have FINALLY finished the new collision system with slopes TODAY! I have a small issue with one way walls but they do work, the problem relies with tile index order where the system detects 2 tiles at the same time but only does the interaction with the first one it found in the index order. I have to find a solution for this BUT:
  • Platforms are now back and working (one way platforms where you can use the down key to drop off)
  • Slopes are now fully integrated both uphill and downhill
  • One way walls are functionnal minus a little details with index ordering
I have also retouched the tile animation where outside of view tiles won't go through the animation process besides knowing which image to draw once back in. This only works with non interactable tiles. Tiles that are interactable will simply disable themselves and once back in view, will continue their animation where they stopped so, coins for example, may not all animate with the same image index once they moved out of the way, but that's not a big problem to me. If this disturbs a few people, I'll make a fix for it later.

I will be releasing this version earlier and add more to it later as for now, a basic platformer and even more basic RPG system is implemented but for any enthusiatics out there, you will at least recieve what was promised a year ago. I will also NOT release a help file right away, but the code is pretty commented and I'm there for any issues if there is anything. I WILL integrate the help file later, but for the release and the waiting time, I'll sacrifice a few things. The important stuff is the platformer as that is the core of the engine, building a platformer out of the tiles tab in the room editor, meaning, no more objects. I have been able to remove ALL objects besides 1 controller. All you need is to put your main controller in the first room of your game and that's it. You build the rest of your rooms ENTIRELY in the tiles tab without ever going back in the objects tab. That's one HUGE step less for each room.
 
Another great step, I have modified a script I found to detect all instances and tiles in an area. I now have to play arround with one-way walls as there is an issue when encountering a one way wall with slopes.

I'm just anxious to get this going. I will be doing a new thread for the new version and will drop this one. You will be pleased to have V2 when ready. I'm on it!!!
 
It's been a while I havn't updated this thread. Figuring out a good suitable way to do a platformer that does not fall into the pits of old non-optimized codes is hard. I was able to recreate the whole engine until I fell on a very tiny problem with one-way walls. When I tried correcting it, everything went BOOM! Once I realised that modifying the code was dangerous I had to rewrite the collision engine again as I plan to releas this so it can be easy for noobs and instructive to advanced users. So I am now simplifying the process of collision going back down to the basics that date back in GM4, yep, that's it, there were some very good and solid games back then with nice fluid collision engines. Well, this is what I am doing, taking the good stuff of back then with the good stuff of today, mixing them up to make a holy mix worth working with.

I am VERY sorry for the delay but I really cannot submit this new engine with major flaws but, I'm still on it!
 
Top