Real talk... Why Tile Maps? Whats the upside?

Keep seeing multiple issues about tile maps and the more i think about it the more i wonder why people use them…

Seriously, whats the upside to using a tile map instead of building your level using the editor?

The editor has all the tools you need to build a scene, like making a grid, snapping to it, arrange ZOrder, easy copy / paste / dublicate, multi selection and so on…

Is is just to have less sprites in your project? Why? What if you want to change something? or mod a sprite?

Is it because of the file limit on itch? Why not just make a smaller version of your game and put it up as a demo, then if people want the complete version they can download it, you can even make some cash that way…

I really dont get it…

They also seem to be much worse for performance, and GDevelop already struggles in that department…

Im genuinely curious

I haven’t tried Tile Map before but it is said to make it easier to build levels, for example automatically changing the animation of sprites depending on their position such as edges.
As for performance… I don’t know.
GDevelop tries to include a tilemap editor, like Piskel and JFXR:

I still dont get it… whats wrong with having a sprite for the interior and one just for the edges? …if it changes the animation dosent it mean the sprite has more then one animation? making it even worse for performance?

Strictly talking out of my butt since i havent used a tile map editor… but im fairly certain this is some novelty extra step that is marketed as being “easier” when in reality all the effort that comes with making it work or working around it… just makes it much harder to work with…

This is a pretty broad game development subject and not really relevant to GDevelop as Tilemaps have been around longer than the NES.

Mostly in the modern era: It allows for better culling of large maps (not rendering sections not currently in the viewport, which you can’t do with a single large image), and more efficient usage of resources (a tileset has some logical efficiencies because of how it does an array of locations and a single reference to a tileset tile, rather than unique x/y per placed sprite).

Also, if you are getting worse performance on a 1000 tile tilemap vs 1000 placed sprites, something is very wrong with the project or event setup. A tilemap should always be more performant in most real world use cases in any engine, and has been so in GDevelop since it was first added to the engine. (Do not confuse tilemaps with tiled sprites. Tiled sprites can be much less performant than normal sprites depending on the scenario)

“mouse drawing”…nuf said

but still Tiled is a mess an integrated tool in gd shjould have a priority

1 Like

If you mean drawing your tile placement with a mouse, yes. That’s a pretty big benefit of using tilemaps.

I exclusively use LDtk for my maps because tile placement is even faster than Tiled, and I prefer to have more granular control over collisions by placing stretched objects vs using the tiled collision configuration and gd5 tilemap object, so those two methods combined make my life much easier.

1 Like

and i agree on you on LDtk it is really the best tool out now…
i 've even asked in their github for a GD collision support…
They have some kind of vertex calculation for collison but rite now it is not compatible with GD…so its a no from me.

Honestly at beginning i loved Tiled for its ease.Then after4-5 years of a complex platformer it turned out to be not the solution because various collisions issues and coordinates calculations. Nothing that can’t be fixed in alternative ways…but its platforming collisions doesn’t works as the GD built in platform collisions…thaz for sure

So imho GD should have its own tiles painter tool with collisions support.
Immagine right click on object in editor and just draw with mouse (and maybe right click to delete, a palette for change colors,ecc…) …i think this should have a very high priority…since all the external tools we have rite now… works halfway.

i tried to use the built in editor to make the first map and while it worked flawlessly…it has been a pain to place for e.g corners, slopes…ecc…

I know tile maps have been around for a long time, what i ment by novelty was what is being used to make tile maps these days… that part i have no idea on since iv never used them.

I just dont get much of the appeal, dont you have to import them all over if you need to make a change to them?

Im constantly tweeking the maps, if i had to re make and import the thing every time it would drive me nutts.

I’d definitely say use LDtk then. You can save the map file into your game project folder, there isn’t an export needed. Then you can edit the map in LDtk and it will refresh as soon as you close and reopen your gdevelop project (If I remember right assets are cached while the project is in use)

1 Like

after that, place your collision boxes on evey square of your walls and platforms. Now…imagine doing this in every scene, or in a full metroidvania map…muliply this to the fact that you ever gonna need to code your z-order, since all objects in editor are placed one above each other,multiply this for every object on your map…(i’m not talking about layers)…god…it is just bad…it doesn’t matter how you look at it…
that is the main reason i had to put on hold my project.
Not blaming ppl for use an external tools to make their maps but (at least for me), this limits puts GD in the last place, compared to all others software which are shipped with a built in functional map editor…basically all others.

What you on about mate?

ZOrder? You can just make a group with your tiles and set it all to the same, or make it dynamic depending on the Y and X… plenty of easy and cool stuff you can do with this.

As for the map building… again, no idea what kind of assets you guys are using, but as long you sick to a size structure, like 32x32 and 32x64 blocks, or something like that, its so simple to build sutff.

If you want to move a big chunk, you can drag and drop selection, you can multi select, you can do so much…

…and then if you need to change something… well its all seperate pieces, so just move then and go again, no need for importing or extra steps.

Once im happy with my assets, i can build massive levels within minutes using just the editor.

To each their own i guess :stuck_out_tongue:

