I'm not sure if this is an efficient way to attempt the problem, but I'd go with setting the player's sight accordingly, then create an "eye" mob to follow the player can compare both oviews, in order to gain the "black area".
Create and destroy an image with ~125 alpha for every turf in the list upon movement.
This system relies on several assumptions, so it might not be plug and play.
Create and destroy an image with ~125 alpha for every turf in the list upon movement.
This system relies on several assumptions, so it might not be plug and play.