What is it that makes any game of this rough kind fun? One major thing, I think:
*Having real choices that make sense and which reward/penalise you according to what you choose.*
The development of the PC in a standard RPG is the classic example. When you go up a level, you must choose which stats to improve, and perhaps which skills to acquire if there is a skill tree or similar. Your choices will determine, to some extent, the way the game plays out after that: if all your points have gone into intelligence and spell-casting, then you must accept that you won't be able to use the Sword of Bloody Decapitation that you find in a chest, and that the mind-draining megalich will harm you disproportionately. But that is OK, because these are consequences of your own choices.
Conversely, what isn't fun is when bad things happen to you *that aren't a consequence of your own choices*. Random-placed invisible traps are the classic example of this, because if you happen to walk into one it's utterly not your own fault. Usually this is a minor annoyance, but if it kills you or weakens you in the middle of a critical battle - well, that isn't fun except to the most iron of ironmen.
A good game is one that presents the player with a set of logical
rules - perhaps explicit, perhaps not - and lets the player make the choices she wants within the system that those rules describe, and then shows the player the consequences of these choices. When something bad happens while playing a good game, the player will blame herself for making a stupid choice, not the game for unfairly pulling out a random catastrophe.
So I think the way to approach the game features mentioned is in this way. Are these fair things that open up new choices for the player and reward or penalise her accordingly? If so, good. If not, can they be changed to match this ideal?
A secondary criterion is what we might call the grinding problem: sometimes it is clear what choices are the right ones, but the behaviour they entail isn't fun. I think it is less easy to determine what sort of things are fun, though.
1) Searching. If things were much easier to find, like 80-100% chance of finding the door on your first search, would it be more fun? Honestly I don't think so, it is still a hassle to walk along walls, pressing the search button every other step in hopes of finding a way forward. Maybe if progress could be slowed in other ways? A locked door and a key or lever elsewhere in the level? Maybe progress does not need to be slowed at all. Let the player dive quickly if they want, and die if not properly equipped.
Right, searching is a pain. This is problematic from the point of view of both of the issues I identified, the problem of choices and the problem of grinding. In Rogue you have
to search or you can't progress, because the stairs to the next level are frequently in a part of the dungeon that's behind a secret door. Often you find yourself in a room with no apparent exits and are forced to search to get anywhere at all. Moreover, searching is dull and awkward (alternating key presses in a way that is not only tedious but often becomes so mechanical that when you do find a door, and something nasty leaps out of it, your character responds by continuing to search for a few turns until you realise what's going on).
I think a possible solution to this would be to make only non-vital areas of the dungeon hidden behind secret doors. So, for example, a secret door might lead to a small room with some treasure in it. But a secret door would never cut off the route out of the level. That way, a player can choose to search for secret doors or not, as she sees fit. Choosing to search will yield rewards in the form of extra treasure or whatever, and choosing not to search will result in finding fewer of these things (but making faster progress), but the point is that the choice is really down to the player and is not imposed by the level design.
2) Starving. There needs to be a certain constraint in place to prevent you sitting in a quiet corner and resting back to full health after every fight. Food serves the purpose of driving you forward. Must hunt for food to survive! I agree the random fainting can get really aggravating though. What is required is a reason to keep moving that makes you want to go forward, but is not so damned annoying when you accidentally run low on food due to random chance.
I was going to say that the traditional answer of health potions is a good alternative - don't have automatic regeneration, but force the player to use a resource to heal after a battle. Then she has to choose whether to heal or not; there's no obvious answer of sitting in a corner regenerating, but you also avoid killing people through starvation. But then I saw:
You could have health regeneration only be active if the player is fed. If the player becomes hungry, the rate of HP regen is halved. If starving, 25%. When food bottoms out completely, HP regen is at zero. So a starving player doesn't die immediately, but dies gradually as his/her HP slowly stops regenerating.
I think this is a genius idea. Being well fed is important, but if you run out of food, it just means you have to be careful with HP (and perhaps resort to the health potions system) and you don't have the annoying fainting.
3) Traps. Randomly placed traps may make sense as a way to hamper an adventurer's progress in your dungeon, but I can see how they can be annoying too. Maybe the biggest complaint of all is, "why don't the monsters fall for them too?"... In Rogue Touch, they do not because the original Rogue was designed that way, and I wanted to stay true to that as much as I could. What if there was a more obvious risk-reward with traps? Say that all your treasure was found in chests, and the majority of these chests have traps armed on them? You want the loot, you need to take a chance. What if traps were found in the dungeon, but they were not so random? Maybe more obvious traps like a flamethrower in a wall that blasts anything trying to walk by (you can see the flame in the rock, giving it away) and you need to find the lever to disarm it, or otherwise avoid it. What if you could SET TRAPS yourself, and have monsters trigger them?
Traps are quite horrible really. I think confining traps to items (not just chests - you can also, of course, have poisonous potions, cursed weapons, etc.) is a good solution. The player always has the choice of whether to open or use the item; if there's a nasty trap, well, she chose to take that risk. On the other hand, confining traps to chests is still a bit unfair if all
loot is in chests. That effectively forces the player to look in chests at least some of the time. I'd have loot both in and out of chests; that way the cautious player still gets some, but has the option of opening chests when she feels brave, tough, or needy.
The idea of setting traps suggests another option, which is to make all traps character-set. I mean set by both the PC and the monsters. In Rogue, traps are utterly random. A trap of any kind might be anywhere. But what if, instead, a trap is there because a certain monster has set it
? For example, a goblin lair might have a simple spike trap set up outside it. Or a spider might have placed a deadly web trap of some kind. The monsters could be programmed to move around setting traps, or perhaps the level generator would automatically place appropriate traps near appropriate monsters. This isn't an ideal solution, since traps are still sprung in a way that doesn't reflect the choice of the player. However, they would seem less arbitrary. The trap is really part of the monster's attack rather than an independent, unfair dungeon element. Moreover, the player will know to watch out for traps if she knows the monster is nearby. Best of all, there might be clues to the presence of a monster of a particular type. E.g. bones might indicate some savage predator, daubs on the wall might indicate a goblin lair, etc. The seasoned adventurer will know to expect traps of a certain kind. In fact hints that a particular kind of monster is nearby would also remove the randomness of entering a room and finding God knows what in there, which can also feel unfair. The player can choose to go that way or not, alerted by the clues.
5) Status modifiers. Getting bit by a Rattlesnake for the 5th time, or rusting your armor down to -5 with an Aquator or rust trap does suck. But without these types of "gotchas" to make them unique every monster becomes a generic sack of hit points with teeth. Maybe a compromise, where most status modifiers are temporary and wear off on their own so you don't have to pray the random generator will give you that "Potion of Restore Strength"... Say you lose EVEN MORE strength from a rattlesnake bite, but you get better roughly 100 turns later? Or maybe you get tangled in a large spider web which hampers you movements (agility) and reduces your effective "armor class" because you can't dodge as well. After a number of turns the webbing is broken down and your agility returns to normal. Of course there would be new types of trouble to get into, but most of them would wear off on their own given enough time.
Yes, I think making these things temporary is really the way to go. Otherwise, as you say, it's just a matter of hoping that the random loot generator will favour you, and this is poor game design because, again, it's not about the choices of the player.
As a general principle, I really do think that having difficulty settings can solve a lot of these problems, or at least alleviate them, in a simple way that also gives the player more choice. For example, if you keep a classic Rogue trap system, you can just make them optional. Perhaps there could be a number of difficulty settings, each one adding an extra "feature" such as traps, stat reduction, hunger, etc. One possibility is to include these features in all of the difficulty settings, but with different levels of severity (e.g. only a few traps in Easy, lots in Hard). But I don't think that is ideal, because the aim here is to give the choice to the player. If traps (say) are still present in Easy, but there are only a few of them, it will still happen that a player will get killed unexpectedly by one when playing Easy - it just won't happen so often. When it does happen, it will be even more annoying. This is supposed to be Easy! I think that removing them entirely from the easier settings and adding them entirely in the harder ones is better. This is because then it really is up to the player whether they are included at all. At Easy, the player won't encounter them at all. No problem. At Hard, the player will encounter them, and may get annoyingly killed by them, but will still know that it was her choice to play with traps enabled. And so on for all the other features too.
This is quite apart from the fact that having difficulty levels of this kind obviously extends the game's playability by encouraging those who have beaten it on the Easy settings to try again on Hard.