The wonderful world of Unity editor tools is one of the most complex and irritating worlds I’ve ever had the pleasure to explore. Alas, it is one that I have to explore because I want to make it very easy to build levels for Exon. I want it to be as easy as farting out Warcraft III maps was, back in the day. Once I’ve built the engine and all the relevant bits, I want to shut Visual Studio down and never write another line of code for the rest of my life.
To get even close to that ideal, I have to go through a whole WORLD of pain — and the realisation that maybe, just maybe, one bloke in his bedroom can’t hold a candle to one of the greatest engineering marvels of the videogame world. Whatever happens here, nobody will be building the next DotA inside Exon.
If you’ve been following my game development activities for any length of time, you’ll probably have seen me attempt to create a level building workflow about… four times. I started with heightmaps and static meshes, but bare meshes aren’t particularly comfortable to work with and Unity’s heightmap is, err, too high-poly. I tried to roll my own voxel terrain editor, but that was too complex and janky and didn’t really tick my boxes after all.
I had a stab at procedural generation quite a long time ago now, which created levels based on a 2D grid of tiles. I ported all that to Unity more recently, and it broadly worked but I ran into some snags, so I gave up on it. But, even more recently, I finally came up with an answer to those snags. This time — this time at last — I reckon I’ve got a sustainable answer.
Now I’ve got some kind of actual gameplay mechanics in my game, which might offer some kind of challenge and interest, it’s high time I started to make proper levels in which to exercise them. Not, you know, some cuboids floating in an endless blue void.
Needless to say, nothing is ever as easy as it seems.