Ode stands near a crash auto taxi

December comes to a close and finally this year is over. December saw the completion of the work started in Novembers sprint. Ivy Automata has been included into the game as the first boss fight, but not without some sacrifices.

Before I get to those though, let’s do sprint recap and cover the good things that are coming in the final build of the game for 2020.

So this sprint I closed out 15 issues, 7 Bugs 🐛 , and 8 Enhancements 💡. A pretty nice split actually.

Ivy Boss Fight and narrative tweaks.

The demo scene is more linked to the storyline of Electric Noir. It’s no longer a one-off encounter, instead it exists within the main storyline of Electric Noir and shows off some of the larger plot of the game.

New lighting effects

I’ve updated my art pipeline so that I can more easily add visual effects to the game. This includes being able to author and include Normal Maps, Rim light masks and Emission Maps within my Aseprite files. These layers get imported via the Unity Asset Import Pipeline and included in the game automatically, so the 2D lights I’ve setup now add a lot of depth to the character sprites.

image showing lighting effects on Ivy's portrait

image showing Ivy's portrait normal map

image showing the various image effect layers in aseprite

New physics improvements

In previous releases, when an enemy was knocked into the air their trajectory was pre-determined. The system used pre-computed bezier curves to control an enemies movement through the air. This worked well, however it ran into issues as the curves weren’t very high resolution, they consisted of about 10-15 points, which caused some of the larger movements to appear jerky and hard to follow.

This movement system also made effects like the bullet casings from Ode’s gun hard to code, since the only way to move would be to use these pre-computed curves. Instead, I switched over to using a true physics system, with gravity, acceleration and friction (really really easy to setup) to govern how objects move through the air.

This has improved a lot of the movement and feel of the game and allows for more dynamic combat and effects.

2020 In Review

It doesn’t really need to be said that 2020 was the worst. However, 2020 was a pretty good year for Electric Noir. I doubled down on my narrative beat-em-up idea, tweaking, updating an re-writing the storyline until I had something I was proud of.

I started crafting characters that I wanted to see, taking inspirtation from a lot of my favorite stories, both sci-fi and fantasy, fiction and non-fiction to get a world that I think feels real and has a unique perspective to offer players.

I revamped this very website with a new design that highlights the visual style of the game and makes a unique space online.

I started monthly development sprints and in September, I released the first of 3 builds this year.

On top of all of these things I learned a ton about making a game in Unity. There are a lot of challenges, and I’m proud of the fact that I’ve stuck with this project and kept pushing forward, rather than making a step forward and two steps back.

With that review complete, let’s talk about some things that aren’t so great.

State machine bugs

This month revealed a lot of bugs with my state machine code. The bugs were really hard to debug and fix, so I’m currently trying to figure out a way forward, as such there are no enemies other than Ivy in the December release. It pained me to disable them but they weren’t working and I’d rather have a portion of the game that is playable, than a whole game that isn’t.

I’m actually thinking of replacing the enemy statemachines with something like FlowCanvas with NodeCanvas rather than building something on my own.

Update on future releases

My wife and I are in the middle of packing up our house in Texas, preparing to sell it so we can move back to our families in Massachusetts. The move is scheduled to happen mid February so the next two months are going to be incredibly hectic and chaotic which means there will likely be very little time for me to invest heavily in Electric Noir in the next few months.

Looking forward through the move and back through the past few months, I’ve enjoyed the cadence of the monthly sprints, so I will definitely be keeping those up, but the monthly releases haven’t had the impact that I’ve expected/wanted so I’m going to be switching to releasing builds of the game when it’s gotten enough updates and polish to warrant them.

This means fewer releases of the game, but it also means better quality of those releases. It also means I won’t be stressing out mid-month about testing all the work I’ve been doing, instead I can test as I go along and polish releases just before they are shipped.