by Barking
Hi all,I really enjoy the RtL app and also the co-op expansions, because they add exploration and give a stronger dungeon crawling vibe than the normal game. However, both have limitations.
The co-ops only use a small selection of game components (both tiles and monsters), and can become repetitive. Also, the dungeon is quite linear, and the tiles might not actually fit.
The RtL app only offers two campaigns (although more might come), but also single quest play is not really supported. The Delve adds a lot of variety, but misses the exploration aspect.
So I started thinking of an alternative, and made a quick implementation that, given a set of tiles, creates a random dungeon that can be revealed part by part. The idea is to use it in a similar way to RtL, but so far it is an empty dungeon (tiles only). Unfortunately, I could only program it in MATLAB, which is not ideal for this kind of thing and also does not make it very portable.
So my hope is that the expected addition to RtL is something similar, or that Bruce would consider adding it to Valkyrie. I'll PM him later.
Anyway, here is how it works with some examples. The dungeon always starts with a entrance, it then adds a chosen number of random tiles at random open edges, it then adds an exit if you want, and finally it adds end caps to all open edges. Because of the random nature of dungeon building, it might sometimes not work (not fit). However, since generating a dungeon only takes a second, the routine can just try multiple times until it works.
The routine can be called with 3 input arguments.
ntiles - the number of tiles excluding entrance exit and caps
addexit - whether or not to add an exit
traits - some traits that you want the dungeon to have
The traits influence the random parts of the tile selection and edge selection. Increasing the probability that certain tiles (or open edges) are used. Traits that can be used are the monster traits like 'Building','Cave','Hot' etc., which I tried to match to the tiles. I added 'Room' and 'Corridor' (following RedJak DD). As well as 'Tunnel' (favoring tiles with only two edges) and 'Crossroads' (favoring tiles with multiple edges. And I added 'Long' or 'Short', which influences whether the edges close to the entrance or far from the entrance are favored.
The routine also outputs the number of loops in the dungeon, which can be used to accept the dungeon or create a new one. So examples:
5 tiles, 1 exit, 0 loops, 'Hot'
12 tiles, 1 exit, 0 loops, 'Corridor','Tunnel','Long'
12 tiles, 1 exit, 1 loops, 'Room','Crossroads'
Very interested in what you think!