This Deepvelopment Monthly post will cover my work on Deep throughout April 2015.
LOTS OF EFFECTS!! -Visual
The first thing I did this month and certainly the most immediately obvious change was add a very silly amount of sprited graphical effects. Things like dust flying out of either side when a character lands after a jump, little impact-circles when a projectile crashes into something, static looking sparks when you use a fully charged bumper attack… I had a lot of similar things in game a long time ago as a sort of test, but they didn’t look very good and I had to remove them anyway when I redid the engine framework last month… But these are all almost definitely intended for the final game. Here’s a video. I hope you enjoy! (It took a real long time to upload so I think that’s a good sign)
(Ignore the fact that I can just spawn an enemy wherever, and that my ammo is at 0. That obviously doesn’t happen when my debug tools are deactivated!)
Projectile Trails -Visual
Also of note in that video is that projectiles now have cute trail effects! A long while ago I mentioned that I was adding these but that the version of them at the time wasn’t final. It definitely is now, I think it looks really cool, especially with some of the… Larger projectiles that certain enemies will be launching at you. Actually! How about instead of implying things vaguely, I just show you, since it links into my next point…
Projectile Rotation/Resizing -Content -Programming
Projectiles launched by enemies can now be adjusted based on the size of the enemy!!
You might notice that even the little impact-circle effect that spawns when the projectile hits a wall is larger for larger projectiles.
Box-type Separation -Programming
So, probably the most impacting change this month was the separation of ‘hitboxes’ from ‘hurtboxes’ for enemies. You’re probably familiar with the idea of a hitbox in a video game, an invisible boxed area that the game engine recognises as being the space that some kind of object is taking up. There’s generally some kind of effect set to take place if two hitboxes overlap, for example, your player character might take damage if their hitbox is overlapping with the hitbox of an enemy’s projectile.
Deep is no different, and all enemies have differently shaped/sized hitboxes that the game uses to figure out “where they are”. If you attack an enemy’s hitbox, they take damage, and if you walk into one, you take damage. Most of the time this was fine, but with more complexly shaped enemies, this wasn’t working out. This enemy is a ‘Decback’, and those canons on its shell do exactly what you’d expect them to.
But after some playtesting they were proving too tough to beat. Not because of the projectiles they fired, but because even when I was above one, I’d get hit by bumping into the canon. So I tried removing the canon from the hitbox area, but that made them even harder to beat, because I could no longer shoot that part of the Decback to attack it!The solution was ‘hitbox separation’. The idea is that I can label some parts of the enemy as hitboxes, which can deal damage, and some parts as hurtboxes, which won’t deal any damage to me if I pass through them, but can still be hit by my attacks. It sounds like a tiny thing, but it’s really expanded what I can do with the enemies in Deep, and even more so the bosses.
Here’s a zoomed-in picture of another enemy design that benefited a lot from the separation, the Cite:
The yellow box is the area that can deal damage to me, and the blue box is the area that I can attack to damage the Cite.
Damage Flash -Visual
This wasn’t really originally on my to-do list for the month, but since I was working with graphical effects a lot anyway, I felt like it was time to redo the damage flash, since it’s been exactly the same since I first coded enemies way back in March 2013, and honestly it’s always looked kind of bad. The damage flash is basically the visual effect on a foe or the player when they get hit by an attack. Check it out;
This animation is only in 33 FPS, whereas the game runs natively at 60, so it’s not quite as smooth and crisp as it actually appears in the game, but you get the idea!
Enemy Balancing/Playtesting -Content -Balancing
I can’t go into too much detail here unfortunately since I want these posts to be spoiler free, and I’m limiting how much of the content I show here… But given that I had to essentially redo all the enemy code last month due to the framework changes (check out the March 2015 post for more details), I figured while I was going back through each enemy this month I’d play around with a specially generated map that only spawned several of one specific type of enemy at a time, and do some playtesting/balancing! For obvious reasons this is the most fun part of development, and I really feel like it made a pretty big difference as well. I tweaked a lot of the enemies to be a lot more fun and fair to deal with, and had way more versatility regarding how I could program their behaviour due to the hitbox separation stuff as well. I’ve added a new section to the about the game’s difficulty, so check that out for more about the game’s balance.
Thin Platform Glitch -Glitch
This isn’t of huge importance but it took an entire day to fix so I felt like I should share my pain with you all a little. Mysteriously out of nowhere, a glitch appeared that allowed you to perform the down+jump input (this is the button combination pressed to fall through those thin platforms) even when you weren’t standing on a thin platform! You didn’t actually fall through the platform, but the robot animated as if you had, and if you held down the button the game thought you were constantly in a falling state and you could just sort of slide around the terrain. AND THEN when I fixed it, it created a new problem where the ‘landing dust’ effect was constantly emitted from your character every single frame that you were on the ground for! So I lost an entire day’s work to that. Incredible stuff.
Play Crypt of the Necrodancer -Unrelated
A very incredible indie game has finally come out of its alpha pre-release build and been released as a full game. It is called Crypt of the Necrodancer, and it’s one of the most original games I have EVER played, as well as being brutally difficult and infinitely replayable. If you haven’t already, go check it out on Steam!
That’s all for April (or at least, all I can show you!) and I’ll see you again this time next month!