My second month-long development sprint wraps up today, and I am incredibly happy with the results! I’ll recap some highlights from the release notes but before I do that I’ll do a quick review on the sprint itself.

If you don’t want to read all the things I wrote, you can download the v2020.10 release of Electric Noir here.

How did the sprint go?

Octobers sprint was focused on itteration. Since the last sprint was the first playable demo release, I was able to get a lot of feedback from playtesters and friends. This gave me a lot of great bug fixes and improvements to target for this sprint.

So this sprint I closed out 18 issues this sprint, 11 Bugs 🐛 , 4 Enhancements 💡, 1 Cleanup task 🗑, and 2 Art tasks 🎨. Definitely not as many issues as the previous sprint, but fairly close. I’ve been expecting my velocity to go down a bit as we enter into the holidays here in America and this sprint had a lot of defects in it, which are hard to estimate sometimes.

One thing that I didn’t expect was that by widway through the month I had completed most of the tasks! This left me a lot of room to experiment with some ideas and test out changes and features I’ve been thinking about but not had the time to dive into. Unfortunately this meant that that I finished a bit less work than I would have liked, but I am still incredibly proud of where Electric Noir is at the end of this sprint.

Workflow changes

I changed up how I worked a bit this sprint as well. Normally I would commit changes to my main branch directly as I worked. This was beneficial because main then always had the “latest and greatest” code. However, this was a pain in the ass also because a lot of times the “latest and greatest” code wasn’t you know, playable.

This can be a big problem if you’re like me and you move between a few differnet issues during your work day. Also, since the move to monthly demo releases I’ve been treating breaking main as a more serious offense in my day-to-day workflow. Basically, I wanted to treat main as an “always shippable” version of the game, something I can take and test myself or hand off to a playtester for feedback any time.

So this basically pushed me to using branches and pull requests more frequently, which I use literally every day in my day job life as a programmer, I just hadn’t been as…strict? Disciplined? Whatever, with myself on Electric Noir. I decided to use branches and PRs for any normal or larger task but would still commit to main if a change was minor enough: tweaking AI configs, text/spelling changes, that sort of stuff.

Using branches and PRs had a few nice side-benefits though:

Since I use GitHub issues and milestones for all my task tracking, I could auto-close a bunch of issues with a single PR. And all my PRs show in my milestones, right next to the issues they closed.

image showing issues and pull-requests within a milestone

Squashing and merging is amazing, having a commit history that just shows features and fixes being merged in is great

image showing commit history with squashed pull-request merges

v2020.10 Release notes

Combat Changes

  • Hit screenshake amounts and pause-on-hit frames have been tweaked to make hits have more impact
  • Player can only dodge on the X axis now
  • Player can no longer dodge outside the level collision (Whoops!)
  • Enemies react to hits more consistently
  • Enemies spawn more blood when hit
  • Player has a new attack: their gun! Press Left-Trigger to draw your gun and then use Right-Trigger to fire! Be careful, there’s limited ammo but you can recharge your gun by attacking enemies.
  • Player can now heal 💕🩺! Pressing the left-button will inject you with a massive dose of healing nanites and a wonderful cocktail of euphoria inducing drugs. Isn’t the future grand!?

Dialogue System Changes

  • Player can now “hurry up” dialogues without skipping to the next spoken line
  • Demo dialogue has been updated with some fresh text animations, thanks to Text Animator by Febucci
  • Choosing the “we’re just passing through” dialogue option no longer crashes the game (Whoops!)
  • Portraits fade in and out when talking/idle, making it more apparent who is speaking
  • There is more visual separation between the character portraits and the game world
  • Speaker names are now separate from the spoken text, spoken text is now wrapped in quotes making descriptive text more obvious.
  • I’ve added a custom pre-processor for Yarn files to make it easier to re-use nodes, which will help me write dialogues faster
  • I’ve added a custom version of Ropework to handle most of the character portrait interaction code

Other Changes

  • I’ve switch to using the Pixel Perfect Camera from Unity
  • Sprite sorting has been overhauled and streamlined to support other objects as well
  • Particle Effects can be sorted using the same system as Sprites, which means I can use Unitys built-in particle systems to handle a lot of visual effects
  • I’ve added a developer console so that I can more easily debug demo versions of the game
  • I did a lot of cleanup on the repository, reference images and game screenshots have been moved to my notion.so project, automation projects have been moved to their own repositories in GitHub

You can download the v2020.10 release of Electric Noir here.