Sample Levels from placerooms.pl

Table of Contents

Previously:
  1. Batch One
  2. Batch Two
  3. Batch Three, with the Cavern room type added.
  4. Batch Four, with the Barbell room type added.
  5. Batch Five, with Lakes added.
  6. Batch Six: Triangles, Quadrilaterals, and Fuzz
New Content
  1. Batch Seven: Fixing Dead-End Corridors
  2. Batch Eight: Cutouts and Bug Fixes
  3. Batch Nine: Traps
  4. Batch Ten: Lined Barbell Corridors
  5. Batch Eleven: More Corridors (quadrangles, lollipops)
  6. Batch Twelve: Reclaiming Negative Space
  7. Batch Thirteen: Intersections
  8. Batch Fourteen: Larger Map Sizes
  9. Batch Fifteen: Unfilled Maps
  10. Batch Sixteen: More Unfilled Maps
  11. Batch Seventeen: Less Regular Diagonal Corridors
  12. Batch Eighteen: Overlapping Corridors
  13. Batch Nineteen: Cyclic Corridors
  14. Batch Twenty: Hexagonal Rooms

Batch Seven: Fixing Dead-End Corridors

I mentioned earlier that my first attempt at corridors didn't quite have the results I'd hoped for. One problem was that they tend to get placed at the edges of the level. That remains to be addressed. Another problem, however, was that they tended to end at the wrong places — either the corridor stopped a few tiles short of an obvious destination, or it continued a few tiles past. My next project was to address this issue, by adding a fix dead corridors stage, after all the rooms are on the map but before adding the lakes. For the first example of that in action, I'll start by showing the level as it was before the corridor fixup happened...
[map image]
Notice how the corridor along the bottom edge doesn't really go anywhere, and the north-south corridor keeps going off into nowhere. Here's the same level right after the corridor fixup:
[map image]
Better. Here's the finalized level:
[map image]
More sample levels with fixed-up corridors follow...
[map image] [map image] [map image]
Here's an interesting case. See the little closet in the southeast, on the map below? That was generated as a corridor, running six tiles east, along the south edge of that other room — quite uselessly, since there isn't anything over there for it to go to. The fixup algorithm couldn't usefully extend it, so it trimmed it back, resulting in just a closet, which seems fine: we place those on purpose anyway. Here's what that map looks like:
[map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image]

Batch Eight: Cutouts and Bug Fixes

The big news in this batch (though not visible in the first sample) is that sufficiently large rooms can now have a section cut out of them, before they're placed onto the map. This is imperfect in several ways (not least, there are sometimes loose scraps of wall not adjacent to anything, and I need to clean that up), but it shows promise. I also implemented several bug fixes and other minor adjustments over the course of this batch.
[map image] [map image]
Hmm. Incidentally, I needed to have another look at the part of the lake code that checks whether the lake makes the level untraversible. Here are a couple examples of why:
[map image] [map image]
So, I made some adjustments to that part of the lake code. These results seem better in that regard:
[map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image]
And yes, I see another bug I need to fix in that last one. Believe it or not, that isolated section in the southeast corner was placed there by the lake code — it doesn't disrupt the traversibility of the rest of the level, but the obvious problem is, it doesn't adjoin the (traversible part of the) rest of the level. I hadn't thought to check for that. Live and learn.

Batch Nine: Traps

[map image]
Ok, so that one room might have too many traps. Let me tone down that maximum a bit.
Continued in Batch Ten