The engine uses 'layers' (and 'floors'), and there are different types of layers. The biggest one ofcourse being the Tile layers (temporarily disabled due to a pending refactoring), and I've implemented Backdrop Layers and Decal Layers. There's several other important types of layers I need to implement, but most of them are simple enough I don't expect much complexity. Theres one or two layer types that'll require a decent amount of work, though.
Anyway, I got 'backdrops' implemented properly now, and there's alot of cool features in it.
- First, and most obviously, they can be used as backgrounds. And, since each Backdrop is a separate layer, you can layer multiple backgrounds together if desired - for example, if the upper layer was partially transparent.
- Second, they're optionally parallaxed, so you can move the Backdrops at different speeds when the player is walking around. This allows for potentially some interesting effects I intend to use to make the game more visually pleasing (light rays when outdoors is one I have in mind).
- Third, they optionally scroll (and at different speeds), so I can use Backdrops for slow-moving mist or clouds. And if I have different layers of mist moving at slightly different speeds, I think the effect would look rather nice. For the clouds, I was thinking subtle cloud shadows moving over the ground, but they'd need to be really subtle or it'd just be ugly.
- Fourth, they're animated - again beneficial for mist, but perhaps also for oceans or swamps.
You can also see a Decal Layer present here, which can contain various textures (with masks) that are freely rotated, scaled, or stretched out of shape. Similar to Decals are the Object Layers which, while not yet integrated into the editor interface, almost entirely share the same code as Decals, except they don't allow rotation, and they are sorted with the player by Y-position.
([size=2]Pardon the big blue arrows - that's the texture I was using for testing, and not part of the editor interface)
You can also see the minimap working (top-right corner), and alot of other niceties are functioning like zooming in and out, and adding, deleting, and reordering layers. There's also alot of not-implemented functionality.
One big important roadblock that I recently overcame (hopefully for the last time ) was getting my textures and animations w/ metadata retrieved in a stable way. I don't have them all imported yet, and there'll be some manual labor organizing them, but the major roadblock was architectural design problems I was having. Over-engineering or over-simplifying, I was banging my head back and forth between those extremes.
I still have some work left to do when it comes to textures (packing them in archives), but that can wait until way later - even after map editing begins, since it doesn't affect the file formats in any way. If real-world performance is fine, it might not even need to be tackled at all until porting to tablets (post-release of PC/Mac/Linux).
It'll still be a ways off before I begin to actually use the editor to create the world, unfortunately. I make very little progress every day - a serious lack of butt-in-chair-productivity. But things are progressing!