Sometimes I spend a surprising amount of time on something most players will probably never consciously notice. My latest example is a small light in the eyes of characters.

img.png

At first sight, this sounds simple: add a white highlight to the eye. But if I make it a fixed white dot, it looks dead. If I rely on a normal specular highlight, it often does not appear at all because the specular would appear outside the visible part of the eye sphere.

So I started thinking about an imaginary eyeball. I can make the shader calculate where the ideal highlight would appear on such a sphere, then project that point back onto the actual visible patch of the eye, and keep it inside its shape.

The shader selects the particular eye, takes the view direction and the main light direction, finds the ideal specular direction, and maps it non-linearly onto the visible eye area.

img.png

This is the kind of small detail where I can easily say: this is not worth the time. And it probably is not. Nobody will buy the game because of it, nobody will mention it in a review, and maybe nobody will consciously notice it at all. But I do not do this kind of thing because it makes business sense.

The result is not a realistic eye shader. The goal is a small stylized detail that behaves just convincingly enough to make the character feel a bit more alive, while still fitting the visual style of the game.

Maybe it is a little quixotic. But these small, impractical detours are so interesting and bring me so much enjoyment. And hopefully, someone will notice.