So many features, so little time. Maybe, yes, 34 features of varying size and complexity was a bit of a stretch for a three-week break, especially one peppered with familypocalypses. My current tally appears to be a paltry 14, but I’m still not giving up.
New Year Progress Report
On the other hand, when I posted the first video of my game in December 2013, it looked like this:
A full three years have now passed and it looks like this:
Which is, all things considered, quite a lot more like a complete game. Whether or not I slash my way through all of these features in the remaining week of my festive break, progress is progress.
A. Level Generation
I’ve only ticked one extra feature off this one, but it was hard fought so I’m not too unhappy — caves are now back on the menu. I had to juggle a whole world of extra mechanisms to make the cellular automata generator fit in and make it paint the rocky tileset in the right places. That’s 5 of 8 features done from group A.
Spoiler: I did something about disconnected blobs. It’s a bit of a brute-force solution but it works — it basically flood-fill selects everything connected to each open cell, and works out from that if there is more than one block. If there is, it connects all the smaller blocks to the largest by slapping down some more corridors. This does mean there’s the possibility/tendency towards caves being too large and open plan, but once we start to add decorations (loose rocks, free-standing pillars, etc) things will fill in again.
B. Level Navigation
To be honest the occlusion system has been one of the biggest stumbling blocks in the world. It turns out that working out which walls are between the player and the camera, plus a bit of a margin, is really really really really difficult. I’ve sunk a lot of hours into this area and got somewhere, but it’s basically whackamole — as soon as you cover one edge case another new one pops up somewhere else. Needless to say, I’ve put this one on hard ice so I can focus on making tangible progress, so still sitting on 0 of 2 features done in group B.
C. Item Systems
I added a whole load of extra sword variations on top of the initial set I made for the item generator, but those don’t count towards my feature total. 4 out of 4 features were completed in group C before crimbo day! That’s the best thing about working low-poly: it’s very fast and very cheap to churn out both minor and major variations on a theme to ensure there’s a lot of visual variety for your players to feast on.
D. Ability Systems
Luckily group D went much more smoothly. As expected, installing the fifth ability — the mech’s undercarriage dangly-bit unit — was straightforward, as was making a gun to go into it. The second feature was the beginnings of a debuff system and as planned I tackled stunning first.
Stunning wasn’t initially too difficult; I keep a list of buffs that are attached to the unit and check through them each frame for ones that would freeze the unit. If it’s frozen, its animation speed gets zeroed and it ignores all input from the player/bot AI. The fun started when I realised that stunning wouldn’t interrupt an attack in progress, so a stunned enemy could still smack you one if you stunned it too late. Stunning in particular seems to be one of these things that permeates the entire ecosystem, so I’m going to sit on it for a while just in case any other edge cases crop up before I expand the system to other debuffs.
Luckily, that makes 2 out of 2 features complete from group D.
There are 2 out of 3 features complete here, the remaining one being destructible objects containing items rather than items simply lying around. You know, a destructible crate was literally one of the first features I ever implemented in Unity — in the six-day demo trial run. How hard could it be to reapply to the modern world? Probably not that hard, but you know how distractable I am…
F. Neutral Passive
Nope, 0 out of 3 features here means there are still no allies in my dungeons.
Nope, 0 out of 5 features here means the enemies are still a bit crap.
However, this is the area I’ve just started to pick up and there’s still another six days of holiday left. First I will swing by the AI code and tidy that up, then we’ll look at adding some more varied enemy types.
Oh dear. 0 out of 4.
I. User Interface
I dipped my toes into some UI work to enable item tooltips — mostly so that I could tell easily whether the item generator was working correctly. So that’s 1 out of 3 features done here.
Which puts me at 14 out of 34, leaving 20 features still to go before I can declare this monstrous folly to be something potentially playable by normal human beings. Considering that’s only 4 features since the last update I’m a little bit miffed, but then again, that period did include crimbo day and new year and the quick wins are all gone — it’s only pure hard graft remaining.
No rest for the wicked, huh?