Yes, this is the post on stairs alluded to by Nicholas a few days ago! And it is actually just about stairs. … But it might well tell a story which informs all manner of gameplay design processes carried through the development of Dungeons of Dredmor.
To start: Dredmor needs stairs. They’re the classic portal between dungeon levels in roguelikes, and as much punk-rawk pleasure as I’d take in flouting convention, this is one we’re rolling with. (Portals to sub-dimensions and doors to sub-rooms will have to come in the expansion.)
Here are our wonderful stairs being wonderful at us; on the left some down-stairs, on the right some up-stairs:
They’re lovingly cut into the dungeon walls and use of the stairs is implicit in walking onto them. Simple enough. It was not always so.
The old stairs are a holdover from very, very early designs only replaced with these new ones… oh, just last month? — because it was finally annoying enough to fix and the idea came to me to shove the stairs into the walls. I mean, we already have code that cuts little nooks into the walls to hold secret rooms, and also to cut doorways into walls, so why not?
The old stairs, in shots taken from our trailers on Youtube because I never took screenshots of the old stairs because they pissed me off so much:
The old stairs were just double-high dungeon floor objects (“blockers”) that activated a descend/ascend dialog when the player walked over their base tile. You can perhaps see the problem here: Stairs which descend into the floor should not be double-high because they will draw overtop the player in some Escheresque distortion of reality. Dredmor did not (and does not, as far as I know so far) handle multi-tile objects which are supposed to be on or below the floor very well. [Though we can fake it by breaking underlay graphics into multiple tiles and flooring the draw order.]
At one point we did try something of an inversion of our current solution: free-standing stairs got a column of wall attached behind them. This sorta-worked for ascending stairs (as you can see above on the right side), but it was still a bit awkward. Especially when the stairs got spawned right in front of a doorway like that …heh. And it absolutely didn’t work on descending stairs:more escheresque screwery.
What’s the lesson? Oh, I don’t know: Try stuff? Honestly, it’s probably just a matter of communication. There was a visual component that bugged the hell out of me forever and the solution proved to be pretty easy. It was just a matter of releasing how simple the solution was, talking to the coder, doing a mockup, and convincing him that I’m going to be a pain in the ass until he fixes the damn thing for me. See: teamwork.
Now I’ve got to work on Nicholas about making these stupid doors less awful.