← Back to devlog

Design

One card for every creature in the bestiary

Every monster in the codex leaves a card: its own illustration, a frame that is interface rather than artwork, and text that says what happens, when, and where it stops. Two hundred and fifty-three of them, still a proposal.

Three Ascension cards side by side: a goblin scout among ferns, an arcane wisp over ruins, and a goblin king striking the flagstones
Three Ascension cards side by side: a goblin scout among ferns, an arcane wisp over ruins, and a goblin king striking the flagstones

Every creature in the bestiary leaves a card. Not a catalogue entry: a card, with its illustration, its rarity and its text.

Three cards: goblin scout, arcane wisp and the crimson goblin king

These three aren’t picked at random. They are one of each function, which is what really tells one card from another:

  • Essence, slotted into a weapon or a piece of armour, acting on its own without you calling it.
  • Companion, an ally that comes down into the fight with you.
  • Boss summon, a relic that does one specific thing, once, and takes its time coming back.

The top corner gives the rarity. The plate below says what it does.

The frame is interface, not artwork

The illustration is a clean PNG. No frame, no name, no text burned into it:

The goblin scout illustration with no frame or text: lying in ambush among roots and ferns beside a forest path

The ornamental frame, the rarity emblem, the name plate and the effect box are assembled on top, in HTML, CSS and SVG:

The same illustration inside the card, with frame, name plate and effect text

It’s the same drawing. The second one just has the interface laid over it.

I did it this way for two reasons. The first is that I can change the frame on all two hundred and fifty-three cards at once without touching a single image. The second is that the same painting works in the card, in the bestiary entry and in the press material without retouching, because nothing is written inside it.

A scene, not a portrait

The art rule is that every card is a scene with its own setting, not a character cut out against a flat background. The goblin is lying in ambush beside a path. The wisp is lighting a rune among ruins. The king is striking the flagstones of an empty fortress.

Identity comes from the codex and isn’t up for negotiation: silhouette, anatomy, proportions, clothing, colours and gear are the ones the creature already has. The pose and the camera are new; the character isn’t. A different scene is not a redesign.

The finish is written down too: fine pixel texture, deliberate colour groupings, thin dark outlines, drawn shadows. No thick sticker outlines, no 3D render materials.

And a narrative palette per scene: forest green and gold, ruins blue and violet, fortress ochre and crimson. Treating the drawing the same way doesn’t mean every one of them has the same light.

The illustrations are done: two hundred and fifty-three, one per creature. Three creatures in the bestiary are still without a card, and I have them written down.

What a card says

This part took me longer than the frame.

All two hundred and fifty-three cards came with inherited text, and every one of them looked like this:

Grants a moderate bonus to the Skirmisher role.

Not one of them gave a quantity. “Moderate” is not a number, and “Skirmisher role” is not something that happens on screen: it’s spreadsheet vocabulary. With text like that I can’t decide whether a card is good, or check whether it works, or explain it to you.

So the rule went into writing:

Action, condition, magnitude and limit. If the magnitude hasn’t been measured yet, the card says so.

The same card, rewritten, is the one in the image above: direct damage from behind, a specific percentage, a ninety-degree cone, and the clarification that frontal hits get nothing. It can be measured, it can be checked, and it says where it ends.

What cards are never going to do

There’s a line I don’t want to cross, and I wrote it down before I started putting numbers on anything:

No added dodge chance, invulnerability frames, animation speed or cooldown reduction. The response of the controls is preserved.

A card can change how much damage you deal or how much you can take. It can’t change how the controller responds. The moment a card makes the character move differently, it stops being equipment and becomes a different game.

This is a proposal

None of it is implemented. There isn’t a single card inside the Godot build. The numbers are a first systematic pass on paper: they’re consistent with each other and they have caps, but they haven’t been measured in play, and a systematic pass is not tested balance.

That’s why the cards read “proposal” and “rank I”. It’s literal.

And it’s why I’m showing these three and not the collection. What each card does, how they’re obtained and how they combine is exactly the part worth finding out by playing.

← Back to devlog