Code Hardening
I first heard the term "code hardening" at my last job, and I always liked it. I visually equate it to the hot metal of a newly hammered blade being dunked in cold water for the first time . Steam hissing, faint orange glow dulling to black, trading in the limitless potential of what the ore could have been, for the hyper focused brutality of what the thing now is. And that's what I've been trying to do for my code.
Bloodmoon Survivors (or at least the demo) is in that strange place where although I have 25 pages of notes on what needs to happen, the list suddenly stopped growing last week. Up until now I've still been tweaking gameplay mechanics, revisiting art, brushing up the effects, but now there isn't much left to do on those other fronts so I took the week to revisit every single script and start combing them for bugs, making everything triple redundant.
Art
From the art side of things, Ref and I have just been going back and forth on the main menu. This process will take a while, and there isn't much for me to do except guide the art with my vision of what it should be. We've mocked up how the figures will be arranged, and I added some cool parallax, particles, and lighting. Now we're just waiting for the art renders and going through player designs. One cool thing is that the player will look a little different than we expected. We're taking inspiration from the harlequins of Warhammer to create a character with a heavier jester theme. I think it falls in nicely with the moon feel of the game, so we're going to lean into it and make him as badass as possible. This is important for marketability because mascots sell. Look at every steam capsule art out there and you'll see a dude or dudette staring at the camera in a cool pose. So we're making a dude with a cool mask staring at the camera in a cool pose. Here's the first sketches of him.
There are still things I'd like to redo, like he should face the camera, and he absolutely needs horns. But I really like the weird mix of jester and murderer energy he has going on. I think it adds some intrinsic lore to the game, which I hope to flesh out a little bit.
Music
For music there isn't much to say. Juan has finished up all tracks, so now I've just been looking for new SFX to clean up some of the sounds. One fun little audio related bug that I cracked though has been related to my Audio2D package that I made and have been using for the game. For a while now, I've been noticing that some sounds play super crisp and others sound kind of faint. I tried fixing their volume but no matter how high I put it, sometimes it would play loud and sometimes it would be quiet. This week I revisited the audio package and found that by default my spacial roll off was set for all in game sound effects. This was a relic from my old game Frisbros, because in that game I would load an entire level in all at once, and I didn't want the player to hear buzzsaws or traps that were playing in the room across from his own until they reached them. This system worked great for that game because it limited how load a sound could be because on distance. In Bloodmoon survivors however, I want each sound to be heard, and only limited by the frequency at which it's playing. Turning off the spacial roll off, made every sound super crisp regardless of how close it was to the player (which is great because there's nothing actually loaded outside of the bounds of the screen anyway).
Programming
From the programming perspective (not to toot my own horn) I feel like I've done a monumental amount of work this week. I brought my list of known bugs from 25 pages down to 18, and I tackled them in terms of difficulty, starting with the hardest. Let's cover some of the trickier ones:
- Fixed an issue with chest/resource node loot drops. When the nodes are initialized, they take in a value of total loot they drop, and then drop it over the course of getting pounded to smitherines. I think it's a cool system that gives feedback that you're actually breaking the object. The bug was that the last big burst of loot never happened because I was breaking out of a for-loop too quickly. I patched it and now the resources are dropping at a good pace.
- Fixed an issue with UI where certain screens weren't appearing. Some screens appear, then have a popup or another screen that they want to layer on top. Those screens weren't appearing because I wasn't canceling the animations of the current screen before doing the next one.
- Fixed and issue where after winning a round, the next round players couldn't swing their weapon. - This was a very tricky one. The problem boiled down to how I was handling disabling and enabling player components. My system sent out an event from a singleton to disable things like attacking and moving when a UI screen popped up to prevent them from moving while they check out their PostMatch stats. The problem was, when I switched back to the main menu then went to level 2, all of the components would be destroyed and then reinitialized when the next level loaded. My disable/enable manager however was a singleton and it's toggles wouldn't reset. To fix it I bound it to an event listener for onScene change and had my manager reinitialize as well.
- Resetting profiles let you keep your money. - The strange part about this bug was that on resetting the profile, I would reload the main menu, but I retained money and all progression. When I quit the game and came back though it was all gone, so the reset must have been working. It took a while but I figured out that what was happening is after resetting the level, I would check for existing file, and not find it so the game would create a new save slot. However, all of my save data is actually cached in a massive dictionary and creating a new save was different from loading it into memory. I added a Load call so that it would wipe the cache and populate it with default new save data before the scene finished reloading.
Next Week
Going forward I hope to keep hardening the game. I want to work my list of bugs and improvements down to 0 pages before the demo, and that'll hopefully give Ref enough time to finish building the main menu. Right now, I'm in no rush. Patience is key, so I'm trying to do everything right, so that once the demo is out, all I have to do is build more, instead of going back and fixing the old stuff.
Till next time!
Get Bloodmoon Survivors
Bloodmoon Survivors
Survive the night by fighting your way through hordes of enemies
Status | Prototype |
Author | TheNevel |
Genre | Action |
Tags | 2D, bullet-heaven, Bullet Hell, Loot, Pixel Art, Roguelike, Roguelite, Singleplayer, Survivor-like, vampire-survivors |
Languages | English |
Accessibility | Configurable controls |
More posts
- Main Menu and Achievements3 days ago
- Main Menu Revamp And Updating Controls16 days ago
- Finishing VFX, Resource Nodes, and Revamping the Melee System23 days ago
- Resource Economy, UI cleanup, and Powerups30 days ago
- Continuing Powerups36 days ago
- Coolifying your powerup effects43 days ago
- Importance of Game Juice - Powerup Effects Update51 days ago
- Weapons, Items, and SFX58 days ago
- Playtesting, SFX Updates, and Icons67 days ago
Leave a comment
Log in with itch.io to leave a comment.