Back to devblog
02 May 2026

Where Hammerpint stands: a world taking shape, two armies ready, combat in chantier

by The Loremaster

Several weeks of chantier in one go: Aldémoros lore deployed, an evolving map, customizable crests and icons, two playable armies, five out of six phases shipped. Honest recap, what works, what still eats me, and what comes next.

It's been weeks since I last posted, and it's getting absurd — so much has happened in the project that summing it all up in one devlog feels like a stretch. Whatever, here goes. This article is a full status report: where we are, what's working, what ate my time, and what I'm coding right now.

No spin. If you've followed Hammerpint for a while, you'll recognize some of these threads. If you're just landing, you'll get a clean overview.

Aldémoros, finally a real world

The biggest invisible chantier of the past few weeks is the lore. Not narrative wallpaper — a real bible, written voice by voice, faction by faction.

Each faction now has:

  • a narrative identity told in the first person by a faction chronicler (an Imperial Lector, a Dwarven Rune-Smith, an Astréen Sage), with their own vocabulary, their own tics, their own way of lying by omission;
  • NPCs spanning the ages — Aldérick the Great, Drumin Black-Hammer, Theandriel, Volkmar of Tournay — referenced through several voices with contradictory points of view;
  • cross-faction hooks: the Forge Breach between Empire and Dwarves, the Hammer Pact, the silent alliance of the Astréens — every faction has at least one thread reaching into a neighbour;
  • a recent narrative trigger: contested election, hero's death, prophecy stirring — a reason to march to war now and not in a hundred years.

I write everything in French first. English follows. Fourteen factions, hundreds of units, each with its own lore. It's Benedictine work, and I'm glad it's done. The project isn't a rules engine in costume anymore — it's a world, and battles take place inside it.

Faction lore page — narrative-rich text in chronicler voice

A living map of Aldémoros

I also shipped a world map — Aldémoros, with its visual editor. HoMM3 vibes, fully assumed: biomes, roads, sites of power, rivers, frontier marches.

It's not a pretty static image. It's a data file describing hexes, biomes, faction territories, trade roads, diffuse strongholds. I can edit it, evolve it as the game grows, mark battles on it, redraw a frontier after a campaign.

When campaign mode lands, this map will be the playing field — for now it's the lore frame, and every faction has its place on it.

Aldémoros map — biomes, roads, sites of power, diffuse strongholds

Two armies ready for launch

Owned decision: we launch with two playable factions and twelve in composition mode.

  • Celestial Elves (the Astréens, an island people of strategists) — engine code is complete, special rules handled, lore deployed.
  • Greenskin Hordes (Orcs, Goblins, Trolls, Giants) — same, ready to enter battle.

The other twelve factions — Empire, Dwarves, Beastmen, Wood Elves, Watchers of Naharemnu, etc. — have complete lore, complete rosters, working builders. You can compose a 1500-point list with any of them. But making them enter battle with their special rules faithfully implemented still takes time. A « Soon playable » badge is shown clearly in the builder so nobody is surprised.

I could have waited until all fourteen factions were battle-ready before launching. I'd have lost six months of real feedback. Two armies are enough to play, to test, to iterate. The rest will follow.

Personalization: icons and crests

Two nicer, more visible chantiers shipped recently:

Faction crests

Every faction now has a unique crest, composed via an admin visual editor. A library of heraldic charges (phoenix, hammer, skull, etc.), two colours, a border. Not a flat pasted image — a composition I can edit, adapt, evolve.

The crests of the Celestial Elves (phoenix of House Calandros, gules and gold flames on argent, azure chief — the sky of Erys, gold border for Stellar Steel) and the Greenskin Hordes (skull on a sinople/sable parted field, raw, aggressive) are already locked.

Eventually, every player will be able to compose their own banner crest in the builder.

Customizable icons

Same for special-rule, phase, and status icons. The project now has over a hundred — a visually coherent set, in the parchment palette of the interface, with its own logic (rounds for statuses, hexagons for phases, etc.). And every icon is editable, replaceable, overridable through a user pack.

The endgame: a player can personalize their interface — their crest, their sprites, their list names — without touching the engine.

Battle phases — where we are

A Hammerpint battle goes through six major phases. Five are shipped and tested, the sixth is in active chantier right now.

