All ideas tagged "level generation"

#4332

 · 
vanilla

The first delicatessen generated in the game will always stock food aligned with whatever food-related conducts you have kept up until that point, except for foodless, in which case it stocks only decadent food to tempt you into breaking it.

#4290

 · 
vanilla

New room-joining algorithm for regular Dungeons levels and levels which use des.random_corridors:

  • Pick one random room and consider this room to be “the set of connected rooms”.
  • Repeat the following until every room is in the set of connected rooms:
    • Pick 2 random rooms, one from the set of connected rooms and one from the set of not-yet-connected rooms, and pick a random point in each room.
    • Draw a straight line between those two points. Route the line around intervening rooms if necessary.
    • If the line intersects with an existing corridor, dig only the part of the line from that intersection up to the unconnected room. Otherwise, dig the whole line out.
    • Identify the points where the line crosses the outer walls of the rooms, and make doors. If it enters or exits at a corner, shift it to an adjacent wall space.
    • Add the unconnected room to the set of connected rooms.

#4264

 · 
vanilla

Fortune cookies will occasionally generate in gold vaults, containing money-based rumors.

#4260

 · 
vanilla

Sometimes, if there is space and there is no intersection with another corridor, a closet will extend 2 more spaces back (for a total length of 3). The middle space will be a secret corridor (or sometimes plain stone), and the second space will be a regular corridor with a chest with random contents.

#4150

 · 
vanilla

Shorten Gehennom drastically, paring it down to a few mandatory levels (the Valley, the Wizard’s Tower (containing Vlad’s Tower entrance), the vibrating square level containing the fake Wizard’s Tower to portal into the real one) with no demon lord lairs and no filler. In exchange, once you start escaping the Sanctum with the Amulet, any level you reenter for the first time gets partly overwritten with Gehennom elements – rivers of lava, twisted mazes, and in particular, the demon lords. However, enough areas of the map will be left in their original states so that it remains recognizable. In particular this is aimed at making sure any stash you have made may not survive the process.

There are several motivations for this:

  • Reduce the common feeling of “the game is over after the Castle” by putting only a few things between the Castle and the ascension run.
  • Put the main challenge of Gehennom on the way out of the dungeon, not on the way in.
  • Make it uncertain that the player will be able to go back to a big stash of items after grabbing the Amulet and take whatever they need before entering the Planes.
  • Reduce the number of situations where the player can simply levelport away from a hairy problem such as a tough demon lord, collect the appropriate gear to fight them, and return (dipping into and out of Gehennom).
  • Remove a Gehennom-worth of items the player finds on the ground and in monster inventories (where “the difficulty is flat but the loot keeps coming”).
  • Mitigate the tedium of knowing you’re as powerful as you’re ever going to get but still have to retrace 50 explored levels. Relatedly, remove the incentive – the ability, even – to go tunneling through mazes.

#4010

 · 
vanilla

Occasionally, if a Mines filler level generates where there is a sufficiently large space of empty stone, a little separate walled-off area may generate disconnected from the main map, containing a few gnomes and dwarves, and some more gems and gold, possibly in a chest. This area won’t get the stairs generated in it, and should probably contain a hole so that a randomly teleporting player won’t get stuck there (other types of escape items could get picked up by the gnomes and dwarves).

#3701

 · 
vanilla

Generate a single out-of-difficulty monster on every level, as an experiment to see how the game balance changes (not necessarily as a permanent feature). Or instead of picking something out of difficulty, generate a monster with the maximum permissible difficulty.

#3514

 · 
vanilla

In regular dungeon levels, a certain engraving can occasionally generate which has treasure buried beneath it.

(Note: This idea predates 3.7 themed rooms, and could likely be done as a themed room. One themed room is similar, containing buried treasure but no engraving.)

#3399

 · 
vanilla

Some Dungeons of Doom levels are corridorless - rooms directly adjoin, and do not all have to be rectangular, though most will. Rooms can have longish, nonlinear extensions - like corridors, but made of ordinary floor, walled, and anywhere between 1 to 3 spaces wide.

#3393

 · 
vanilla

Easter egg: a comestible that has very low weight and very high nutrition, thus a very good food to have. They generate very rarely, perhaps only 1-3 per game on average, and generate exclusively in hidden spots: in chests, closets, and vaults, the dead ends of mazes, beneath sinks (revealed when you step onto the sink), in trees (revealed either when you step next to the tree or kick it), etc. The glyph is brightly colored, perhaps purple.

