How I positioned the tileset in my tech demo
In the earlier tech demo, I had positioned a truckload of similar tilesets. Those bluish/greyish square blocks are not hand picked. I did not make that work in the level editor. I got inspired by the Smart Tile Objects tutorial by HeartBeast.
I simply downloaded the Square Blocks Textures from OpenGameArt.org, cut and pasted a bit in Paint.net to adapt it to my needs, and imported the end result as a background in GameMaker Studio.
I made so that when the floor/wall object (which is invisible) is created, it places random tile from that background into the level. Covering the same surface the object covers.
This makes for a pretty quick and dirty way to test a level with low object counts. Also gives me a little “randomized” effect every time I start the level.
What if I don’t want all that randomness? It’s as easy as using random_set_seed(1)
So, here is the create event of the smart object.
tile_fill_object(id, bg_blocks_16, 16, false)
And here is the tile_fill_object script
///tile_fill_obj(obj, tile, tile_size, randomize_tiles) var obj = argument[0] var tile = argument[1] var tile_size = argument[2] var rand = argument[3] var col_num = background_get_width(tile) div tile_size var row_num = background_get_height(tile) div tile_size if !rand { random_set_seed(1) } for (var row = 0; row < obj.image_yscale; row += 1) { for (var col = 0; col < obj.image_xscale; col += 1) { var col_index = irandom(col_num - 1) var row_index = irandom(row_num - 1) tile_add(tile, col_index * tile_size, row_index * tile_size, tile_size, tile_size, obj.x + (col * tile_size), obj.y + (row * tile_size), obj.depth) } }
This is how it looks in the level editor
While this is how it looks in the game