A thought I've had floating around for a while, that I've begun implementing for coding tonight (and will likely take me a while to get somewhere workable) is that it would be possible to implement an interesting sense system into a roguelike, both from the point of view of players sensing things and players trying to not be sensed by monsters.
Leave aside implementation for now, just think about it from a player's point of view. Let's say. for now, that there are just three relevant senses (sight, smell, hearing). More esoteric senses like being able to detect magic in the vicinity (ring of detect magic?), or detect life in the vicinity (because you're a vampire?) are obvious extensions.
So first things first, sight is pretty obvious to begin with. It might be a thing to have a state between "Can't see it, it's too dark/small/sneaking" and "Can see it perfectly" where the players knows that something is there, but don't get any more information than 'something is there'. They get a grey generic silhouette rendered where the creature would be, and can cast spells at it, attack, whatever as they would any creature. Maybe the silhouette is customised between some types of monster - it's hard to miss that a dragon looks different than a goblin, no matter how hard they are to see - and maybe the player gets a small textual description.
Depending on the thing you're hearing and how good you are at hearing things, sound can range from "There's something to hear" to "There's something to hear in roughly this direction" to "There's something to hear over here" to being basically as good as sight. This can be rendered as, respectively:
- Some kind of 'sound mark' on the player character, with textual output
- "sound waves" being drawn coming to the player from some direction
- Some kind of 'sound mark' drawn somewhere on the map
- Just the thing being drawn (maybe a washed-out, decoloured version?)
Smell ranges from "Something smells" to "Something smells and it's here", again depending on how good the creature is at smelling. "Something smells" is just a 'scent mark' drawn above the player, with description. 'smells over here' is maybe a little scent cloud drawn on the map, with description. The biggest use case here would be creatures leaving scent trails you could sense if you had enough scentiosity - because you've cast a spell to make yourself smell really well, or because you're a wolf monster, or something.
I might post some stuff regards implementation all this as I start fiddling with it. Note that any implementation is going to be assuming single-player turn-based roguelike, so some of the solutions may not be appropriate to other contexts.