#3360

 · 
vanilla

Dragons that generate at level creation time also spawn a hoard of gold beneath them, similar to how concealing monsters generate items to hide beneath. Possibly, their AI recognizes the horde as theirs and they are reluctant to stray off of it or far from it as long as there is gold there.

Rather than placing random amounts of gold on each tile in a special room that generates gold on each tile (zoo, leprechaun hall, and any other that might get added), bias it so that there is more gold in the corners and along the walls, on the basis that things tend to accumulate in the corners of rooms. Should work on irregularly shaped rooms as well as rectangular ones.

One possible algorithm is that corners get 3 “helpings” of gold placed on them, walls 2, and every other space 1.

Another take is to instead put more gold into the center of the room and less further out, possibly guaranteeing some dragons on top of the biggest piles.

#3270

 · 
vanilla

All food generated in Gehennom (including both food generated with the level and after creation time, and corpses) is rotten.

#3267

 · 
vanilla

Very rarely (perhaps 0.3% of the time), a soldier ant will generate in a barracks instead of a soldier.

Proposals to address the situation where all the candles needed for the invocation are guaranteed in Vlad’s Tower. The current situation removes frustration but many players feel that it’s trivialized, whereas the system in 3.4.3 was frustrating because it was a common occurrence to have to backtrack to the Mines for candles after forgetting they needed to be collected, or worse, having to wish for them because the game didn’t generate 7 of them.

  • Make the Candelabrum come prefilled with 7 candles; this doesn’t address the trivialization concerns but does make it slightly less blatant.
  • Put Izchak’s store on a bones-ineligible level and guarantee at least 7 candles in the shop.
  • Rely on gnomes in the Mines being generated with candles, with a certain minimum amount of candles guaranteed.
  • Candles generate randomly on the floor of Gehennom levels, zero or one stacks per level.
  • Monsters in Gehennom sometimes generate with candles (though this would be difficult to tune and would not be as discoverable via object detection).
  • Make bees occasionally drop beeswax, which you can craft into candles; or they just rarely drop wax candles, or wax candles appear in beehives.

#3254

 · 
vanilla

Shops occasionally generate in Gehennom. They are staffed by peaceful demons, stocked with dodgy goods, and priced outrageously.

#3248

 · 
vanilla

Allow lua files to specify a trap as “mapped”/”known”/”seen”/”premapped”/”visible”; when the trap is generated it will set its tseen value so that the player instantly sees it from a distance, like how most holes work.

#3236

 · 
vanilla

When you enter Gehennom, the Sanctum is right there as one of the first couple of levels. But entering it transforms all the existing dungeon levels irreversibly into Gehennom levels, including demon lord lairs and the like. Everything in the Dungeons of Doom will be lost, and the player now has to work their way through the rest of Gehennom with the Amulet to enter the Planes.

Alternatively, and perhaps more straightforwardly, destroy the Dungeons of Doom when the player goes beneath the Valley of the Dead, and just have them enter the Planes directly from the Sanctum.

#3220

 · 
vanilla

An option that disables special level flipping.

#3164

 · 
vanilla

Allow themed rooms to be specified as joined to the rest of the level, but only at preexisting doors on the edge of the room, and the level generator should not create new doors to connect it to the rest of the level. Internally, this means expanding a room’s ‘joined’ variable from a boolean to a larger type that can hold a third value. This would be useful for making themed rooms where it’s desirable to connect them to the map only at specific points.

#3116

 · 
vanilla

Dungeons levels generate random, small Sokoban “rooms” - actually themed rooms, never on a path between the two stairs, possibly using “diagonaloban” rules which permit boulders to be rolled in any direction. There is a minor prize in each room at the end of the puzzle.

Internally, rooms like this should have their own room type, which will help with putting in anti-cheating measures:

  • You cannot teleport into a square whose room type is this room. (Teleporting out of the room should be fine.) Likewise, the room is not a valid destination for arriving on the level via levelport, falling from above, etc.
  • The walls are nondiggable and non-phaseable.
  • Air currents are in effect over pits/holes in this room type.
  • The room should have a narrow entrance with a bend in it, so that boulders can’t be pushed in from elsewhere on the level.

