It took pretty much all week, but I completely overhauled the map generation system in our game - before it was a very rigid system where you said "use this algorithm with these parameters" and it always spit out 2 floors, a shop, and a boss level with no real ability to customize it.
The entire system is now a pipeline of discrete steps, and each zone has a data file, where each level has a block that looks something
like this. This lets me change big stuff like map size per floor, down to little stuff like tweaking what set of decoration steps to use. And it's gone from being a bear to wrestle with to something that I really really enjoy using.
I've made a bunch of other changes as I go, like adding a first pass of a snow effect to our london/town level:
And the ability to add interior columns to our mansion level rooms for more permanent cover options:
The last big thing I did was a change to our core layout algorithm for the mansion - before it was always a directed acyclic graph which works great but it starts to feel a bit same'y when you always have one long path with offshoots and no loops. So I modified the algorithm to go back after the initial layout has been done and add loops wherever it can as long as it doesn't cause a shortcut that significantly reduces the distance from start to finish. Example:
So these maps started with the same generated room layout. On the left you can see the directed acyclic graph version, which gives you a main path (in blue) and offshoots (in green) that branch off and never really overlap. Good for placing objectives at dead ends, not so great for anything else. The version on the right is from the new system, where there's still a main path (although even that supports branching now), but the entire level is far more interconnected. One downside is this makes doing 'locked door' type objectives significantly more difficult - not sure how I'm going to handle that yet.
So, yeah. Lots more to do on the map generation front but really happy with how the new system is working out so far.