A Forum Post About the Dithering in Return of the Obra Dinn

Dithering is a method (actually, several methods) of simulating more shades or colors than the hardware is capable of, by producing an array of dots that generally match the colors. One of the qualities of the classic, original Macintosh platform, which used a black-and-white monitor, was the way that it used dithering to give the impression of grayscale shading.

Nowadays most display devices are capable of, in Mac terminology, “millions of colors.” Macs are far from the only devices to have used dithering, but it’s a quality particularly distinctive to them.

There is an excellent article, here, written for developers but clear enough that many non-coders can understand it, that explains how its done, and demonstrates many styles of dithering. Interested readers may also enjoy this article, also on dithering. These pieces, all by themselves, are enough reason to make this post, but they’re not really the things that I want to draw attention to today.

The indie hit Return of the Obra Dinn, from five years ago, is notable because it’s a 3D game, but it uses black-and-white dithering, applied in real time, to do its shading as an aesthetic choice, and the effect is striking. Not just for the dithering, but because the dithering is stable; its dots don’t jump around in a randomish manner, but tends to look like an applied texture, even though it’s generated by an algorithm. You can see for yourself in this trailer:

The cool thing is (and I think it’s linked from one of the articles I presented above), the creator of Return of the Obra Dinn, Lucas Pope, wrote about dithering in a post on TIGsource while the game was in development, and he explains the experiments he ran to get the shading to work and be stable. I recommend graphics programmers to it without hesitation, and others might find it interesting to. I know I do! Have a look!

One of Lucas Pope’s dithering experiments

Forum post describing dither experiments done for Return of the Obra Dinn (TIGsource)