It’s unclear what the methods to prevent the standard forms of cheating (breaking boulders, reading scrolls of earth, carrying boulders as a giant, etc) should be. Possibly they will just carry cheating penalties like normal.

#3090

 · 
vanilla

In special rooms with zoo-like generation, meaning they generate a monster on every square, generate the monsters with MM_NOGRP to suppress group generation. This prevents a group from being one of the last things to spawn into the room and overflow into nearby spaces outside of it.

#2999

 · 
vanilla

Define a special filling algorithm which adds walls to any space to tile it with small hexagons. When a beehive generates, use this algorithm to fill it with hexagons in order to make it look like a honeycomb.

#2956

 · 
vanilla

When generating corridors in the Dungeons of Doom, make corridor-drawing follow established corridor paths when possible instead of allowing long parallel double-wide corridors to be carved, because these are ugly.

A possible algorithm is to build the proposed corridor without editing the map, then identify all squares where the proposed corridor intersects with or is adjacent to existing ones, then pathfind to see which successive pairs of intersections are not already reachable, then only connect those pairs of intersections along the proposed path.

Another possibility is to let the corridors generate normally, and then do a postprocessing cleanup step, where all “unnecessary” corridor spaces are removed one by one until there are no more. An unnecessary space is defined as a CORR space where for each pair of orthogonally adjacent CORR spaces to it, the common corner of those orthogonally adjacent CORR spaces is itself a CORR. Though this may still produce some odd dead-end corridors.

#2730

 · 
vanilla

Randomly generated puzzle mechanisms that reveal secret doors once completed. Things such as finding a mechanism hidden under a statue, or having a boulder generate in a room and needing to push it somewhere else in that room.

#2721

 · 
vanilla

On deeper Dungeons of Doom levels, when the game randomly places an altar in a room without intending to create a temple, sometimes make the room into an abandoned temple.

#2707

 · 
vanilla

Prevent items from generating on top of the pits and holes in Sokoban.

#2665

 · 
vanilla

Rather than occurring entirely randomly, a secret passage can only generate to close off a dead end, where exactly 2 of the 4 adjacent squares, on opposite sides, are corridors, and the other 2 are rock. The dead end criterion is tested by trying to pathfind an alternate route from one of the adjacent corridor spaces to the other; if none can be found, this space must be blocking a dead end, so it is valid.

#2616

 · 
vanilla

Create a procedural level generation algorithm for tower levels, particularly Vlad’s tower. Vlad’s tower should also be larger on the bottom than it is on the higher levels.

#2483

 · 
vanilla

When the player arrives on a newly generated level, any monsters within a certain radius of the player are randomly relocated somewhere else.

#2180

 · 
vanilla

Walled-off sections of graveyards with locked doors named “crypts” can generate. Inside crypts are very strong out-of-difficulty mummies. Note that this would require that very strong mummies exist in the game in the first place.

#2179

 · 
vanilla

Monster lairs (antholes, cockatrice nests, etc) are not filled wall-to-wall with monsters.

#2178

 · 
vanilla

Graveyards can rarely generate visible pits (open graves) with no monster on top of them.

#2177

 · 
vanilla

Treasure zoos try to generate only “animal” monsters (those that have the M1_ANIMAL flag).

#2176

 · 
vanilla

Add code that allows the game to determine whether a room is a “dead-end” room (contains only 1 door which connects to the rest of the level, but unlike shop-compatible rooms, it’s okay to have closets.)

#2175

 · 
vanilla

Certain special rooms (typically ones that have awake monsters in them that shouldn’t wander around the level) always generate with all of their doors locked.

#2174

 · 
vanilla

Throne rooms should place the throne along one wall, preferably the narrower wall of the room.

#2172

 · 
vanilla

Vaults on deeper levels may generate with four gold golems instead of four gold piles. Or both.

#2171

 · 
vanilla

If you are a Monk and the game decides to generate a delicatessen, replace it with a health food store 80% of the time. This is independent from the special case for health food stores in Minetown.

#2161

 · 
vanilla

Occasionally, instead of a werecreature corpse being placed in a closet behind iron bars, a live werecreature will be placed there instead.

#2160

 · 
vanilla

