Still working on things - Technical details of equipment sprites


So, what have I been up to lately?

I'll start this off with a bit of a story about my inspiration for the graphical style of cursed existence:

Lionheart: Legacy of the Crusader is to blame!

Such a gorgeous game - came out in the early 2000s (I played it later, due to a crappy PC).

Pre-rendered environments and characters. My game currently looks nothing like it, I'll admit^^

Ah the time it was my go-to isometric game - I was too dumb or lazy for Baldur's Gate and Icewind Dale and I don't remember why I didn't fall hard for Diablo 1 and 2, but Lionheart is the one that stuck with me.

The story was such a neat alternative timeline too, and it used the S.P.E.C.I.A.L system for stats, like fallout but was real-time.

The only problem was: development was rushed, so I can only recommend the first half, maybe 3/4ths of the game.

Anyways, years later, hades came along and blew my mind - I actually like roguelites?

Superb game in any way I look at it.

All in all, I wanted to take what I like from each game, and add them together for something new.

I'm still very early in development and this will probably take years, especially with the few hours I'm able to commit to it. Still, worth a try - I already learned a shit-ton of things!

As to where I'm currently at:

Equipment and a second body type for players!

Both of these have to do with each other, since now I save the depth buffer of a sprite straight to the sprite's alpha.

Then in-game I combine all these layers to a single spritesheet.

Again, step-by step:

-1: render two base models in blender and save depth buffer to alpha.

-1.2: repeat for each animation frame

- 2.1: attach weapon model to human model

- 2.2: set human model as holdout for the weapon

- 2.3: render weapon model with the depth buffer saved to alpha

- 2.4: repeat for each human animation and for each direction

Here's a rough approximation of the three steps needed for this (base object, block out parts that the character is covering (here just with the hand), and then adding the depth map in the alpha channel)

3: do the same for equipment (helmets, armor, shoes whatever]

4: combine spritesheets in-engine while depth testing against the alpha channel

The indices for the individual animations are exported separately, to a text file.

Currently, the full spritesheet for the axe would look like this, but with colors:

(and your screen isn't dirty, those ARE the sprites)

I really wanna crop the sprites down and efficiently pack them, but I'm definitely leaving that optimization towards the end, when I'm mostly doing code adjustments and I won't be slowed down by it as much. This stuff obviously adds to build times.

That's what I'm currently up to. This type of rendering (at least the in-game part) is commonly called "paper-doll" rendering of isometric characters, and in principle it's as simple as it sounds.

In the end it'll be fairly complex, but I'm adding complexity with each step, refactoring as needed on the way.

I also want to only add actions that are possible with each weapon to the spritesheet, like you can't use an axe like a bow, but that's somewhere off in the future. Different weapon types in general are (like spears, two handed weapons and bows/crossbows).

Why do I concentrate on armor and clothing before that? I just got tired of looking at the poor grey blob guy all the time and want to be able to switch it up a little.

A character that wears clothes also looks a little more polished than a basically naked one^^

Have a good Saturday!

Leave a comment

Log in with itch.io to leave a comment.