← all tags

#Pixel Art

13 entries

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.

I spent a lot of this weekend working on the startup sequence of my game. Primortal is a love story to the GameBoy Advanced and my childhood playing on it: it’s rendered in 240x160, and your inputs are limited to A/B/Start/Select/D-Pad.

So when a player starts my game I want them to know, in their bones, that they’re getting into a GBA game.

This is what I came up with :) I’m very happy with the visuals, I want to keep working on the audio, but today is honestly the first time I’ve touched music editing software in almost 20 years… So it will take some practice.

I’m a little concerned about flying too close to the sun with some of the mimicry/homage that there’s some copyright infringement? I hope not… What do you think?

I’ve decided on a title for my game (which I have been calling Project F). Introducing… Primortal: Soul Remains

And with it, I came up with a title card and simple animation sequence at game startup 😎

In the game, a “Primortal” is the physical and metaphysical essence of a creature. It is comprised of everything from the anatomy of a creature, to it’s DNA, to the fingerprint of its soul… With it, your Animech can learn that creature’s abilities. The name comes from these roots:

  • Similar to “primordial”: existing at or from the beginning of time.
  • Primal: relating to the most essential or powerful forces in nature or behavior.
  • Mortal suffix: a life that is subject to death

“Soul Remains” is a play on words in a few ways:

  • The game explores what a life is, and what happens when you die - does your soul remain?
  • You are the last remaining person in your circle - all your friends and family have died. You are the soul remaining person in your life.
  • As a result of this trauma, the character disassociates - what remains in the world is their soul - wandering through life (until you find a new family and come to terms with the past)
  • As you capture Primortals in the game, there’s a moral and ethical question around the practice. Does their soul remain? Trapped in some prison?

Here’s a snapshot of the title card, in all its glory:

That’s enough menus and UI work for me for a little bit..

I’m really happy with my skill tree, and skill inspector - especially since the skill definitions are nuanced and technical. I think the Animech level-up screens will change the most in the future, I have some ideas for additional stats to boost around damage.

But I think I’ve hit all of the upgrade screens I want to support for my first play-test demo. Something about them looking good - even for early testing - makes it feel nice to play.

I think next up, I’m going to tackle my dynamic entity scripting system. I’m going with goja and Typescript, at least, that’s the plan!

I thought I’d add a transition effect between menu screen - I tried to emulate older CRT screens, tube TVs changing the channel, and the classic pip boy. There are some mocing scan lines, vignetteing, “flashing”, pixel row dithering, and some other small thing. I like where I ended up, but I’m concern it’s too much? Is it distracting? Or “nice! keep it!”?

From working menus, to pretty menus 😎

A nice, animated, scrolly list for the creaures, and a fancy dynamic skill tree for the creature skills you can unlock. I spent way more time than I want to admit on this stuff… I also really like the simple threshold shader I applied to my normal sprites to align with the “lo-fi screen” aesthetic of this menu.

I’m really pleased with this update. Now that I can battle and collect experience and research point, I need a way to spend those things to upgrade the player’s abilities. Since this game has some catch-em-all elements, I couldn’t help but emulate the Pokedex a little bit… Introducing the “Xenolog” - a little PDA that will show your current game progress; and while in HQ, be able to upgrade your player. I’m really happy with this little sub-device menu look and feel. Now I can start on the actual functionality of the menu…

Introducing… Elythium! A mix of: “Elysium”, the ancient Greek mythological paradise/state of ideal happiness; and Lithium, the highly reactive and flammable element. On your adventures, you need to collect enough of this stuff to fuel the return flight home.

I’ve finally entered the phase of working towards an actual game loop - I finally feel like my combat and adventuring states are fleshed out enough to support it.

As part of this, I also spent a lot of time streamlining my sprite configurations - before I was mostly manually coding the frames and their timings - now I can just throw together some YAML next to the PNG and reference an animation name! These crystals subtly shift between different hues and sparkle!

Small update today - just a little PDA terminal with a cute little animation and toggle-able state. Happy with how easy it was to throw together - sprites and code in less than 20 minutes, the engine I’ve built up is slowly coming together…

Just showing off the tileset I’m working on - the initial part of the game, which will act as the tutorial, will be in a sci-fi lab of sorts, maybe in a large space ship, we’ll see…

I’ve never made my own assets before - and I’m very happy with how things are coming along. I’m definitely taking inspiration from other assets packs I’ve found online and trying to make it my own :)

Started work on my first art asset: a sci-fi space lab tilesheet! :) I love how the color bloom (LEDs) and lighting system already make it look so good.

In it’s current iteration, I’m still pulling a lot of inspiration from Cyber Monkey’s SciFi Spacial tilesheet, but I plan to adopt it more - changing the industrial striped tape out, and maybe going for a more black & white vibe and removing the greenish blue walls.

I was struggling to find a 5px tall font I liked for some of my more detailed UI elements. So I made my own! It was way simpler than I expected thanks to the PixelForge tool I found. I love some of the more stylized letters, like A, C, G, O, P, S, and U (specifically the “lower” case letters).

This also opens up an awesome opportunity to create custom icons as part of the font that I can easily include in text :)

Sadly, it’s not easy to make special kern pairs (like for LT) with bitmap fonts. It kind of bugs me (look at ‘HEALTH’ above). But maybe some day I’ll circle back and see if I can make it work with glyph pair substitutes. It would require a much more feature rich tool to achieve.