Development Update #14


Hello everyone!

Welcome to the fourteenth development update for Haunted: Attack of the Dead Men.  If you've read the last update, you'll probably know what the focus of this update will be already and have been looking forward to it.  For the benefit of those who aren't aware though, I have been very busy on perhaps one of the most important improvements to the demo all year - the new weapon sprites.  Last month I showed off some footage with the new Luger, Revolver, Trenchgun, Granaten (grenades) and Shashka (sword).  I am pleased to announce that I have now finished what I started, so all the weapons have new, much improved graphics.  Again, instead of me talking about how great they are, why don't I show you?

Impressive stuff right?  I certainly think so.  Compared to the old programmer art, this is a massive improvement and I think it really helps to make the game feel more polished and fun to play.  Speaking of fun to play, I'm sure many of you will be surprised by the other new feature shown in the video, which I have deliberately kept a secret until now...

The Luger(s)

The Luger has long felt a little underwhelming, especially once the other weapons start being unlocked.  This is not unusual for a boomer shooter - for example, when you pick up the chaingun in DOOM there is no longer any point in switching back to the pistol as they share the same ammo type.  It's sole purpose was to get you started, and after that point you could ignore it.  And so the Luger was DOOMed (heh) to suffer the same fate in Haunted: Attack of the Dead Men, serving only as a stop-gap until you picked up a better gun... but I had other ideas.  I thought about what to do to make sure it was still useful (and fun) when you have all the other weapons, and the obvious choice was to, well, add another!


I had originally planned to do this last year when I implemented alternate fire modes for several other weapons, but realised it looked a bit odd without custom graphics since they aren't centred.  Having finished a fresh batch of weapon sprites and with a much improved and streamlined setup for making new animations, I decided now would be the time to implement the feature.  Needless to say, I think the video speaks for itself - I had way too much fun with them!  I hope you all have a lot of fun with them too when I release v1.5.0 of the demo soon.

New Animations

The dual-wielding Lugers aren't the only new animations however.  I wanted to take this opportunity to give each weapon a bit more personality, as such.  Previously, all you got were the different shooting animations, and a fairly bland "move up and down" for switching between them.  With my new setup for animating them, I decided it would be nice to give each weapon a unique animation for being drawn and holstered, which you can see in the video (I took the time to stop and switch between them all occasionally just to highlight this).  On top of that, I also added a couple of animations for when certain weapons get picked up for the first time - for example, when I pick up the Flammenwerfer you can see the player character swinging the fuel tank onto his back.

To help get the point across, here are the new "draw" animations for each weapon:









There is another reason I wanted to this.  Eight weapons is a bit much for anyone to carry if you think about it - I mean, where do you put them all???  By adding these new animations, I can show you how the player character does it - if you pay closer attention, each weapon has a different place for it to "live" - the Luger is inside his trenchcoat, the Revolver is holstered by his right hip, the Rifle is slung on his right shoulder while the Trenchgun is on his left, he puts the MG08's strap round his neck so it hangs around his waist, the Granaten are strapped to his belt, the Flammenwerfer is strapped to his back, and the Shashka is sheathed by his left hip.  Simple really!

I've also added a lot more detail to some of the weapons.  I think this is especially noticeable for the MG08, which now has a sight (animated when deploying it statically), a charging arm (the thing that gets cranked before it is readied), and probably most importantly of all, an ammo belt!  Yes, this was a bit of a discrepancy with the old model for it - where were the bullets supposed to come from before?

Aside from that, we also have a bullet casing being ejected when shooting the Rifle (like the shell casing for the Trenchgun), the Granate actually gets primed before being thrown, and we can all enjoy the Flammenwerfer actually being turned on and off now (just so you know he isn't at risk of setting himself on fire)!

New Code

This is really a behind-the-scenes thing, but I thought I would cover it as it forms a large part of what enabled me to make use of the new animations.  The original weapon code was written way back when I started this project, over four years ago, and had remained mostly the same since then.  Of course, I didn't know what I was doing back then, and there were much better ways of achieving what I wanted.  The gist of it is something that any programmers in the audience will likely understand - polling vs event handling.  For the benefit of the non-programmers, polling is when you repeat some checks every frame, to find out if something happened, whereas event handling is when you register to perform some action whenever you receive a notification that whatever thing you are interested in has just happened.  These may sound similar, but the former is (slightly) less performant and you are also reliant on the game running at a high enough frame rate that you don't miss anything.

Up until now, that is precisely what I was doing for everything - I was simply running lots of checks every frame, to see if for example, a key was pressed.  With the new code, I am now using the latter technique - I register to do things when a key is pressed, or when the frame of an animation changes.  This means I don't have to run lots of checks unnecessarily, and I also don't miss anything - I actually encountered that bug a few times early on, where if the game was lagging the guns wouldn't shoot properly.

It wasn't just the weapons that had this revamp.  I realised I could apply the same technique to the enemy code, as that also relied on performing actions on different animation frames.  You may well see the effects of the enemy code rework compared to v1.4.0, if you have an older PC - I did notice less stuttering when I was testing it on my laptop.

Demo v1.5.0

I'm pretty sure I know the question you're all asking now.  When is all this new stuff going to be available in the demo?  Not to worry, you don't have long to wait.  There is only one small feature (a secret for now!) that I want to add in time for v1.5.0, after which I will focus on releasing the update.  Hopefully it will be out as soon as the end of next week!

This release will take a bit longer than usual, as was the case for v1.3.0, as I want to make sure the store page is up-to-date and more accurately reflects the current state of the game.  I don't plan on recording a new trailer yet, but instead I will use the gameplay video featured in this development update as the main "trailer" for the store page for now.  I figured that, despite being quite a long and detailed video, it would be best if new players got to see what the game looks like as it does now.

To make sure newcomers can still get more of an understanding of the game's setting, I have re-recorded the original "Welcome to Osowiec" trailer to serve as a shorter, "cinematic" teaser trailer.  I've uploaded it to my YouTube channel already, so here it is if you're interested:

...And that will be my Christmas present to you all!  Merry Christmas everyone!

Get Haunted: Attack of the Dead Men

Buy Now$11.99 USD or more

Leave a comment

Log in with itch.io to leave a comment.