I’m working on a new engine right now and I’m using worlds as the top-level game file, which works great for most things. I can build a spatial index of all the map rects from a world and load them from the server on the fly based on where the player is in the world.
The only problem is that right now the world file can’t tell me which map to start on. It’s just a collection of maps.
My suggestion is to add a “custom properties” object to the world itself, and to allow properties to reference maps, like they currently do with objects, this way when I load up the world I know which map has the “player start object” without having to load all the maps up-front.
Right now I’m working around the issue by pre-processing the world, and copying the properties from the map files back into it, and having a map-level property that references the player-start object. Whichever map has the property gets loaded first.
It would be great if I could just put properties on the world object itself, though. And if those properties could reference maps, that would be awesome! I’m sure people would find other uses for that.
Edit: I noticed that modifying the JSON manually and re-saving it seems to lose any custom additions. If we could just have Tiled leave those values be, that would work too!