← all tags

#UI

7 entries

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:

Another one of those “doesn’t look big, but is massive” updates… 😅

I added a full event & effect system to my engine, replacing a dozen smaller systems I had built to facilitate all of the other game mechanics in the over world.

That meant re-implementing: interactions, dialogue/chatter triggers, timers/delays, movement restrictions, zones, combat triggers, teleportation, state transitions, camera adjustments, and more…

But, hey! We got there! :) It just took 3-4 full evenings of effort… The only thing not working is dashing across gaps, that was a problem for another day…

On top of that, I added support for JavaScript event handlers, allowing me to embed JS directly into my entity definition in Tiled. This will hopefully make it easier to create more interactive worlds directly in the map editor, without having to hop around between my code and map editors. Event handlers can be written in Go, along side the rest of my code, in JS files (edited in my IDE) and referenced by entities, or inline directly in Tiled.

The default property editor is gross in Tiled for code snippets (see the video…), but I’m working on a fork of Tiled to support basic JS editing with autocomplete and linting based on a types file! Here’s a little look at that:

Oh, I also added some actual settings in the menu, allowing me to more easily tune of knobs to debug rendering issues. Nothing for real players though…

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.

This update was a bit tedious, and less game focused - but hopefully it will let me iterate on my UIs quickly as I flesh out my combat state.

Text boxes are now fully configurable with width/height, render origin location, and vertical + horizontal alignment.

With those, plus the 9-box frames I added a while back, I created a generic collection of “badges” that can be used for small UI elements. In this example type badges, a la Pokemon - and button input tool tips!