I really was just curious about it so that i can have something to compared when i try tile maps out, because so far just from what i can read about it… its way more trouble then its worth it.

I really dont like stuff that breaks your creative flow, when im working in GDevelop and in the zone, i dont want to tab out to edit a map… :frowning:

Keep in mind you are absolutely welcome to continue develop however you feel works best for you, but to touch on a few things:

  • I’m not 100% sure what RMDB is referring to in regards to Z-order, in general when building out scenes for a metroidvania, your level layout should generally be on a separate layer from your enemies/player objects (lower on the layer list than the player/monsters), which should also be on a separate layer from your “Foreground” objects that would go in front of them (higher on the layer list than the player/monsters). The Z-order within those layers generally won’t matter, but become much easier to manage when using this method. This will be true with or without tilemaps
    • Tilemaps will make this slightly easier because you can just move the entire map object to the background with one click(and you can even have a separate map object with all foreground objects, or multiple of the same map and just show only select layers).
  • GDevelop does not support any form of “painting” objects, so if you are making large terrain, from a pure number of clicks perspective tilemaps will be faster.
  • Your workflow is your workflow, but the only reason it breaks your flow currently is because you don’t have the map editor open. While I would prefer LDtk to be bundled in the editor (and have posted a bounty over the years to do so), you just leave LDtk open as you work in GDevelop and then it’s basically no different than another tab in GDevelop as it is.
  • To reiterate, a 1000x1000 tilemap will always be more performant than 1000x1000 of sprites, tiled sprites, or panel sprites.
  • Also note that both Tilemap editors allow you to build out logic rules for Automapping. Meaning you can say "use this corner piece tile whenever it is connected to a “top piece” tile and a “side piece” tile, then just click and drag the tile and it’ll auto populate all of the correct tiles for you. Even if you need to tweak some specific tiles later, that will always be faster than manually placing them. LDtk’s logic rules are done visually, which is significantly easier to set up than Tiled (which requires some scripting), so I prefer LDtk for this among other reasons.

Here’s an example of automapping in LDtk for reference, they only change to a new tile twice (once for water, once for ladders):

fair enough, thats pretty awesome!

I can see the appeal now :slight_smile:

Here you can see my test map.
At 1 mins thaz me placing a pillar…That is my workflow…placing,…scale…z order…eventually put collisions proxies…to simplifui things i had to use thos horribles big chunk of black block…already with platform behaviour …trying to speed up the process…
I don’t think that i’m doing something wrong…and i find it reeeeallly slow…
You can see that i had to create slopes separrately
and assembled evrything…like some kind of puzzle…and in the end to me still looks bad…
Now tell me, isn’t better to just draw everything needed directly on the map instead to use this kind of workflow?.i mean theh use of both methods combined would be perfect… As much as i like Ltdk it will not simplify the work because…collisions…even if you can sync its edit to GD…it’s only for the tiles.
IT would work for a single small map but not on a full scale game.

It doesn’t mean i can’t complete the game… but i lost the will to do it cos this approach

oh and trust me (after 4-5 years of dev) nothing in the video is doable with Tiled

Again, I’m not sure what you’re calling out here, and I don’t think it’s relevant to this conversation or the questions being asked by MagicBiscuit.

However, to speak on your item: You have to set up collisions on any map you are creating, whether it be Tiled Tilemaps, LDtk tilemaps, GDevelop items manually being placed, Unreal Paper2D, Unity’s native tilemaps, etc.

Even in Tiled, you have to set a collision shape for every single tile in your tileset, and they’re fixed (so if you want a platform that you can break, you have to have unique tiles for that or not include them in your map at all). In many cases that can take significantly more time than just making a collision object in the scene editor. As a point of clarification, there is a Polygon shape in Tiled. This Polygon shape in Tiled is not utilized for collision in any game engine I can find, they only use the specific per-tile collision setup.

Even if you were just creating one huge collision polygon, it is not materially more complicated than having a single red square object that you add to the scene as needed, then stretch or rotate for every floor/wall that you need then you hide it at the start of the scene, especially with snap to grid on and the new object handles for rotation.

Again, it would be wonderful if there was a “Logic entity” object that we could just add to a scene and drag to whatever shape we want as a polygon, and then apply whatever behaviors we want to it (such as a platform behavior) but that isn’t related to tilemaps, and is not specific to GDevelop either.

I know everything about Tiled…i’m probnably the only one who digged more in it finding bug that have been fixed only recently.

“However, to speak on your item: You have to set up collisions on any map you are creating, whether it be Tiled Tilemaps, LDtk tilemaps, GDevelop items manually being placed, Unreal Paper2D, Unity’s native tilemaps, etc.”

tha’s not completely true since you can bind platform behaviour to objects…i find the collision add part extremely stupid and superfluous…in all other engine you already call objects as collider…at least if you’re not developing a 3d game

“Again, it would be wonderful if there was a “Logic entity” object that we could just add to a scene and drag to whatever shape we want as a polygon, and then apply whatever behaviors we want to it (such as a platform behavior) but that isn’t related to tilemaps, and is not specific to GDevelop either.”

This…it could help a lot…and can simplify a bit the process