Assuming a new Gehennom generation algorithm which generates doors, some of which must be passed in order to get through the level: have a special type of “demon key” to open doors in Gehennom. Lots of them generate in Gehennom (though not as many as there are doors; possibly a certain type of monster there generates with them so you can obtain more if you get stuck), but each key is single-use and breaks when used to open a door.

#2159

 · 
vanilla

Shops can sometimes generate disconnected from the rest of the level and must be teleported or dug into.

#2158

 · 
vanilla

Antholes contain eggs of the type of ant the room is filled with; fewer than the ants themselves.

#2157

 · 
vanilla

When the game tries to generate a sink in a room, it tries to place the sink next to the wall (though not in front of a doorway).

#2156

 · 
vanilla

Sealed closets (with either a wall or iron bars) generate some additional item loot on top of their guaranteed scroll of teleportation.

#2155

 · 
vanilla

Throne rooms generate their monsters awake, but also generate all their doorways as locked.

#2151

 · 
vanilla

Put engravings outside or nearby inaccessible closets so that you know that something’s there.

#2149

 · 
vanilla

Add a “specialness” value to each special room and possibly dungeon feature, based on their approximate usefulness to the player. (For example, a swamp room is virtually useless to the player, a treasure zoo not very useful, a throne room more useful, and a temple or shop the most useful.) A level will start out with some amount of specialness available, and randomly chooses special rooms and features to add until it runs out of specialness.

#2148

 · 
vanilla

Random piles of loot can sometimes generate buried in the floor or behind walls on spaces not adjoining any walkable spaces. Nearby engravings are generated to indicate that there is something in the vicinity. Archeologists get an alignment bonus for digging out these items.

#2146

 · 
vanilla

The Mines have a higher rate of gold and gems embedded in rock than the other branches.

#2145

 · 
vanilla

Track the number of unattended altars generated in the Dungeons of Doom above, say, the Quest portal level. If zero have been generated yet, the chance of one generating on a new level in that range increases more and more until it’s a certainty on the final one.

#2144

 · 
vanilla

A very small percentage of closets have a random item generated in them, even if they aren’t sealed off.

#2140

 · 
vanilla

Instead of being completely lit or unlit, Mines levels can generate with large contiguous areas of lit and unlit floor.

#2136

 · 
vanilla

Upper Mines levels’ stairs are biased to generate relatively close to each other.

#2135

 · 
vanilla

Slightly increase the minimum depth of rolling boulder traps, which is currently 2 and can instakill a character on level 2 easily.

#2133

 · 
vanilla

Scale the probability of secret doors and secret passages in a room-and-corridor level based on its depth, so that level 1 is almost guaranteed not to contain any blocking the way, and the other early levels are also not likely for this to happen.

#2111

 · 
vanilla

If Magicbane has not yet been generated when the player reaches the Wizard goal level, Newt the wizard has a higher-than-usual chance of being given it.

#2007

 · 
vanilla

When generating a corpse during level creation, pre-age the corpse a la zombie and mummy corpses so that it’s not weirdly fresh.

#1608

 · 
vanilla

Pressure plate traps that cause all the doors of the current room to close and lock (doorways without doors could turn into iron bars or, on deep enough levels, all doors could turn into iron bars). Triggering this automatically removes the trap. Generated very rarely, and has special generation that occasionally makes it appear just inside a door to a throne room.

Use a miniature cellular automaton to determine which spaces in a swamp room will become water, rather than using a fixed checkerboard. This may not work well for tiny rooms, so enforce a minimum size constraint on what can become a swamp room if necessary.

Improvements to secret doors:

  • When the player discovers a secret door, monsters still don’t know about it unless they see it open.
  • Monsters know about some secret doors and passages in their native area, and will use them as if they were normal doors/floor. If the player sees a monster traveling through one (defined as being able to see the actual square of the door), it becomes unhidden. The proposed implementation for this is to have some monster types (the Wizard, angels, etc) have full knowledge of all secret doors everywhere, and all other monsters have a bit that represents whether they know about secret doors, which sometimes gets set when they are generated and always gets set when they see some other monster use a secret door. A cruder implementation is just to convert the secret feature into a normal one when used by a monster.
  • There are fewer or no hidden doors between the upstairs and downstairs on a Dungeons of Doom level.
  • Less of a Dungeons of Doom level’s loot appears on a direct or near-direct path between staircases, and more of the loot appears in rooms hidden behind secret doors.
  • Remove secret passages from the game; they don’t add much of relevance and it’s harder to find ways to make them relevant.

