Graphics Tileset designer?


Hey everyone. I've recently made the switch from 1.4 to studio 2. I was reluctant for a while (had it in my steam account for about 2 years) but... man, I have to say I absolutely love it!

I've converted a project over from studio 1.4 and immediately started changing code to avoid all of the compatibility scripts for performance. It didn't take much time as the only compatibility issues were the views and ports, instance_create(), and the entire string to hash thing, it was mostly just typing in to "replace all". BUT....


Now this may seem as a lazy approach but it worked for me in 1.4. I would create a single tileset and alpha blend them with a certain "brush" or "design" in the image editor and make a tileset out of a single image. Tileset example below.
In the room editor of 1.4 it was then just selecting which tileset to basically use as a brush in the room editor. Pretty cheap and easy way to design a level like below.


In studio 2, if I am correct, to use tiles like this you must assign them to an asset layer in the room as a sprite, which is less performance friendly (please correct me if i am wrong). Building a single image tileset in studio 2 looks like a bad idea as the first tile in the tileset is set to blank, these tiles are 192 x 192, i would think this would eat up texture pages pretty quick because of having to double the size of each tile.

It also appears the tileset editor in studio 2 is just that, an editor (again correct me if i am wrong) and not a builder.

Are there any programs that any of you use that help you build tilesets, such as adding individual images, making it less labor intensive on the user? Have any of you ever designed rooms like this? Are there better approaches in studio 2? I would really like to hear everyone's feedback!


Well. I have tested making surfaces randomly mesh together on GMS2 and making surfaces randomly mesh together into a .png background with Shadowforge, my own paint app project. The .png background resulted in better fps performance than coding it in GMS2. I hope this was helpful in any way.
  • Like
Reactions: Joe


šŸ§ *penguin noises*
GMC Elder
Another complication you haven't thought of yet: tile layers must use the same tileset, so you need one layer for each tileset you want to use. New-style tilesets most definitely isn't the way to go. (Also tiles can't overlap, new-style tiles must take up exactly 1 grid cell and be grid-aligned). Asset layers basically is exactly the same thing as old-style tiles, except there's no way to place down pieces of an image in the GUI (as far as I know), only whole sprites.

I haven't done any major "hard facts" testing on asset layers, but they're efficient enough that I can use them for thousands of blood splatters / debris in a large room without any noticeable slowdown, so they should be fine for "old-style tile" purposes (where you'd probably use more modest numbers, especially considering how big the tiles are).


Personally, I mix it up. I use a base tile set and a detail tileset over that tileset then I have a asset layer where I can just grab sprite and put them where ever on the map. I try to only use the later when the first two will not work as tiles are so much faster to build the level and work with.


šŸ§ *penguin noises*
GMC Elder
Yeah, just from a usability standpoint it's pretty easy to tell what asset type is best for which purpose...
  • Tiles for things that neatly subdivides in squares, like human-made structures
  • Sprite assets for organic shapes, foilage and other things that don't really fit in a grid
  • Objects for things that move around, have heavy animations going on, or dynamically gets destroyed
Though from a performance standpoint, tiles > sprite assets > objects so in practical use-cases things aren't always so clear-cut.

(Sequences also have some uses for animated/dynamic props... but they're still pretty much in beta with improvements on the roadmap, so I'll give them a tentative honorable mention for now.)