NetHack 4 homepage | NetHack 4 blog | ATOM feed
Tags: nethack roguelike balance design | Wed Jul 5 16:11:08 UTC 2023 | Written by Alex Smith
As a roguelike developer, it's easy to get out of touch with the balance and strategy of your game; much of the time spent developing is bogged down in bugfixes and interface improvements, rather than playing the game, so it can be easy to lose track of how time actually plays. This means that the balance of a game can sort-of slip away over time, either because a change had unintended effects that weren't immediately recognised, or because a developer is balancing against how the game used to play when they played it more actively, or against how they expected the game to be played, rather against how the game actually plays in the current build.
Last month, I took part in the Junethack tournament, which enables people to compete across a number of different versions and variants of NetHack. I ascended a total of five variants and versions, more than any other player:
NetHack 3.4.3, which was the most recent version of NetHack for a long time (using a community-written windowport which provides an interface quite similar to NetHack4's);
NetHack 3.6.7, the currently released version from nethack.org (using the curses windowport);
the current version from the NetHack DevTeam's repository, which is expected to eventually become NetHack 3.7 (also using the curses windowport));
the current beta of NetHack4;
and the last released version of AceHack, one of NetHack4's predecessors. (I abandoned development on AceHack in 2012 in favour of NetHack4, which was created by merging AceHack and NitroHack into a single variant, intended to be a successor to both.)
Historically, I have steered clear of major balance changes in AceHack and NetHack4 because I think there's something of a history of variant developers making overly large balance changes that aren't fully thought through and making the game worse as a consequence, so for those variants, I wanted to focus primarily on the interface and keep the balance close to 3.4.3. However, I am also a member of the NetHack DevTeam that develops versions 3.6.x and 3.7, and that reasoning doesn't apply there; those versions have already had extensive balance changes.
As such, besides my main goals for the tournament (which were having fun and
winning its Diversity Ascender category, both of which I achieved), I was also
interested in seeing what the balance of NetHack 3.6.x and 3.7 were like
nowadays, in order to gain information about what sort of balance-affecting
changes might be helpful to make the game more fun. The list of versions and
variants I chose were all pretty similar in terms of interface (although I did
get caught out on several occasions by, e.g., AceHack's more primitive key
parser meaning that a
# prefix is needed for command repeat, which interfered
with my muscle memory when switching between it and the other games I played),
so the differences were primarily in game balance. (By "balance" here, I'm
including both differences in difficulty, i.e. things that reduce or increase
the chance that a given player will win; and differences that impact the amount
of effort or fun the player will have when making a serious attempt to win the
game, e.g. if the optimal strategy is very tedious or repetitive, it can make
the game worse even if the resulting win rate is a desirable one.)
This blog post is going to contain both the results of my playtesting, and some argument as to why changes are needed in various parts of the game (using the playtesting results as evidence). It is worth noting that a good general rule for game development is "players are generally very good at noting problems with the game, but much worse at coming up with viable solutions", and despite developing the games, I'm basically in the role of the player for this blog post; not only is it inspired directly by the results of playing the game, my NetHack-related development is primarily working on interface and internals, so I'm not particularly versed in the reasoning behind the game's various balance decisions. As such, it's quite probable that I'll identify real balance issues, but for my intended solution to them to nonetheless make the game worse.
(I should also note that I'm a Valkyrie main, and completed all these games playing as a Valkyrie. I don't think this will have too much impact on the results – much of what I say here is true also for other roles, and I checked with a Wizard after the tournament whether these conclusions would be true for non-melee roles as well, discovering that they were pretty much the same – but it's possible that some bias will have crept in because my experience is just one player's experience rather than the experience of the entire player base.)
Ascending five games in a short period of time gave me a good idea of how long various parts of the game take in terms of turncount, for a player who is primarily aiming just to win (rather than to improve their character beyond the point necessary to win, as some players choose to do). In particular, it seems as though the game can be approximately divided into three roughly equal segments, in terms of turns spent (which, over timescales this large, correlates fairly well with realtime spent by the player):
This section is going to talk about the first of these segments, before the Mines and Sokoban are completed (and/or the player decides to move on from them without fully completing them; I often choose to skip the lower Mines and/or the Sokoban zoo, as in some cases the reward isn't worth the risk).
Gameplay in the first third of the game is (in all the variants and versions I played) a sort of balancing act in which the player is trying to gather resources in the various accessible branches (Mines, Sokoban, and upper Dungeons) without going into an area that's beyond their current resources. This part of the game generally works really well (and is considered by most players to be the best part of NetHack) because each branch has something that the others are lacking. The Mines is dangerous in terms of combat, and is a poor source of food unless you're fighting almost constantly (which is difficult whether or not the Mines is peaceful, for a different reason in each case), but gives access to a guaranteed altar for B/C/U testing and is the easiest place to find a pick-axe. The Dungeons generally has the most shops and is the best source of scrolls and potions; it's also the best place to get gold (in all the versions and variants I played; 3.6 and 3.7 generate less gold but doesn't change the relative values of the branches). Sokoban gives you wands, rings and food. As such, the game generally involves going back and forth between the Mines and Dungeons, scrambling to identify items early on and build up a reasonable offence and defence, and then trying to reach Sokoban depth before you run out of food. There's nothing wrong with that sort of gameplay as long as there is actually some danger in going back and forth between the branches, and some reasonable experience to get along the way.
One notable balance problem, however, is that the back-and-forth between the Mines and Dungeons continues beyond the point at which there's any actual challenge in it. If no altars generate in the main dungeon – a situation which is fairly common – then whenever the player needs an item's B/C/U status formally identified, the least expensive way is generally to travel possibly tens of levels back to Minetown and its altar, which is interesting tactically if the combat encounters along the way are interesting to fight and interesting strategically if the encounters sap resources, but which isn't much fun if the encounters are all trivial and getting there is only a matter of how much tedium you're willing to sink into it. (Less common than "no altar outside Minetown" is "no store that buys a given item type outside Minetown", which means that the same sort of backtracking is helpful to identify which price band an item is in; in many cases this is the first step towards identifying it.) My conclusion is that it would be somewhat helpful if the character would be given guaranteed access to Minetown-level resources without backtracking once (but only once!) they reached the point in the game at which backtracking to Minetown ceases to be interesting. (There are a few possible ways to implement this; either some sort of shortcut to Minetown from the main dungeon could become available, which would automatically provide the same resources that Minetown does; or else the resources could be replicated within the main dungeon, at a sufficient depth that a character who could reaching them would likely have no trouble getting to Minetown.)
This balance problem is, surprisingly, somewhat lessened in NetHack4 and AceHack compared to NetHack 3.4.3, despite their balance being very similar, and the reason why is something of an interesting story. In NetHack 3.4.3, it can be somewhat tedious interface-wise to B/C/U identify items within a container using an altar; both NetHack and AceHack (thus NetHack4) have since fixed this problem, but they chose different fixes. NetHack's fix is to make it easy to select the subset of items that have just been picked up from an altar: so as long as you don't mix items from inside and outside the container during the identification process, it's easy to put the items you identified back into the container once you're done. AceHack, however, changed the game mechanics to bypass the user interface problem altogether: in AceHack, you can look inside a container as you drop it onto an altar, and see the B/C/U status of the items inside directly, which for most players is a nice quality-of-life improvement that doesn't directly impact the balnace of the game.
However, there is an exploit in NetHack 3.4.3 (that has not been fixed in 3.6 or 3.7). If you have a stack of 2 or more items, what you can do is split the stack and drop only part of the stack on an altar. Then you formally know whether or not the item you dropped is blessed or cursed, which means that you informally know whether the rest of the stack it came from is blessed or cursed. If you see future items of the same type, their B/C/U status can then be identified by seeing whether the newly obtained items stack with the informally identified stack. This exploit was at one time very tedious to pull off in AceHack because the container-on-altar behaviour made it too easy to accidentally formally identify the entire stack, rather than leaving part of it unidentified.
As such, AceHack (and thus NetHack4) changed the stacking mechanics to effectively give players the effects of the exploit "for free": items would stack with each other even if their formal B/C/U-identification statuses were different. This effectively creates a mechanic in which "if you've identified it once, you can identify it again" – and that mechanic turned out to make the game play much better, because it cuts down on one major source of backtracking. When playing without this change, it was not uncommon for me to backtrack to the Mines merely to change the formal identification status of something I already knew the identity of by other means! (The primary reason to do this is to cause items to stack, either to save on inventory slots, or more commonly so that the entire stack can be, e.g., blessed with a single potion of holy water or alchemized or diluted with a single dip.)
I have been seriously considering implementing a change that goes even further
than this: allowing various other properties of items to be identified by
comparison. It is already possible (and has been for ages) to see whether two
items have the same base type or not using the
Cn command; if the
command affects both items, they have the same base type, if they don't, the
base types must be different. (Of course, in many cases the items look
different, e.g. "an orange potion" versus "a blue potion", but this works even
in the case where the items look the same, e.g. "a gray stone" or "a lamp".) If
the character can compare items to see whether they look the same or not, it
doesn't seem unreasonable for the character to compare two items to see whether
they have the same B/C/U status (like AceHack and its successors do for
stackable items only), and I think it would even be an improvement for the
character to be able to compare items to see whether they have the same
enchantment. The idea would be that if you have two items in open inventory
(and possibly also one item in open inventory and one on the ground?), and the
two items are the same in terms of base type, B/C/U, and enchantment, each would
be identified with all information that's known about the other (probably with a
message along the lines of "You identify this item by comparing it to another
Unlike how AceHack and NetHack4 currently function, I think it would be good for the game's balance to do this even when the items don't stack with each other (which primarily matters for weapons and armor). The primary reason is that it would increase the incentive for players to try to look for good weapons and armor in the early game by reducing the resources required to do so, and maybe take advantage of chance finds (whereas in the current versions, players tend to find a good item – which might be an artifact with a guaranteed source, or something in their starting inventory – and stick with it all game). It might even make it worth using scrolls of identify on weapons; this is a waste in current NetHack, but might be less wasteful on a weapon that has already been comparison-IDed as not being uncursed +0.
(Some discussion with other NetHack players has also indicated that this change would be extremely popular: after floating the idea on IRC, I received an unusually enthusiastic response.)
In roguelikes, combat encounters fall into a few different categories: encounters that are trivial to win; encounters that need skill to win; encounters that need consumables to win; encounters that cannot be won, but can be postponed; encounters that cannot even be escaped and inevitably kill you. (I've been meaning to write an article about this for years now, but never got around to it.) Due to the existence of bump-attacking (i.e. "press the direction key towards a monster to attack it"), encounters in the first category don't really detract from the game, but they don't add to it either; in order to keep the game tactically interesting, it's best for there to be a number of encounters in the second and third categories.
NetHack 3.6 has somewhat increased the difficulty of the early game, by fixing a bug that caused monsters in Sokoban to be weaker than intended, and removing some exploits that could be used to trivialise fights that would otherwise be difficult; for valkyries, 3.7 increases it further (by removing a guaranteed source of a good weapon early). This has had the effect of increasing the number of encounters that need the use of consumables to win, and up to a point, this is a good thing; it makes the early game more enjoyable early on and makes you think more when playing, which are all desirable properties.
There is a problem, here, though, and it's based on how many of those consumables the player actually gets. In NetHack 3.4.3, and AceHack and NetHack4 which are balanced similarly, there are not enough consumables generating in the early game to deal with all the "more difficult" early combat encounters that way. As such, the games are primarily about scrambling to get good equipment and intrinsics early on, in order to reduce the number of encounters that you need to spend your consumables on. This is balanced in a way, although it tends to render the game fairly easy once you actually have the equipment you need, because then you get lots more of the boring bump-attack encounters and fewer of the "which consumable should I use?" encounters.
In NetHack 3.6 and particularly 3.7, this sort of scramble-for-equipment becomes more difficult, and in a way that's a good thing; it increases the number of interesting encounters and makes a wider variety of items worth carrying. The problem is that the range of solutions available to those encounters has not expanded, and in fact has contracted a little (one common solution is to use charges from the wands in Sokoban, but the 3.6 bugfix to level difficulty in Sokoban has effectively pushed those wands "deeper" and made them harder to reach, in that they may now be after the difficult encounters rather than before).
As such, there's a balance issue in 3.6 and 3.7 not directly because the encounters are more difficult, but because not enough consumables are generating early on that might be used to solve them. This is especially an issue because most items in NetHack are less usable in the early game than the late game; the fact that items start out unidentified means that your first copy of each consumable normally gets used up trying to identify it rather than in combat; and many items are more effective when blessed (or for potions, cursed), but the player doesn't have the resources to do that early on. Item destruction mechanics make it unwise to carry potions in open inventory, where they can get destroyed by fire or cold attacks and cause those attacks to do additional damage to you, and an early-game character doesn't have the resources to make doing so safe; this means that they won't be quickly usable in an emergency. (Scrolls have the same problem to a lesser extent.) It's worth noting that winter wolf cubs, which are a major threat that encourage stashing or bagging potions, start appearing at difficulty 7, which is around the point at which escape item usage is heaviest and most necessary; fire ants can appear even earlier at difficulty 6, and many characters have not by that point found a reliable way to kill them fast enough to avoid catching fire (especially given the magic cancellation nerfs, which are generally a great addition to the game but hurt in this one specific scenario).
Wands have none of these problems (they're mostly immune to destruction early on because few early monsters have item-destroying shock attacks, and the important escape wands can be easily identified using one charge rather than wasting the entire item). But not enough wands generate early on to handle the increased difficulty, and the issues with scrolls and potions mean that they can't handle the gap. (It is still possible to ascend reliably via performing a large amount of grinding in the early game, but this is somewhat tedious and doesn't improve the game much.)
As explained later, the whole potion item class is in trouble (and has been for many versions of NetHack – this isn't a new problem) and needs some serious buffs to balance the game. But something unique to the early game is that, in the early game, escape items other than wands need to be more common and more usable: safer to carry, easier and less wasteful to identify in time, and perhaps even more impactful.
One thought that I've had along these lines is that maybe there should be items that are easily obtainable in the early game that make potions and scrolls easier to use in emergencies, but which aren't a likely choice for the late game due to slot competition. For example, imagine a cloak or body armour with bad AC and MC stats that protects items from cold and fire damage; that would be a great find early on, but probably wouldn't be a popular choice for ascension kits.
As another example of a potential improvement, imagine if the price categories for potions were rearranged so that one price band contained only potions that would likely help if quaffed in an emergency, and another contained only potions that were useful to throw at monsters in an emergency; this would make potions usable earlier in the game, and would not likely have much of an ongoing impact later in the game (it's already pretty easy to identify a potion type by wasting one potion of that type, and most of the offensive and defensive potions naturally get identified over the course of the game as monsters use them).
One final change I've been seriously considering is to make the probabilities of various items generating change over the course of the game (within a class; the probabilitiy of various item classes generating already changes over the coures of the game). For example, at present potions of healing generate primarily in Gehennom, past the point at which their effect is actually useful; it would make sense to severely boost their probability in the early game, perhaps even to the extent that they could be quantity-identified ("this potion seems to be a lot more common than the others, maybe it's healing"). This could also help to make Gehennom more interesting by reducing the probability that the player would naturally find a full ascension kit before arriving there.
In the 28 games I played in the tournament, two of them were deaths to a monster zapping me with a wand of death (in the first third, "early game", portion before Sokoban was complete). This seemed like a higher rate of deaths to a single cause than I was expecting, so I decided to investigate.
There are currently two ways a monster can gain a wand of death: either they pick one up off the ground (very rare), or they generate with one in starting inventory. The rate of generation in starting inventory is much higher than I expected: 1 in 35, for monsters that have difficulty 8 or higher and can use a weapon. Difficulty 8 isn't that high: with the 3.6 Sokoban bugfixes, monsters that difficult will appear well before Sokoban is complete. The balance problem here, therefore, is that monsters with wands of death will start appearing before there's any reason to expect the player to have a way of dealing with them.
In NetHack 3.4.3, there was a partial solution to this available, due to the Sokoban difficulty bug: an amulet of reflection blocks wands of death, and with a 50% chance to find one at the end of Sokoban, you could reasonably obtain it before the point at which wands of death became likely. However, in NetHack 3.6 and 3.7, the Sokoban amulet is beyond the point at which the wands of death have a non-negligible probability, so it doesn't protect you from them.
For characters that don't start with a solution to wands of death, therefore, beating them seems to be more reliant on luck or grinding than really seems desirable. The problem is that unlike out-of-depth and otherwise overly difficult monsters, there's frequently no way to tell that a monster is carrying a wand of death until after it's too late to do anything about it, making it a somewhat unfair/cheap death; and unlike the other infamous instadeath (poison), there's also not much you can do to go out of your way to increase the chance you have a solution to it, other than playing as a Wizard. (There are ways to find solutions luckily/randomly, e.g. finding a shield of reflection in a shop or stumbling across the bones of a Wizard, but most games don't have that sort of luck.) The optimal strategy (from the point of view of having the most fun with the game) seems to be to pretend they don't exist and not try to guard against them, and just roll up a new character if you die to them; the odds are high enough that this sort of death happens annoyingly often, but grinding on dlvl 6 or so until a reflection or magic resistance source deathdrops would take absolutely ages.
I think the fix to this has to be to provide some sort of method of knowing that a monster has a wand of death before it kills you. For example, you could add a single-use item that blocks wand of death attacks, or repurpose an existing such item; the problem is that it would have to use itself passively from main inventory, rather than being used actively. One possibility would be for mirrors in open inventory to block wands of death (and possibly other reflectable attacks), at the cost of the mirror and 2 points of luck, unless your luck is negative; another possibility would be to extend the "saving grace" mechanic so that the first unresisted wand of death attack against the player always misses (so that the player would know that they had to avoid allowing that monster in particular to line up; preventing all intelligent monsters lining up all game is too difficult and costly in escape items, but doing so for just one monster is more reasonable).
There are three classes of items which appear to be poorly balanced in current NetHack: potions, comestibles (food) and gems. These problems are not new to 3.6 and 3.7, but have not been fixed there either, and apply in all the versions and variants I was playing this Junethack.
Potions have a number of problems in NetHack 3.4.3, inherited by current NetHack, which make the entire item class somewhat difficult to use; at present, the optimal way to use potions doesn't look anything like what the developers probably intended or what unspoiled players expect, and attempting to use them in a more natural way doesn't function correctly. I have already talked about a number of issues with potions in the early game (their vulnerability to item destruction at that point in the game makes them hard to use as escape items, and you generally need to find two of the same potion to be able to use either because one is consumed to identify it). But there are a number of additional issues with potions that last throughout the whole game, not just the early game.
One of the main issues with potions is that most of them are very low-impact. For example, suppose a monster that the character can't easily handle in melee or run from is approaching along a corridor – the character needs to escape, or use a consumable attack to kill the monster faster. If the player chooses to use an attack wand for this, they have a number of viable choices: a wand of cold, fire or lightning would do 6d6 damage, which is usually going to be enough; a wand of striking does 2d12; and a wand of magic missile does 2d6, which is still stronger than a typical attack. Meanwhile, an uncursed potion of acid does 1d8; and a lit potion of oil does 4d4, but you had to spend a turn lighting it, so it's more like 2d4 per turn (and these numbers are sufficiently low that they may be worse than the character's other ranged attacks, or not better by enough to make a difference in the fight). In other words, the potions are simply just a lot less effective at handling emergency situations than the wands are.
The problem with potions being low-impact are exacerbated by the fact that potions are single-use and, compared to most consumables, very heavy. A lot of NetHack strategy comes down to deciding which items to stash, which to abandon, and which to carry around with you – and that decision generally ends up being based on "value to weight ratio". As a very clear example, a potion of enlightenment has the same effect as a wand of enlightenment; but the potion weighs 20 and can only be used once, whereas the wand weighs 7 and can be used 11-15 times. This means that the wand is somewhere around 37 times as weight-efficient as the potion is. As a consequence of this sort of thing, players have little incentive to carry potions around with them, meaning that they hardly get used. (In some cases, a potion is the best source of a particular effect, e.g. non-spellcasters who cannot plausibly cast the "detect treasure" spell have the potion of object detection as their only available source. But the low value-to-weight ratio of the potion means that such characters generally go without access to the effect at all, rather than using the potion.)
There is another problem with the low impact of most potions, caused by a potion which does have a somewhat valuable effect: the potion of holy water. Holy water is the primary way to bless arbitrary objects, and is more easily available in large quantities than the other uncursing effects, meaning that it's something that many characters will want to carry around despite the general issues with potions. This leads to a rather degenerate style of gameplay, though: because almost all potions are low-impact, and because (past the early game) most characters have a way to convert potions into holy water rather than using them for their intended effect, in practice it's usual for players to blank almost every potion they come across in order to create holy water.
Many players have experimented with a style in which they blank every unidentified potion rather than trying to identify it; I also tried this in one of my Junethack games. It ended up backfiring eventually; at one point in the late game I needed a confusion source and didn't have one (my tripe rations weren't cooperating), so I needed to grind for one. But the amount of time and effort saved in the early game, plus the survival benefit I gained from the additional holy water, ended up outweighing the time spent grinding for a source of confusion and making the ascension more likely as a whole.
It is, fortunately, not entirely bad news when it comes to potions, meaning that
there is hope that the object class can be redeemed. Potions that have a
sufficiently high impact do end up getting used in practice; the best example
here is the potion of full healing, which is powerful enough for survival on the
Astral Plane that most players will carry a few (it also tends to identify
itself over the course of the game when monsters use them, meaning that even
players who blank unidentified potions will have access to some of these). The
addition of the
paranoid_confirm:swim option has also made potions somewhat
more viable late-game: in my 3.6 game I accidentially blanked pretty much all my
potions of full healing due to stepping into water and had to go without,
whereas playing 3.7 they survived through to the endgame.
So how can potions be fixed? I made some suggestions earlier to make potions more viable in emergencies, but those won't be nearly enough by itself. One of the biggest fixes that seems required is to give potions much more powerful effects. For example, "negative/harmful" potions should have a much larger impact when thrown at monsters; a potion of acid is not going to be much use in combat unless it oneshots the typical early-game (or even mid-game) monster (a good baseline here would probably be "capable of one-shotting the typical minotaur", which would require a very large increase in damage potential) – this would need to be balanced against the danger it poses to a player quaffing it, but perhaps we could flavour it as the player abandoning the quaff once they realise the potion is acidic. Perhaps it would make sense to add new potions with effects that could be powerful in the late-game, and that might be interesting for monsters to use against the player; one idea I had is a potion of grease, which can be thrown at a monster to grease its hands and make it drop its weapon (and monsters could presumably do the same to the player), and which would also have a secondary use for greasing items.
Another, more controversial, change that might be helpful would be to increase the relative value of most potions compared to that of holy water. One very commonly suggested feature for NetHack is "empty bottles", produced after quaffing potions, which most players expect would exist based on flavour reasoning; this has been consistently rejected, most likely for balance reasons. However, it would be helpful in encouraging players to use the effects of their potions, because doing so would no longer involve paying the opportunity cost of not making holy water instead (a cost which, in practice, is too high to pay for all but the most impactful potions). This would necessarily need to be combined with a change to make holy water less powerful; the most obvious change in this direction would be to require the use of multiple potions of holy water to bless or uncurse one object (which does make some flavour sense in the case of objects that are larger than a potion is).
Food in current NetHack has a very strange balance curve. In the very early game, food is a major motivational force to keep the character moving onwards. Then, shortly after that, food ceases to be a problem for the rest of the game. (Although I tend to carry some amount of food for emergencies, I often end up not needing any of it; past the early game, enough food is available from corpses to survive with no other food source. In fact, the main food-related challenge for many characters quickly becomes "how do I become un-Satiated so that I can eat more corpses that might give relevant intrinsics?".)
Talking to other players about this, I suggested the idea of giving the player access to more food early, in exchange for generating less permafood in the late-game. The reaction to this surprised me: the consensus viewpoint was that it would be an improvement to reduce the food available later in the game without any compensation. It is rare for players to agree with a change that would make the game harder, without compensation elsewhere!
One issue with food is that it superficially looks like it's meant to limit the strategy of excessive backtracking (for stashing, running back to Minetown's altar to allow items with formally and informally known B/C/U to stack, or the like). However, in practice, it doesn't do that: the reason is that a lot of time in the early game is spent healing by waiting around for HP or Pw to replenish, and (when running through territory that is unlikely to generate dangerous monsters) this can be done while "on the move" rather than while staying in one place. So the backtracking can be done as a side effect of HP or Pw recovery, and that means that as long as the game generates enough food to allow the player to heal, it also generates enough food to allow the player to backtrack.
Balancing food is basically a case of making the nutrition clock have more
desirable impacts on the game. One change that seems potentially necessary here
is to allow players to heal HP and Pw faster while waiting than while moving;
most likely this could be done by buffing the wait command
. to increase HP
and Pw regeneration rate for the turn (this would probably also improve the game
by giving a reason to use
. rather than
s as a method of waiting – in
current NetHack, the
. command is basically redundant). It would be possible
to reduce the HP and possibly Pw regeneration rate while not waiting to
compensate (at least in the late game, where HP regeneration appears to be too
high at present; most characters, when fighting most monsters, don't actually
take any damage on average because their natural HP regeneration rate is faster
than the rate at which the monsters can damage them).
For players who are playing normally (i.e. not conduct play), it would also be desirable to prevent permafood generating as a result of random deathdrops from monsters (i.e. the only source of food rations, etc., would be from items generated along with the level). This would help to discourage grinding by preventing it being used as a method to stock up on food, and would give an advantage to exploring new areas rather than backtracking. My main concern about this change would be the impact on conduct players; vegetarians and vegans can't eat many corpses, and some aspects of the game (notably the Monk role) have been balanced around the existence of being able to grind for permafood. Still, conducts are intended to make the game more difficult, and the existence of the foodless conduct shows that permafood is not actually required, so it is possible that changing the balance in a way that makes the game more interesting for most characters won't have too much of an undesirable balance impact for vegetarians (especially due to the recent addition of the health food shop, which generally makes vegetarian play easier).
Rocks and gray stones are reasonably balanced in current NetHack, but the "main" category of gems has a somewhat serious issue: apart from a few special cases, there's no reason to use any of them. The identification game for these gems is fine, but (apart from the amethyst, which is still pretty marginal in use) the only uses for most gems are to throw them at unicorns for luck, and to sell them to shops. The problem is that both of these uses have alternatives that are much more easily accessible; luck is easy to maximise via altar-camping, and there are several ways to get large amounts of gold (my usual is to find a pick-axe and raid some vaults, but it's also possible to sell spare armor / potions / spellbooks, or later in the game, to kill shopkeepers). Meanwhile, getting the best results out of gems requires formally identifying them, which is expensive in resources even for players who know for certain what the gem is!
As a consequence, strong players who are trying to win will generally ignore randomized-appearance gems completely; they're just a distraction, something that has no impact on the win rate of the game, and messing around with them would simply just consume time for no benefit. (Although gems have an impact on score, there have historically also been better ways to grind for score, and most players seem not to value high scores very much anyway; in fact, lower-scoring ascensions are generally considered to be more impressive than higher-scoring ascensions.)
Fixing this would presumably require adding new uses for gems. It is worth noting that this is less important to fix than most of the other balance issues noted in this document: the game can function just fine without gems being relevant, and with players ignoring them, because (unlike with escape items, or the food clock, or the excessive running around in circles in the early game) they weren't obviously intended to serve a purpose in discouraging degenerate behaviour or preventing the game becoming too difficult. (One possibility would be to move to an AceHack-style scoring system in which gems are mostly irreplaceable when aiming for a high score (the scoring is split into multiple categories, with a cap for the maximum score obtainable in each, and one of the categories is primarily based on gems); but players have historically not cared about optimising score in that system, either.)
Earlier, I discussed balance issues that show up prior to the end of Sokoban. However, there are also balance issues that tend to manifest later in the game. These are primarily caused by specific overpowered items, which get their own sections below.
There is one change to the midgame that seems (based on my playtesting) like it would be a clear improvement, but not a large improvement: allowing the player to bypass the Castle, reaching the Valley of the Dead and Gehennom directly. (In other words, the Castle would become an optional branch, like Fort Ludios is.) The benefit would be that the game currently has some strategic interest in whether the player does the Quest first or the Castle first (which is one of the factors that makes the xlvl 14 barrier for attempting the Quest interesting; I'm personally in favour of the xlvl 14 requirement even though it's generally unpopular, because it adds strategic interest in finding a way to reach the level requirement). However, sometimes the player ends up stuck with nowhere to go, with neither direction looking particularly appealing. In such cases, the Valley of the Dead, and even the start of Gehennom, can make for interesting grinding spots, but often can't be reached without doing the Castle (it is possible to level teleport below the Castle and then back above, but at this stage of the game, many characters won't have the resources to do that).
Allowing the player to reach these areas before solving the Castle would therefore help the midgame flow better, and it seems very likely that almost every player would attempt the Castle anyway; the loot there is just too valuable. One way to accomplish this would be to put some downstairs on the same side of the Castle as the upstairs; however, that is likely to be undesirable because the principle of "coming up from the Valley puts you at the back of the Castle" is interesting both in terms of finding a solution to the Castle and for placing an obstacle onto the ascension run. An alternative would be to add a new dungeon branch that bypasses the Castle, rejoining the main linear path through the dungeon at the Valley. Either of these solutions would also help with the "my character is trapped between Medusa's Island and the Castle" issue (which currently can only be resolved by grinding until you find an item that lets you go forwards or backwards), in a really interesting way (the solution becomes press forwards into Gehennom pre-Castle which is something that doesn't have much of a gameplay incentive at the moment, and could well lead to interesting memories).
One other subject that should be covered in any playtesting report is the new Gehennom levels. I found that some of the new Gehennom levels were very interesting to play (with one caveat mentioned in a later section): in particular, levels where shortcuts could be made by freezing lava were interesting because it made a new resource (wands of cold) relevant (whereas in the 3.4.3 version of Gehennom, the main resources for permanently speeding up your travel are wands of digging and pick-axes). The mazes with wide floors were fine; not particularly interesting but made combat a little different. The mazes with wide walls weren't fun to play and seemed kind-of pointless; navigating those levels is generally pretty easy because they have so many fewer floor tiles, there's also not much you can do in terms of alternative strategies because digging shortcuts is expensive. Mazes made of iron bars have the potential to be interesting for some characters (they give an incentive to use controlled teleports to move around), but in my games I found them pretty unfun because my character's best solution to them was to just to spend a lot of tedious time solving them manually.
The current implementation of the scroll of enchant armor has some very weird, and mostly negative, balance effects on the game.
One problem is that there are only two really usable ways to get more than minimally enchanted armor: scrolls of enchant armor, and wishing for armor with an enchantment. Although other methods exist (such as scouring the dungeon for enchanted armor), they tend to be tedious and excessively luck-based, or to come too late in the game to matter, so players tend to stick to scrolls and wishing; this is especially relevant with body armor, because almost all characters will want dragon scale mail, which doesn't generate randomly, and thus the only way to get enchanted dragon scale mail is to use scrolls of enchant armor on it.
The reason this becomes a problem is that scrolls of enchant armor are required in large quantities in order to get up to the better armor classes. Although it is possible to ascend with a bad armor class (I have, IIRC, ascended NetHack 3.4.3 with AC 0), it is a) much more difficult and b) will become more difficult still if other balance issues in the game are fixed; in practice, most players choose to try to get the best armor they can before starting the ascension run. The easiest ways to accomplish this are to wish for a magic marker and write a lot of scrolls of enchant armor, or to polypile scrolls for them. In either case, the player is unlikely to get as many scrolls as they really want unless they play very slowly and spend a lot of time grinding (which is a playstyle that some players enjoy, but others hate; the game should probably be designed to be balanced whether or not players act like that). This means in turn that players are very reluctant to use those scrolls until they can use the blessed effect on an endgame-worthy piece of armor, because it would permanently hurt their armor class later on in the game.
As such, what normally happens is that the player's AC improves slowly, by a small amount, over the early game as the player finds better armor, with many players relying on mithril-coats + an assortment of various +0 magical armor in the non-body-armor equipment slots. There's generally a sudden improvement at some point in the early game as the player buys protection from a priest (incidentally, one of the reasons that Orctown is so unpopular among the playerbase is that it can mean that there's sometimes no opportunity to get this burst in defensive ability prior to the Valley of the Dead; the lack of opportunity affects not just the "protection racket" of buying protection at xlvl 1, but also the more normal strategy in which protection gets purchased at xlvl 8 or so).
Once the player finds a way to make holy water (which often doesn't happen until well into the midgame), they might bless and use a scroll or two of enchant armor, if they have a piece of armor that they're planning to take to endgame. Other than that, the player will generally wait until they have ascension kit items available (which normally happens precisely at the Castle, due to its wand of wishing) and then do a huge amount of armor enchantment all at once, meaning that their AC suddenly improves by 20 to 30 points after having been steady for a significant portion of the game.
The basic issue here is that NetHack's hit chance formula, using a 20-sided dice, simply isn't capable of handling AC changes of this magnitude; the hit chance suddenly drops by over 100% and breaks the formula. (In Dungeons & Dragons, which also uses a 20-sided dice to determine hit chance, this problem is solved by causing two enchantments of the same nature to not stack, but NetHack allows you to benefit from the enchantment of your armor in every slot on your body.) This also has the side effect that armor base type becomes mostly meaningless, and thus once a source of mass enchantment becomes available, players tend to favour the lightest available armor, or the armor with the most useful extrinsics, rather than the most protective armor available.
There doesn't seem to be an easy way to fully fix this problem, because any change to how AC works would have large knock-on effects. However, something that would help somewhat would be to allow AC to improve more gradually over the first two-thirds of the game, rather than encouraging players to delay their enchantments until the Castle. One possibility here would be for uncursed scrolls of enchant armor to have the same effect as blessed scrolls of enchant armor when used on +0 items; this would increase the incentive to use them earlier in the game, meaning that the strategies of "delay until the Castle" and "use the scroll immediately" would become closer to each other in value, and thus making it more of an interesting choice (as opposed to the current situation where almost all players delay). If Orctown is to remain in the game, there might also need to be a guaranteed temple elsewhere, probably somewhere around dlvl 15; otherwise, if Orctown generates, it causes an ongoing imbalance throughout the first two-thirds of the game, and then makes the Castle power spike even larger (because the Valley of the Dead, which has a guaranteed temple, is right next to it).
In one of my Junethack games, I played the entire game without levitation, as an unofficial conduct. That playstyle made the game considerably more interesting and fun, and the reason is that it meant I had no access to the ring of levitation. (The boots of levitation have a similar issue, although it isn't quite as bad as with the ring.) In another game, I accidentally allowed my ring of levitation to be destroyed, which similarly made the game more interesting (although to a lesser extent).
The problem with the ring of levitation is that, in the late game, it solves a huge number of problems on its own, making a large number of other items irrelevant because it can effectively duplicate their effects. A ring of levitation lets you do all the following:
Unlike with some other levitation sources, the ring has effectively no downside; you can just put it on when it becomes time to, e.g., cross lava, and then remove it again afterwards. For many of the problems posed by Medusa's Island, the Castle and Gehennom, you have a choice of "use a niche item" (like water walking boots or jumping boots) or "use a consumable" (like scrolls of earth or wands of cold); this is an interesting decision especially because it gives an incentive for the character to enter areas they can't easily escape from, potentially denying them the ability to backtrack to their stash and changing the nature of the gameplay. (In my levitationless game, I intentionally went through the Castle with the intention of using the water walking boots in Vlad's Tower as a way back.) The ring of levitation effectively makes all that gameplay irrelevant because you can just costlessly levitate over the problem instead.
To fix this problem, the ring will either have to be removed, or some cost introduced for using it. (The potion of levitation is entirely fine at the moment, for example, because it's single-use and thus it can't just be spammed as the solution to every terrain-related problem. With the boots, there's at least the cost of swapping armor, but this cost probably isn't high enough to make a difference.) One possibility would be to make it so that levitation sources can be invoked for levitation, with a timeout until they can be invoked again; however, this would be inconsistent with most other items (especially as non-artifacts normally can't be invoked). Perhaps the ring should be removed, and the boots of levitation should become an artifact (in the myth, the boots worn by Perseus, named talaria, were on loan from Hermes, and thus probably qualify as artifact-level)?
Conflict is an interesting property, and the ability to make monsters fight each other is useful in a number of interesting ways. Unfortunately, it also appears to be utterly overpowered in present NetHack – on the Astral Plane, wearing a ring of conflict, you tend to gain hitpoints through natural regeneration faster than you lose them from attacks. In one Junethack game, I accidentally blanked all but one of my potions of full healing; using that one potion and a prayer I reached the first altar without using conflict, but it was the wrong one. Then I resorted to putting on the ring of conflict, and completing the Astral Plane was trivial from there, with my character no longer taking significant damage. Although the gameplay of conflict is pretty fun, that level of trivialisation of what is supposed to be a difficult part of the game is clearly imbalanced, and makes the game worse because it means there's no longer a reason to find an alternative strategy for Astral. (It trivialises many other parts of the game too, but extensive amounts of creativity and preparation go into many players' Astral strategies and so it's particularly unfortunate that there's a very easy alternative solution.)
Although the game currently attempts to give a penalty for using conflict on Astral, the benefits of conflict still outweigh the drawbacks by a very large margin; the guardian angel tends to die quickly anyway, and the hostile angels that are summoned are not significantly harder than the rest of the plane (so if the player character were weak enough that they actually posed an obstacle, they would end up losing later on anyway, and thus the hostile angels don't actually do anything).
The fundamental problem here seems to be that conflict has both offensive uses (the monsters are attacking each other), and defensive uses (because the monsters are busy attacking each other, they aren't attacking you). It would need more playtesting to be sure, but my current hope is that conflict can be balanced by keeping its offensive properties (which are interesting) whilst preventing it being helpful for defence. That could be implemented by causing monsters to prioritize targets that they would attack anyway (e.g. the player) over targets that they're willing to attack only due to conflict. I'm not sure whether this would be enough to balance the item, but it'd have to be a good start.
Currently, most spoiled players will solve all the Elemental Planes in a very similar way to each other: upon arriving in the Plane, kill any immediate threats (like the Wizard of Yendor upon arriving at the Plane of Earth), then use some magical means to determine where the exit portal is. This becomes something of a repetitive play pattern because there aren't many portal detection sources, and aren't many good reasons to favour one over another.
One way in which the game gets portal detection right is the distinction between cursed and confused gold detection scrolls; cursed gold detection is sufficient to detect portals on Earth and Air, whereas you need confused gold detection (which is marginally harder to get hold of) on Fire and Water. However, this isn't a huge distinction and most characters will easily have enough sources of either.
I am not most players, however, and have been known to try to ascend on resources so low that scrolls of gold detection aren't reasonably available to my character. That turns out not to make portal detection significantly more interesting, though: in my valkyrie games, I generally do the detection with the Orb of Fate, sometimes using a wand of secret door detection (or the Bell of Opening!) on Air to save charges. That's still a fixed strategy that's basically the same every game, and doesn't have much interest in terms of preparation for the Planes.
It seems like the game would benefit from having a wider range of portal
detection methods that have different tradeoffs involved. (If the confused
effect of the scroll of gold detection were changed to do something less useful,
this would open up space for niche alternatives, as the existing scroll would
then only work on two out of four elemental planes, and for the Vibrating
Square.) In addition to increasing variety and strategic interest, there's a
second reason why this might help: none of the existing portal detection methods
are really adequate on the Plane of Water. In one of my Junethack games, I was
stuck on the Plane of Water for about 20 minutes realtime trying to find the
portal; I had marked it with the Orb of Fate, but after marking the portal,
there's not much you can do there other than randomly move around in the hope of
stumbling across it eventually, as you can't see the marking until you're in the
correct bubble). (The portal was under a corpse; it's possible that I wasn't
#terrain often enough and missed my first opportunity, but needing to
do that is an issue in its own right.) The Plane itself is almost entirely
non-threatening, with none of the monsters there posing a risk to a character
who's capable of getting through the Astral Plane (or, that matter, the Plane of
Air), so the gameplay of the Plane of Water is basically a case of huge tedium
with no real challenge. That said, making the Plane more dangerous would be a
mistake without also adding ways to make the portal faster to get to.
The inadequacy of current portal detection methods on the Plane of Water provide space for a new option. One possibility I've been seriously considering is to provide some method to summon a sleeping monster on the portal; this would be more useful than the other portal detection methods on Water (you could track the monster with telepathy on an ongoing basis), whilst being inferior on the other Planes, and I think it could be done in a way that makes flavour sense.
Ascending five games in quick succession, but in different versions/variants, gave me something of an understanding of their relative difficulties. In all the versions and variants, the primary difficulties (in terms of "things that might cause a character not to ascend") came in the early game; this is consistent with the conventional wisdom among NetHack players that the late game is much easier than the early game is.
NetHack 3.6 and 3.7 are substantially harder than NetHack 3.4.3 is; I ascended NetHack 3.4.3 on my first attempt, whereas NetHack 3.7 took a lot of tries to get going (and the 3.7 game I ascended had huge amounts of luck; my character found an early wand of wishing, got more wishing luck over the course of the game, and ended up using 15 wishes despite not really doing any grinding or farming). The major cause of the increased difficulty appears to have been the bugfix to the way difficulty scales in Sokoban; in NetHack 3.4.3, you're effectively getting lots of wands/rings/comestibles very early in the game, whereas in NetHack 3.6 onwards, those items have been effectively pushed to a much later point, as they're guarded by considerably more powerful monsters. This is particularly relevant because wands are the best method in current NetHack of dealing with encounters that are too powerful for the character to defeat without using consumables. The change in 3.7 to start valkyries with a spear rather than a long sword also substantially increases the difficulty of that role.
That said, I don't think these changes were bad for the game; having more difficulty early increases the number of encounters where you have to use consumables, or improvise unusual strategies, to survive, and those encounters are fun to overcome! Likewise, starting with an inferior weapon gives valkyries more goals to accomplish in the early game and increases game variety. The primary issue is that the difficult encounters that need escape items to overcome now have a tendency to happen before enough of those escape items are actually available, especially because scrolls and potions are mostly useless for the purpose in current NetHack.
The issues with the early game are likely fixable by making potions in particular, and to some extent also scrolls, more powerful (bigger impact when used) and more usable (e.g. easier to identify). If that's insufficient to balance the game, it might also be necessary to make more generate.
The mid- and late game are not particularly difficult at present, especially compared to how hard the early game is. There are still balance issues there, but they mostly relate to cases where the optimal strategy is uninteresting or trivialises part of the game, as opposed to situations in which the game is too difficult.
I'm hoping to address some of these balance problems in NetHack 3.7, either before release or in a point release. Some of the fixes may be controversial, so I wrote this article partially to illustrate what I think the current balance issues are, and partially in the hope of using it as a source to explain to people why I think the fixes are necessary / will be good for the game. I would be interested in feedback from people (both agreement and disagreement), both in terms of whether the problems I've highlighted exist / are real problems, and also in terms of whether my suggested fixes would be good for the game. (It's far from unusual to correctly identify a problem, but to suggest a fix that wouldn't actually help or would cause larger problems; or perhaps I've missed a simple way to fix something that looks like a much bigger problem.)