This might be the sixth time I’ve reworked my level generator. It’s incredibly complex and every time I think I’ve got it right… Well, after each rework, everything goes smoothly until I start to layer on another system — then suddenly the architecture can’t hold anymore and it’s causing more pain than gain.
Other times, yes, I’ve just been too clever for my own good and tripped over my own shoelaces. Is this one of those times? Erm, possibly…
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.
It’s amazing what you can do with only global state and one-dimensional arrays, when you really put your mind to it. What was supposed to be a quick fart in the general direction of a Warcraft project has grown into something quite incredible.
Well, incredible on the technical side. The game itself is no more or no less than a streamlined version of my standard WC3 RPG formula. You may or may not want this.
Sometimes, the development process runs away with you. One day, you just want to make a weapon based only the vague assertion that “it should be the most powerful weapon in the game”, but then you have the bigger problem of finding somewhere to put it.
Then, after a while, you come up with the answer… And it’s terrifying.
I have always been interested in procedural generation of game content, but had always been too scared of the maths to ever try it.
Then, with the dawn of Project Y4 (and the desire to shoehorn every trick in the damn book into a single Warcraft map), I finally indulged my desire to produce pseudo-random content and started work on a procedural maze mini-game.
After finishing that (or at least, the terrain production part of it), I maintained my interest in some of the procedural generation resources I had come across and looked a little further…
I’ve always wanted to get into procedural content generation. So I’ve decided to attempt to implement it in Project Y4: the node-hacking minigame will require you to navigate a generated maze, possibly dealing with obstacles or gathering items…