Deployment — shipped

Deployment is probably the phase that has evolved the most. Seven sub-phases — scenario pick, objective pick (Domination, Baggage Trains, Strategic Locations), alternating placement, reserves, ambushers, scouts, vanguard. Server-side validation, coloured halos on valid deployment zones, character placement modal at join time.

I'm proud of it — it's pedagogical, it follows the rules faithfully, and it stays fast in real matches.

Strategy + conjuration phase — shipped

Stupidity test, Inspiring Presence, Hold Your Ground, Rallying Cry, rallying fleeing units, spell conjuration. Spell selection in a dedicated UI — list of available spells, range circle on the minimap, dispel prompt for the opponent, chronicler reactions, dice visible on every roll. Eight lores implemented (56 spells), miscasts run their own consequence table.

Movement phase — shipped

Direct drag on the unit (body = advance, corners = wheel), ghost outlines for predicted final positions, client/server collision sync, ±15° wheel buttons, full manoeuvres (advance, wheel, backwards, about-face, reform, sidestep, redress). All special rules covered: Scouts, Vanguard, Drilled, Strider, Fly(X).

Charge phase — shipped

Declaration → Reaction → Resolution → Redirect. Preview modal, arc detection (front/flank/rear), multi-charge arrows, accidental contact, give ground. The charge phase is probably the most complex in the game, and it stands.

Shooting phase — shipped

BS → wound → saves → casualties → panic. Volley fire, eight weapon profiles, nine war machine types (cannons, bolt throwers, mortars, organ guns…), templates and scatter, two misfire tables, grapeshot. Twenty-three special weapon rules implemented.

Combat phase (melee) — chantier in progress

This is where I am. And I've been here for a while. Melee is the heaviest phase in the game. Initiative-step by initiative-step, charge bonus, impact hits, stomp, challenges, Look Out Sir, pursuits, overruns, multiple combats, attack allocation per batch (champion, R&F, joined characters), saves per model, casualties per rank, combat resolution, break test, flee, pursuit, overrun.

The engine works. Most rules are implemented. What ate my time is the UI — how to expose this complexity without drowning the player, without modal piling, without hiding the actual rules behind a black box.

The chantier that ate me: attack allocation

For weeks now, that « Distribute attacks » modal has been bugging me. It was clunky — a dialog popping up every round, not intuitive, and worst of all it hid the real rules: the contact grid, multi-arcs, flanks, edge cases. Toilet that had been delayed.

So I rebuilt the whole thing.

Allocation isn't a modal anymore. It's a persistent strip, a table sitting above the log, showing each batch of attacks — one attacker hitting one defender. You see the figure with its iconified role, its stats with modifiers applied, and a button to pick the defender.

If you click on a modified stat, the system offers AI help: « why this stat? », with the rule in plain language. Pedagogical — you don't just know there's a malus, you know why.

But what really ate my time is the contact grid. An attack arc determines who can be defender. A charge can hit 2+ units in « sided » config. It was implemented correctly, but you couldn't see it — you just had to trust the system. Now an inline grid shows defenders by arc, and the geometry behind it. One of the most demanding parts of the rules, finally visible.

The old « Distribute attacks » modal is past tense. It was redundant.

Army workshop — Celestial Elves, Core tab: Spearmen, Archers, Coastal Guard, Scouts, Silver Riders

What's next

What's left before public launch:

  • Finish combat resolution — a few edge cases left on multi-combats and stacked challenges.
  • End phase — turn end, VP scoring, victory/defeat, battle chronicle generation.
  • UI polish — a few modals still to harmonize, notably the end-of-battle window.
  • E2E tests — a full Playwright path per faction (compose 1500pts → start battle → play a full turn).

Once that's in place, we open closed beta.

And after? The RPG layer (traits, scars, legendary items, grudges, reputation), campaign mode, persistent AI opponents. It's in the pipe, it's documented, it's not for tomorrow but it's not the vague horizon either.

If you want to follow all this, you can sign up for the waitlist. See you very soon.

Follow the forge
Every full moon, a new notebook.

Sign up for the waitlist to receive forge notes by imperial courier and be among the first to raise your banner.

✉ Join the waitlist