Post

697

The game I am working on uses an orthographic perspective… orthographic perspective is sort of an oxymoron. Maybe orthographic projection. Orthographic camera? It tries to look like an old game, and so, it uses old game graphics limitations.

Except, of course, it doesn’t. I am making a fully 3D game using all sorts of modern shader trickery. Everything on screen is made of texture mapped polygons with all sorts of digital clamps applied to make it look like it is a 2D pixel art game.

Why?

Why not.

We have the whole world of possibilities and aesthetics available to us. This is the one I wanted to make.

In trying to get the orthographic perspective right I have worked through a lot of options and experimental processes. My current setup has me running standard 3D models though a geometry nodes process in Blender to have them come out at the proper skewed angle. It has worked well.

This weekend I went to an indie work event and a five minute conversation with another developer made me realize that I should go back to an earlier process that I had thought about and abandoned as too fiddly or costly or beyond my abilities at the time. Coming back to it, with my current level of understanding of shaders, it turns out it was actually pretty simple.

All of my meshes are pretty low vertex count affairs and they all need fragment shaders run on them already to make them look like pixel art so what’s a few more nanoseconds of processing to have the meshes skewed to an orthographic angle in the shader.

I wrote, implemented, and tested the shader in a couple of hours. It would have been even faster if I hadn’t spent a bunch of time messing around with different ways to test it out.

This does mean that I need to reorganize some of my game files, but it will mean reorganizing them to make them simpler, not more complex.

Turns out, I should go talk with other devs more often. It’s so easy to get stuck in a groove when you already have processes and tooling set up. Sometimes other avenues are not as far away as they appear.

This post is licensed under CC BY 4.0 by the author.