Sample Levels from placerooms.pl

Table of Contents

  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
  7. Batches 7-9
  8. Batch Ten
  9. Batch Eleven
  10. Batch Twelve
  11. Batch Thirteen
  12. Batch Fourteen
  13. Batch Fifteen
  14. Batch Sixteen: More Unfilled Maps
  15. Batch Seventeen: Less Regular Diagonal Corridors
  16. Batch Eighteen: Overlapping Corridors
  17. Batch Nineteen: Cyclic Corridors
  18. Batch Twenty: Hexagonal Rooms

Batch One

This is the first batch of results that I shared. There were only a few room types at this stage, of which the organic x was probably the most interesting. Ellipses were also present, but rectangles tended to dominate. Nonetheless, the overall room-placement algorithm was working. Here are the samples, presented as screenshots:
[map image]

Batch Two

For this second batch, I attempted to add corridors. I also implemented vestibules, single-length corridors like the standard NetHack room-and-corridor level generator's closets. I also lowered the probability number for rectangular rooms, in an attempt to make them dominate the levels less. However, the corridors here don't feel like they integrate into the level very well, partly because they tend to get placed on the edges of the level (likely because nothing else really fits there). The vestibules do better in this regard. Corridors are a question that was destined to be revisited later. The samples:
[map image]

Batch Three, with Caverns

For this batch, I implemented the cavern room type, as described in the inspirational article. It adds a lot of variety.
[map image] [map image] [map image] [map image] [map image] [map image] [map image]

Batch Four, 2016-Nov-15

For this batch, I implemented the barbell room type. The barbell doesn't usually fit unless it's generated very early in the level creation process, so not all of these samples have one; but there are several good examples. When you see a corridor in these levels that doesn't look like the ones in the previous batch, it was probably created by the barbell generator (which starts with two rooms and joins them with a corridor from the one to the other). The major exception is the secret corridors, which respresent an improvement to the fixup code: when the level is basically complete, any door that is adjacent to corridor tiles but not adjacent to any floor tiles becomes a secret corridor.
[map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image] [map image]

Batch Five: Lakes

This was the first attempt to add liquids. It only sort-of works and will need to be revised.

[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] [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] [map image] [map image]
The strange arrangement of shallow water in this next one is an interesting corner case, involving unusual conditions in three different sections of the code (the lake code, the general-purpose generate-a-room code, and the code for a particular type of room not even seen in the final result) combining in a strange way. I'll probably end up passing an additional argument to a function in order to prevent this, and other things like it, from happening.
[map image]
For a bit there, perhaps you thought the tendency to create rectangle-dominated levels was improving. Then you see something like this:
[map image]

Batch Six: Triangles and Such

With the next batch I introduced two additional room types (triangles and quadrilaterals, both of which sound like they would feature straight lines, but they don't necessarily, because I draw the lines using the same function that draws the barbell rooms' corridors). In addition, partway through this batch, I introduce a fuzz feature to two of the existing room types (elipses and rectangles), which sometimes causes their edges to be more irregular than before.
[map image]
The big room dominating the southwest quadrant of this next map is a pretty good example of a triangle room.
[map image]
The northeast room here is also a triangle room:
[map image]
Here's a good example of one of the more obscure features of the lake code: sometimes instead of water, it places other things. you've seen lava; but here it used walls. (I need to adjust the fixup code to handle this case better, probably by converting any wall tile surrounded entirely by other wall and stone tiles to stone.) Notice what it did to the room just southeast of it: the northwest corner of that room used to be a right angle. Not anymore.
[map image]
This next map contains at least three triangle rooms. How many can you spot?
[map image]
I believe this map contains a couple of the quadrilateral rooms (both near the middle).
[map image] [map image]
This map is largely dominated by the cavern generator, but I believe that lava lake is a triangle.
[map image] [map image] [map image] [map image]
I'm not altogether certain, but I believe the good-sized room in the southwest portion of this next level may be a fuzzed rectangle. The room in the northeast corner is almost certainly a lightly fuzzed elipse; the one next to it may be as well.
[map image] [map image] [map image] [map image] [map image] [map image]
Continued in Batches 7-9.