I’m also one of the core devs, and while I can’t necessarily speak for the others, I can at least explain my criteria for z-levels.
First of all, any z-level system would need to be functional - which includes having no major bugs, and not exacerbating existing bugs. It also needs to either be a well-written, extensible system that we can use as the starting point for future expansion; or it needs to add compelling new content (current content, not potential future content).
The proposed z-level implementation fails the functional/bug-free check. There’s “sky”, but out of the several types of commonly-moving entities, the player is the only one that interacts properly with that sky. Yes, I’m aware that this is an existing bug, but it’s one that’s exacerbated by the proposed implementation. And no, insulting me or saying that it’s not your problem isn’t going to change my mind.
The proposed implementation also isn’t a well-written, extensible starting point (more on what that would look like later). Nor is the new content particularly compelling: it’s slightly more space in the evac shelter, and a platformer puzzle with some arbitrary loot at the top. The evac shelter has enough space for its current needs, and arbitrary puzzles/loot aren’t thematically appropriate for a survival game like Cataclysm.
I can imagine things that would make me accept a hacky implementation, on the grounds that the new content is worth the trouble. One thing that might do the trick is church bells that draw zombies from afar. Because that would indeed be awesome. However, the proposed code doesn’t move us closer to that goal in any appreciable way, because there are more fundamental problems with that idea than just having nowhere to put the bell tower. Nor are above-ground z-levels necessary to start working on those problems; we could just use subways/basements and the ground level as our testbed.
So, enough about the current proposal, for now. I’ve talked about a well-written, extensible z-level system. What do I mean by that?
Basically, there are several limitations to the current system. If someone is able to remove those limitations, without sacrificing too much performance, that would significantly increase the chance of their code being accepted.
First off, different levels aren’t treated as part of the same physical space - the “stairs” we have may as well be inter-dimensional portals. That’s fine for most roguelikes (where “level” is an abstract concept anyway), but it doesn’t suffice for simulation games like Cataclysm or Dwarf Fortress. Our current system is one where if you’re in the basement, the above-ground area simply does not exist as far as the game is concerned. That’s bad, because it means that we can’t easily interact with other z-levels, and anything that WAS on that other z-level (monsters, fire, etc.) simply stops functioning. Incidentally, this is one of the two biggest limitations to the church bell idea (the other limitation is that the world also stops existing past a certain distance away from the player).
Second, there’s also no easy concept of “above” or “below” - the z-coordinate isn’t used anywhere, so when we want to do something like get_tile(x, y, z+1)… we can’t. We’ve got a series of unrelated squares, rather than the 3D cube that we need. Making it so that z-coordinates exist and are usable would also be a good starting point, although it may require redoing some of the code’s basic architecture.
Those are things that I would consider merging into mainline, even if there were no real change to content (other than maybe fixing some of the bugs we currently have, due to the hacky z-level implementation we’re using).
On top of that, there’s the issue of UI. But, UI is not a prerequisite for changing the underlying system (in fact, it’s sort of the other way around). And there are workable UI ideas floating around, both in Dwarf Fortress (try Adventure mode), and in TheRealTenman’s post.