Spoken like a true philospher. Lighten up. ;)
In that case, I am glad to meet another one. :)
Fortunately a standard FOV algorithm is all you need to make static light sources dynamic.
I recently think of roguelike that would be called Assassin. It would have raher new or rare features: dynamic lighting system, advanced stealth (cover and camuflage) and on sound/noise system (part of stealth), and directed field of vision (180 degrees). I already thought about mechanics in detailed way and it would make very big post to explained everything, and even bigger if I explain detailed mechanics/algorithms, so I will try just point out few things generaly to make it short.
Character could move in three modes: srtaight, stalking and prone. Character walking speed would corespond to these. Character could also run, but that would be useful in certain situatons since it would be least stealthy mode (noise) and character would become tired faster. Walking would be most optimal for exploration/ and stealthy travel (until you spot something) and also would not require much effort (tire character). Stalking would be as silent as moving prone. Slower than walking, but much more silent and it would also make character smaller, less visible, and allows to hide behind lower covers (for example stalking behind some crate would cover character, while standing he could be partly visible). Stalking would tire character also quite fast. Prone mode would be as silent as stalking, but much slower. It would be useful to hide behind much smaller things, where stalking/crouching steel makes you partialy visible. Height of cover/character/monster would be represented by its brightness. Very bright things, also marked in capital letters would mean it is quite high, while darker are lower (so character's brightness would change together while he is walking/crouching/ducking). Pallete would have two colors with many grades. One would be used for enviroment to reprsent light (dynamic lighting system) the other for objects/monsters (to represent how high things are). With one button player could change display to show everything in light mode if he needs to see how visible things are (then everything would be shaded in color of light to represent how much they are affected by it). There could be also 1 or 2 colors reserved for info screen. Generaly, if monster is some distant from object (cover) then area behind the objects offer some cover. The higher the monster is, and the lower the object is, makes space behind object lose cover gradualy much quicker. If the monster is lower than object, area blocked by object and behind it would have full cover offered by the object, and could even rise further from the object. This would all work with height of character (so what mode he is in). It is not very clear explanation so I'll show example of what I mean.
# -this is object and has height of 6
@ -character stalking, height of 5
M -big monster, height of 9
Situation looks like this:
@.....#...MNumbers show cover value of the area versus the monster
@44556#000M (Character[5] is visible partialy, monster has chance to notice character, now light plays role and monsters perception, while sound is factor all the time. It shows more or less how it would work)
If monster was lower[5] it could look like this:
@77766#000m (Character[5] not visible. If he walks straight[8] he again could be noticed, and more likely -heard)
Beside that character would have directed field of view (180 degree, assassin is quite aware) which could rotate in 8 directions normally. Character would rotate field of view automatically in moving direction, or while holding key(shift) he could move keeping current view direction. Single shift tap followed with direction would allow to rotate vision without moving.
Monster would have their ruts and character could observe them for a while to see patern in moving/patroling. They could also make unexpected movements, especially if alerted. They would also have their looking direction, which would determine if they can see character at all atm. This could be represented by - with color and shade of overlapped tile (to display if there is object at the place, or free space), pointing away from monster: like this
-M looking left, M- looking right
M
\ looking south/east, etc.
Visibility of character would be determined by his height and by light intensity of the tile he is in. However, background cover would also be important. For example if character is in dark space but there is light source/brighter wall behind him (in straight line from a monster) then, instead of current darkness of a tile character is in, the light value of the wall/brightest tile behind character would be used (whichever is brighter) because monster could see outiline of the character clearly. So for stealth player would have to take the account current cover and background cover.
Sound factor would play important role. This could be represented by radar:
\ | /
- * -
/ | \
If character hear steps from some direction then it would appear in radar, and brightness would represent how loud/close they are. If there are more steps, they would also appear (up to three -more than that sound is too mixed to distinguish) in order from loudest to most quiet/distant (radiating from the center on of the radar), like this:
*
*
\ | /
- * - *
/ | \
Two step sounds from the north, one form the east. These would be acompanied be real sounds(samples/waves) with loudness coresponding to radar.
Brightness of star in the middle would show loudness of your own steps (which could also be acompanied with sample/wave so you can actually hear how silent you are, and if you misstep you will notice that without looking at the radar). If you hear some heavy steps with clining of metal then it could mean some heavy armored person/guard is in the area, and thatcould be represented by inverted star (beside wave).
Sound in dungeon actually echoes from walls. So if you are inside room with just one door in the north wall, you would hear all sounds coming from the north. Similary if you stand in corridor you would hear sounds coming from two alternate direction. This can be easily done by taking straight possible walking line to the source of sound: direction on radar would corespond to direction of last tile of the line when it is touching you (of course the line would not be visible to a player because character can't see the movement of the air/sound). Like this.
###########
M-----\....
######|####
#.....|...#
#.....|...#
#.....@...#
#.........#
###########
Hear sound comes from the north.
###########
M-----\....
######|####
#......\..#
#.......\.#
#........@#
#.........#
###########
Here sound comes from north-west.
If you hear runing steps, it could appear with diferent sign on radar (and runing steps sample/wave), and would generaly be louder.
As assassin, you take adventage of stealth. For example. If you manage to stalk behind ogre, you have your chance (backstab) but you need to stand straight to reach its neck (heart is to deep to reach from behind..8/ ). Generally, there would be different ways for different monsters. You would have to monitor two things closely: health, and stamina. Health because it would be hard to heal in this game, stamina because it greatly reduces you combat/stalking/runing effectivness. You could have easier time slaying one ot two monsters, but if more appears you would be already tired and that could be dangerous. You would also run slower. Stalking too long would also tire you up too much which could be dangerous in case of unsuccesful ambush. So you would have to find someplaces ocassionaly and rest a bit after some events. When tired you could hear your heavy breath every few turns, becoming louder, faster and appearing more often if you get more and more tired. This at some point could also be acompanied with sample/wave of you double heart beat every step (PUM-pum), which would become louder and Pup-pum faster the more tired/wounded you are.
If monsters notice something about you/hear something they may be alerted a little and they will go to investigate. If they become aware of you (see clearly/combat) they become very alerted and tend to run and shout things when they see other of their kind (sample/wave), and the other becomes alerted similary, and that could spread (so it sometimes would be better to take out alerted monster instead running). Alertness level of a monster with cool down slowly with time, if they do not notice anything that could rise it again. Slowly they would return to their normal actions. If you run from monster it would go shortest path to the tile it last saw you, than would go randomly in direction that was not in his vision when you disappeared.
Generally dynamic light, sounds of steps, monster mumbling and shouting (ununderstandable), breath, heartbeat and your own steps could create unique atmosphere that you could hear and see, if made wisely. More likely if you add tactical play of stealth and awarness (watching and knowing what monsters do), and quick and possibly spectacular combat system.
Character would stalk behind covers, peek and watch others, take right moment to go to other place and close up the target, seeking dark places and avoiding the light, while being aware of steps coming from some other direction, and looking here and there ocasionly seeking stationary threat, etc.
Assassin would also heavily depent on whole sort of proffesion gadgets, ranging from simple stone to distract others, to blowtubes with poisoned needles, picklock tools, flashbombs to to make monsters fight blind for a moment or to help you run, things to take out light, alchemy stuff etc. Many ideas can go here.
I can't write this actually, and was thinking maybe of someone who would like to co-op if is interested to make such game together. I used to write on different computers than PC so I could present algorithms, more or less.
Game background and outlook is completely different, open story.
Anyway, I'm interested in anyones creative suggestions and what you think.
EDIT:
I forgot some things. Main one is:
The way of stalking.
When stalking animals in our world (so, creatures in roguelike) you have to be aware of few things. First, animals rather don't recognize your look, instead they notice movement. So, when stalking something it suddenly looks in your direction and if you immediately freeze then it has small chance to notice you because you will appear just as part of landscape. Any movement however will attract animals attention and it will focus on you until it will figure out what you are, which generally means it will flee. If you wait until animal looks away from you then you may continue stalking and repeat this procedure. Even if you freeze but your shape has some unnatural color it may also raise attention because you will appear as some strange colored object in the landscape.. Of course senses and ability to recognize vary per species. In dungeon case it works similar. When ogre looks in your direction and you freeze, you may appear just as one of many shadow and will not get any attention. However if you continue moving then this will more likely be noticed by ogre and it will come to investigate.
In this game it would work the same way. If you stalk monster and it looks in your direction , you better stop moving and wait until it looks away. While remaining motionless is rather easy while standing or being prone, it requires strength and skill to freeze for longer time in stalking position. After time, being in some weird position that you were forced to freeze, may make you shift to one side or cause some uncontrolled movement of tensed muscles and this slight thing may catch attention of the observer. Your camouflage also would be important, so you would not attract attention as some strange looking object inside dungeon rooms.
Quietness, speed of stalking and ability to stay motionless would be represented by Stalking skill. Time in which you can remain motionless in stalking position and stamina would be represented by Stamina/Fitness skill.
Some others problems worth to mention:
If there is monster looking in one direction and there is bigger monster directly behind him looking into direction in which smaller is, like this:
#####
.Og-.
#####
(goblin looking east, and ogre also looking east, problem is with displaying direction ogre is looking)
then it could be represented by inverting tile with small monster. It would retain its color, but background color would have color and shade of the light in this tile (just as if suddenly area under the goblin where lightened up by the light coming from ogre eyes.. lol:)
In case when monster is facing wall, I think there is no need to mark it because monster is not looking anywhere else, like this:
#####
..O..
.....
(whatever he is doing..ehm)
That's all what I recall for now.