← everything

2025

43 entries

It’s been a while - ARC Raiders has taken up more of my free time than I’d like to admit… But! I’ve been working on some combat improvements.

Statuses: I tried to convey more details about status conditions. I’m worried it’s too much currently - but I’d rather add too much up front and then only keep what’s important later. That said, I was able to create visual feedback for all the parts of a status:

  • Statuses are applied with “stacks” which are removed over time. This is shown with the status background, it’s kind of like a vertical progress bar.
  • Based on thresholds of how many stacks are applied, the status is in level 1, 2, or 3 - indicated by the dots below it. As the level changes, a “upwards” or “downwards” animation is shown on top of it.
  • Statuses trigger their effects every 4 combat ticks (starting from the time they are applied). This is indicated by the “rotating” and flashing border.

Move “Animations”: Not to be confused with actually animating my sprites, hehe - I added a flexible system for adding sprite transformations as skills are triggered. This was a relatively cheap way to add some much needed visual feedback for combat.

Tempo: Combat doesn’t have to be real time, but if you queue moves fast enough, it is. If you’re able to keep moves queued you increase your tempo, which adds a damage bonus. This used to be a tick counter, but I’ve changed it to a more abstract gauge.

Overall, I’m trying to focus on adding some more feedback elements (animations/sounds) to help the player understand if their actions are doing what they want. Combat is a tricky thing to balance and tune. I’m eager to get sounds working - and then I think I’ll be at the point where I’d be happy to get some play testing and feedback on it.

Sounds! I’ve been working on my sound engine - something that has barely existed until now. There are two big updates shown in this video:

  • Dialogue Sound: I emulated the Golden Sun dialogue sounds, I’m quite happy with it. It’s still a little squeakier than I want it - but I’ve made it possible to tweak energy, pitch, speed, “worble”, etc. to get different voices for different characters.
  • Spatial Audio: Entities can now emit sounds, and respect fall off configurations based on their distance from the camera. You can hear the energy shield door get quieter the further I walk away from it; you can also here the footsteps of the NPCs in the hallways as they walk by

I just grabbed some royalty free sound for now to work on the audio system, but I need to start putting my Foley Engineer hat on soon to start figuring our the “sound identity” of my game. Having realistic sounds doesn’t fit the visual aesthetic, so I need to lean into heavily compressed/bit crushed GBA-esque sounds.

This bug has been haunting me since day one…

My camera follows a targeted entity, lagging slightly behind and speeding up as the entity gets further away. There’s an equilibrium met where the speed of the entity matches the speed of the camera as it tries to catch up. This creates nice, fluid camera movements when the character starts or stops moving.

The problem is that slight differences in frame timings cause the camera movement jitter between two pixel coordinates, making the entity’s render position flicker by a single pixel. The effect is subtle, it just makes the animation feel “off”…

The fix wasn’t obvious. I started tracking the standard deviation of camera-to-entity deltas over N frames. When the deviation’s low (steady motion), I lock the camera delta to a fixed threshold to stop per-frame jitter. Once it rises above that threshold, normal logic resumes.

The result? Smooth motion at last - no more phantom jitter, and I can finally sleep at night.

38 more notes

in Primortal ··