So I just finished playing an old game called Gunlok. I thoroughly enjoyed it (give or take a few difficulty spikes), but there was one thing that seemed a little off about it right from the start. Eventually it clicked: Gunlok renders its 3D world using orthographic projection rather than perspective projection! This gives it a completely unique look, somehow managing to come across as a classic isometric RPG no matter how much you rotate the view.
And I started thinking: Exon is top-down. Exon is spiritually isometric even if it’s in full 3D. What if… What if I switched Exon to use an orthographic camera?
From a Certain Point of View
I don’t really understand the maths behind it, but the jist is that perspective projection is like your real eyes — looking outward from a single tiny point in a cone — whereas orthographic projection is a flat slice — a rectangular chunk of world with each pixel looking perfectly forward from a point on that rectangle.
Traditionally, you need orthographic projection for 2D games, whether side-on or isometric. Since the artwork is hand-drawn or otherwise flat, you need a flat camera to match or else it’ll all distort as you pan around. Then when you jump to full 3D, you have nice geometry that exists in space that can be seen properly from any angle and look just like your eyes expect.
Exon does actually dabble in isometric cameras already, albeit in a tiny way. This is how I render my inventory icons: by taking little orthographic screenshots during gameplay (if you’ve ever noticed a hitch the first time you opened up your inventory, yep, that’ll be it making all your icons). This is ultimately because inventory icons are square, and the squareness of the orthographic projection makes it a very convenient way to position the items such that they fit the squares properly.
But using orthographic in the full 3D world-view is something that had simply never occurred to me before. One does 3D in perspective; that’s just the way the world works. It’s how Exon has been right from the very first feasibility test, because that’s the default camera you get when you start a new 3D project in Unity.
And yet! Exon is a top-down hack ‘n’ slasher, many of whose primary influences are top-down isometric games — Nox, Baldur’s Gate and Sonic 3D. Admittedly, all of those were probably only in pre-rendered 2D because that was the tech at the time, but even so; there is a very distinctive flavour to isometric 2D art that you don’t get with a traditional perspective 3D viewport. It’s only in living with it over the 10-15 hours (spread across 2-3 weeks) of Gunlok that I’ve realised that not only is this something that might be missing from Exon, it’s something that is comparatively easy to recapture simply by changing that projection mode on the main camera.
Well, “comparatively” easily in as much as I have to rebuild all the cinematic camera tracks, because orthographic cameras don’t “zoom” — the distance between the camera and the objects on show has no bearing on how they appear, beyond clipping anything that gets too close. Zooming in the ortho world is instead changing the size of the slice you’re rendering; smaller slice for close-ups, bigger slice for wide angles.
So to test this properly, I’ve been going through a lot of my camera logic to add alternate paths for orthographic mode — converting my existing zoom settings into ortho size, setting up additional offsets so the camera doesn’t clip so much. I don’t want to make any permanent changes while I’m still unsure about whether to pursue this, but I also can’t make up my mind without a fairly comprehensive implementation so I can see how things look side-by-side.
It really does drastically change the mood. It elevates the artwork somehow, it makes the game instantly more striking. It makes objects in the world seem more clear, which is a real advantage given my penchant for tiny to-scale items. It even seems to make the fast pace of the Arena somehow more manageable.
There are problems of course. One thing I noticed immediately is that — for some reason — the rippling distortion of my water effect looks a lot stronger in orthographic mode. My shiny spheremap metal effect also wigs out in motion and will need some kind of adjustment. Since the camera is now much further away (to avoid that rectangular render slice clipping into scenery), it also destroyed my 3D audio as the listener is too far from the action.
While the water distortion can be fixed with a few tweaked numbers, the spheremap effect looks like it will need slightly deeper changes to my shaders. As for the audio listener, well, I guess I’ll just have to disconnect that from the camera and have it floating independently (which, now that I say it, sounds like a whole can of worms for cinematics, erk).
All of this means that I will have to commit to the change; I can’t sit with this mealy-mouthed half-way house forever. I have to be absolutely sure that moving to orthographic is the right thing to do and then fuckin do it.
Change is scary, and maybe I’m a bit of a fool to be so tempted by a single obscure RTS game. After all, if this was a “good” thing to do, surely more people would have tried it by now? On the other hand, maybe everyone else has been totally missing a trick for the past 20 years. Exon really has never felt better to me, and I’m nervous but also excited.
Please speak now if you think this is a really bad idea, in case I’m about to make an utterly awful mistake.
1 thought on “Blog 845: From a Certain Point of View”
I think that the screenshots with the orthographic view are more interesting looking than the normal 3D view. This game feels like a kind of throwback anyways, so resemblence to an older style isn’t exactly a bad thing