I've been wondering for a while now: "How does a level editor save a level to be loaded up again?" and after searching around on the internet, I found that there are a few ways to do this. 1) Save the Level as a bunch of text, where 1 letter is a different block than another or 2) Save the Level as a bunch of pixels in an image where 1 pixel color is a different block than another pixel color.
Notice how both of these methods of saving rely on the level being grid-based. Well what about a level that isn't grid-based? There could be any number of objects, at any position possible! So, how does saving a complex level work?