Oh, that thing where you just get out of the way of writing regularly, and then it gets harder to go back to it the longer the hiatus lasts.
I might have decided to replay Dragon Age: Origins and its expansion pack and then moved on to Divinity: Original Sin: Enhanced Edition, which amounted to… well, rather a lot of time not spent working on my own game, I’ll tell you that. I didn’t have much of note to say about either, so I just didn’t say anything.
Now, though, after that holiday, it’s finally time to tackle a problem that’s been lurking at the heart of my engine for a long time now: its use of animations.
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…
The player Neutral Passive in Warcraft III is a special bonus player. As the name suggests, units owned by Neutral Passive are neither allies nor enemies to any other player; they offer their services equally to whomever happens to be nearby. As befits my tendancy to reimplement Warcraft III (to eventually allow for similarly structured RPG scenarios), I am now working on adding my own Neutral Passive characters.
Needless to say, due to many holes I’ve dug myself over the last three years of developing this game, this is not so easy. The key stumper at the moment is that clicking a neutral unit should not trigger the player to attack them. Instead, it should trigger a friendly reaction. When is an attack not an attack? When it’s a frob.
Oh, it’s been a while, hasn’t it? I set myself 36 features to build in 3 weeks at the end of last year/start of this one and I have completely failed. Ah well, no plan of battle survives contact with the enemy after all. What’s important is that there has been progress at all… right?
Recently, I’ve been focusing on non-unit level hazards: laser tripwires, spike pits…
I took a week off work to (surprise!) work on my game. Things did not go entirely to plan, as some time during some “routine” fiddling on Sunday or Monday it started crashing. Not crashing as in throwing exceptions from my own code, I mean crashing as in the entire Unity editor bombing out.
I unwound all the potential causes and dug around the internet for answers but basically came up with nothing. It’s something to do with turning colliders on and off and this getting PhysX into a tizzy underneath it all, but I’ve been turning colliders on and off for years (literally years) without a single complaint, let alone an engine-melting complaint.
I found a bug report to Unity which seems to cover it, but that fix won’t be released until June in the next major version. And what if this doesn’t fix my issue, and only affects one with a similar error message? Erk.
So many features, so little time. I said I would build 34 features into my game in three weeks over the festive break; it is now three months later.
But what features! I might have had to unwind a couple of stinkers along the way, but I’m fairly sure the epic combination of fog o’ war and a minimap more than make up for it.
Three years have passed so quickly and yet so slowly, since I threw that first prototype together from random bits of script off the internet. I had destructible crates in that first prototype, but they just never quite felt necessary when I started the real project in earnest… until now.
Yes, I have finally added crates. Loot-containing, on-death-disintegrating crates. It didn’t take three whole years to implement crates, just that long to get around to it. Honest!
Every so often in your life you realise you’ve gone down a massive dead end, and you have to go back to go forwards. This is the point I’ve now reached with my existing level generator; to add the decorative features and traps and sensible enemy placement I need, the current approach just ain’t going to cut it.
So enjoy this video, because it’ll probably be the last visual demonstration for a few weeks.