TL;DR
Use eye adaptation algorithm to make the game better visible during night.What ?
Human eye consists of receptors of two types: rods (tyčinky) and cones (čípky).Rods are responsible for brightness and are active all day, but especially useful at night.
Cones are responsible for colors and are active at day only.
Eye adaptation is process where rods become more activated and cones suppressed (day to night transition) and vice-versa.
The result is that rendering night scene is not about reducing brightness.
Instead, in computer graphics, night scenes are usually rendered with:
- desaturated colors
- hue shift towards blue
- sharper lights/shadows
I made a quick test with a screenshot (note that the final results could be made much better): vs.
Eye adaptation is usually made with a luminance-gather pass, where luminance is averaged over the whole screen, than weighted with luminance from previous frame and finally it is applied to the color buffer as a desaturation and hue shift. The weighting is asymmetric, bright-to-dark adaptation takes up to 20 minutes IRL and dark-to-bright takes 2 to 5 minutes.
In factorio, the luminance-gather pass could probably be replaced with estimation based on the number of currently active lights in current scene.