Dev Log #12 – Slime Pt. 2, Stuns, and Saying Goodbye

Wow. I know it’s only been a short gap since the last dev log, but this weekend is going to be absolutely packed, so I wanted to get this written before life got too chaotic. Honestly, this week was ridiculously productive. One of those weeks where you finally step back at the end of a stream and realise the project is actually starting to feel like a game instead of just disconnected systems.

At the start of the week I focused heavily on enemy functionality, specifically getting the slime enemies to properly react to combat. By the end of it, enemies could take damage, get knocked back relative to the player’s position, play hit effects, and eventually die with their own little destruction sequence. Once they hit zero health, they now explode into a small puff of smoke before disappearing from the screen entirely. It sounds simple written down, but getting all the moving pieces connected together took a lot more effort than I expected.

The process involved setting up another animation player, layering death animations over the slime sprite itself, adding sound effects, and handling state transitions correctly. The actual logic behind it wasn’t overly difficult once I understood what I was doing, but once again…


The Real Enemy: Naming Conventions

I swear every single major issue I spend hours fixing ends up being because I named something incorrectly.

At some point early on, I decided to capitalise everything differently depending on my mood apparently. Some variables are camelCase, some have underscores, some randomly start with capitals, and then halfway through I started properly following tutorial conventions instead. So now my scripts are this horrifying mix of every naming style imaginable. There were genuinely sections of stream this week where I spent over an hour just staring at scripts trying to work out why something wasn’t functioning, only to realise I’d written something like PlayerHealth in one spot and playerHealth in another.

That sort of thing completely fries your brain after a few hours.

Still, once everything was working properly, it was incredibly satisfying. Seeing the slimes react to hits, hearing sound effects trigger correctly, and watching them get knocked backward gave combat a level of feedback the game really needed. It suddenly stopped feeling like placeholder movement systems and started feeling interactive.

The enemy stun state itself works similarly to the existing idle and walking systems. When a slime gets hit, it briefly enters a stunned state, pauses movement, gets knocked backward, and then transitions back into its normal behaviour loop afterward. The animation setup for this was honestly one of the more straightforward parts of the week, which was nice for once.


State Machines, HUDs, and Big Stream Energy

Wednesday ended up being one of the biggest stream days I’ve had in a while. We somehow got through two tutorial videos in one night, I had a ton of viewers hanging around, and I picked up a bunch of followers as well, which was really cool to see.

Most of Wednesday’s work focused on player state machines and the HUD system. The player can now properly take damage when colliding with enemies, get stunned briefly, and receive knockback effects. I did end up going slightly off-script from the tutorial in a few places because I preferred the feel of my own implementation. The tutorial wanted a very rigid stun duration and behaviour, but I tweaked parts of it so the player reactions felt a little smoother and more responsive.

The HUD setup was also surprisingly impressive. The tutorial system is extremely detailed, almost to the point where it feels over-engineered sometimes, but in this case it paid off. The health display dynamically updates based on maximum health values, meaning additional hearts automatically reposition and scale themselves cleanly on the screen. It’s one of those systems that future-proofs things nicely without me needing to revisit it later.

Of course, even that ended with me getting stuck because I misread a single character in the tutorial and typed a 1 instead of an I.

Classic.


Real Life Stuff

Outside of development, this weekend is going to be busy for a few reasons. Lenny and I got accepted into a two-day competition, which will be running Saturday and Sunday, so that should be exciting! I don’t think we will win to be honest, there are some very hyper competitive people there, but we will for sure do our best!

Unfortunately though, we’ve also made the very difficult decision to put one of our dogs down this weekend.

We adopted Macgyver over 4 years ago now and in that time he has been awesome! He dug lots of holes, ate a bird once, dealt with my niece and nephew patting him awkwardly and running away, and barked at lots of things. We adopted him when he was 10, so it was always going to be a short ride.

It’s one of those decisions where logically you know it’s the right thing to do, but emotionally it still completely sucks. He still loves people, still wants affection, and still gets excited when he sees us, but the reality is that most of his day now is either sleeping or wandering around uncomfortable and confused. Nights have become especially hard for him. At a certain point, you stop asking whether you’re ready and start asking whether it’s fair to keep asking them to keep going.

I know Macgyver is a dog and can’t read, but I hope he knows that despite everything;

despite me getting up at night to scold him for barking at moths, or despite me having to hold him in the bath because he stopped enjoying them, and despite me having to carry him awkwardly on walks at the end because his back end just couldn’t do it;

I still love him, I still want what’s best for him, and I’m still going to miss him.

I’ve been crying the whole time I write this, and gone and sat with him twice, but I don’t really want to dwell on it too much here because it feels like a very strange crossover episode. But I guess that’s the thing right? Grief is the price you pay for love.


Planning the Future

On a lighter note, I’ve also started planning out future sprite sheet requirements and writing lists for what animations and frames I’ll need moving forward. I’m trying to organise things earlier now rather than reaching a point where I suddenly realise I need fifteen different animations all at once.

I’ve also started roughing out ideas for the protagonist design.

One thing that’s really important to me is making the main character feel intentionally androgynous and universal. I don’t want them to feel hyper-specific or locked into one identity. I’ve never personally had trouble inserting myself into a protagonist in games, sure ill be Doom Guy, but not everyone experiences stories the same way. I want the character to feel like they could be anyone. Not overly masculine, not overly feminine, not some impossibly heroic chosen one right from the start.

Just someone ordinary. Someone who slowly becomes something greater over time depending on the path they take.

I don’t have any visuals ready to properly show yet, but hopefully by next week I’ll have something a bit more concrete to share.

Overall though, genuinely one of the most productive weeks I’ve had on the project so far.

I do apologise this one is kind of short, my mind is not really focused on reviewing what I did during the week. Thanks for reading, guys, keen to get next week rolling.

Posted in

Leave a comment