October 25, 2026
Playtest 0.4.2: scores, stories, and windows that sit still
This update is a mix of one big feature (high scores) and a lot of small fixes that came straight from playtesters. I want to talk about some of the decisions behind them, because a few turned out to be more interesting than they looked.
Why a high score list?
Coin & Contract is a roguelike with permadeath. When your character dies, their save is gone. I like that, because it gives every choice weight. But until now, death was just over. You'd lose thirty days of work and the game would quietly start again.
The old roguelikes I love, especially ADOM, handle this beautifully. Your dead character goes onto a list with a single line of their story: who they were, how far they got, and what killed them. Losing a character turns into a small tale you can look back on.
So now, when you die, you see a line like:
Brenna, a level 6 Sellsword, was killed by an orc in the Sunken Crypt on day 41.
You also see a score and your place on the list. To make those stories feel like yours, you now name your character at the start, not just your cat.
The tricky part was deciding what earns points. The game is meant to be half mercenary work and half travelling merchant, and I wanted both to score equally well. A merchant who never draws a sword should be able to top the list just as easily as a dungeon-diver. So the score counts money earned from contracts and things you find, trading profit, contracts finished and your standing with the Guild, and how deep you've been.
The trading part needed care. If buying and selling counted for points, you could stand at one shop selling the same item back and forth. So only real profit counts: what you sold something for, minus what you paid for it. You have to actually buy cheap somewhere and sell dear somewhere else.
The score is also hidden while you play. It counts quietly in the background and you only see it at the end. I didn't want a number on screen pulling people towards "optimal" play instead of the life they want their character to have.
Finally, starting a new game over a living character now retires them onto the list instead of just deleting them. Someone who retired rich after a successful trading career deserves to be remembered as well.
Listening to playtesters: windows that jump
Every playtester mentioned this in some form. You'd open a shop, move the mouse down the list, and the whole window would twitch, growing and shrinking as each item's description got longer or shorter. It's a small thing, but it made the game feel unfinished, and it's genuinely tiring to read text that won't stay still.
The fix had two parts. First, make room up front: when a window opens, it works out the space the longest description could need and reserves it from the start. Second, never shrink: if a window does need to grow, it doesn't shrink back while it's open.
I fixed the contract board first, and a playtester immediately found the same problem in the trading window. So this time I applied the fix to every window in the game at once. That's a lesson I'm trying to take on board: when one screen has a problem, they probably all do.
Small fixes with a reason behind them
Swap places. Narrow corridors plus a friendly companion meant you could get stuck behind your own allies. Now you can right-click anyone friendly next to you and swap places with them. Getting stuck behind someone you're trying to rescue is the opposite of heroic.
A coin over every trader. Half of this game is about trading between towns, but new players kept missing the town Exchanges entirely. Now a little coin bobs over each Exchange trader until you've traded there once.
Contract messages that make sense. Killing monsters for a contract used to sometimes say "your contract isn't finished any more", which sounded like you'd done something wrong. It now just tells you how far along the job is.
Fading to black when you sleep. Sleeping jumps hours ahead. A short fade makes that feel like time passing instead of the world snapping into a new state.
Art: no AI, no shortcuts
All the art in this game is either CC0 or properly licensed and credited, and none of it is AI-generated. That's a firm rule for me, and it means some sprites end up as stand-ins until better ones come along. Two got upgraded this time:
- Leather armour used to look like a cooking pot. A playtester pointed it out, and once you've seen it, you can't unsee it. It now uses a proper armour sprite from Kenney's Roguelike Characters pack.
- Goblins have a new look, from Pixelated goblin by markoxx2. It's taller than one of the game's tiles, and shrinking pixel art by an odd amount makes it look smeared, so the game now draws taller creatures at their normal size, standing on their tile with their head poking up a little.
Under the hood
The core of the game had grown into one very large file that handled almost everything. I split it into separate parts for exploration, items, town services and combat. To make sure nothing broke, I used the fact that the game's randomness is seeded: the same seed always plays out the same way. An automated test character played the same games on the old code and the new, and every message, turn and coin matched exactly.
What's next
Next up is combat abilities: shield bashes, lunges, dodges, bleeding cuts and stuns, so fights involve more than "attack or drink a potion". The big question I'm working through is classes or a classless system. My current thinking is a mix: anyone can learn anything, but your background gives you a head start in a direction.
Thanks again to Gardy, ToffeeTortoise, Rain_chanter and Zyxwvf for playtesting.