#1312

 · 
vanilla

Random closets that have secret doors (but not no door at all) can sometimes generate a random item inside, or possibly a dungeon feature like a sink. (Generating a sink would be a bad idea unless the sink glyph is changed, since it’s otherwise identical to the corridor glyph normally used for closets).

#1194

 · 
vanilla

The treasure found under randomly generated gravestones should be more treasure-like or the sort of items that get buried in graves in real life, rather than just random objects.

#1111

 · 
vanilla

Decorative objects/furniture for atmosphere: sarcophagi, (inanimate) skeletons, rubble in corners, mist, shafts of light that illuminate small areas.

#1096

 · 
vanilla

Rooms are generated dark much more often when your luck is negative.

#965

 · 
vanilla

Allow closets to generate on east/west sides of rooms.

#742

 · 
vanilla

Spiked pits and a lower percentage of pits generate with an item or two buried. When you fall into one, any buried items are automatically exposed. The most commonly generated items here are a few gold or an eroded weapon.

#741

 · 
vanilla

Chests generated in barracks should contain gold, which is the soldiers’ payroll.

#638

 · 
vanilla

Use the builtin pathfinding algorithm to trace a path between the upstairs and downstairs of each level in the Dungeons of Doom. Along this path, remove or relocate any traps, and (in early levels, perhaps up until the Oracle) convert any secret doors or passages along the path into regular ones.

#612

 · 
vanilla

Cave-like or cavernous levels, like the Mines and the Caveman home level, spawn bats fairly often.

Dart and arrow traps are much more likely to generate if the trap is next to a wall. Alternatively, when generating a dart or arrow trap, look for a wall tile in line within 3 squares that contains the launching mechanism; if no such tile exists, the trap cannot generate. The player must then untrap the wall square, or dig it out, to remove the trap.

#508

 · 
vanilla

Levels between Medusa and the Castle generate with roving contingents of the Yendorian Army, and have large open areas if they are maze levels.

#367

 · 
vanilla

Instead of having Sokoban as a branch, generate occasional Sokoban puzzles in the Dungeons proper. It must not be mandatory to complete them to pass through the level.

#357

 · 
vanilla

Minor special feature of a level “jackal kill”: a corpse of a playable race surrounded by a few jackals. If fake bones piles are added, make this a fake bones pile with “killed by a jackal” on the headstone.

#355

 · 
vanilla

In the uppermost levels of the dungeon, add (non-guaranteed) fake bones piles which contain starting equipment from some role. Gear is eroded or biased towards negative enchantment, most magical items are removed, and perhaps one or two non-starting items are added. Then the whole pile is mostly cursed as usual.

Note: This has been implemented in 3.6.1 but differently; it places random cursed items instead of selecting starting gear.

Several things relating to making the upper dungeon feel more “eroded” or exposed to the elements/other adventurers, in keeping with NetHack flavor that other people have been seeking the Amulet:

  • Falling rock traps on shallow levels come “pre-disarmed”, which is to say that they have already been used up and so should consist of a pile of rocks on the ground underneath a falling rock trap with no rocks left in it.
  • Rolling boulder traps on shallow levels generate without boulders or with out-of-line boulders.
  • Traps with ammunition can have a few pieces of that ammunition lying on the appropriate space.
  • Dilapidated armories.
  • Monsters on these levels are likely to generate with zero-charge or low-charge wands or other items.
  • Fewer items lying around.
  • Randomly destroyed walls.
  • Fake bones piles (see below).

Note that this has been partially implemented in 3.6.1 with the addition of fake bones piles that come with a pre-disarmed trap if applicable, although that was aimed less at adding ambiance and more at helping players avoid early traps.

#187

 · 
vanilla

Non-inaccessible closets have a small chance of containing a monster on level generation.

#169

 · 
vanilla

Shop generation chance increases for every level with no shop, and decreases/is reset when one is generated.

#143

 · 
vanilla

Reduce the amount of gold generated on the floor, and probably also that buried under the floor and in rock so it doesn’t incentivize the player digging out a level. This is an attempt at gold rebalance.

#110

 · 
vanilla

Silver weapons should be rarer than they currently are outside Gehennom and fairly common inside it.