Où en est Hammerpint : un monde qui prend forme, deux armées prêtes, et le combat en chantier

par Le Conteur

Plusieurs semaines de chantier d'un coup : le lore d'Aldémoros déployé, une carte évolutive, blasons et icônes personnalisables, deux armées jouables, cinq phases sur six livrées. Récap honnête, ce qui marche, ce qui me bouffe encore, et la suite.

Ça fait plusieurs semaines que je publie peu, et c'est devenu absurde — il s'est passé tellement de choses dans le projet que tout résumer dans un seul devblog tient du défi. Tant pis, on y va. Cet article est un état des lieux complet : où on en est, ce qui marche, ce qui m'a bouffé du temps, et ce que je suis en train de coder en ce moment.

Pas de fard. Si tu suis Hammerpint depuis un moment, tu vas reconnaître certains chantiers. Si tu débarques, tu auras une vue d'ensemble propre.

Le monde d'Aldémoros, posé pour de bon

Le plus gros chantier invisible des dernières semaines, c'est le lore. Pas un fond d'écran narratif — une vraie bible, écrite, voix par voix, faction par faction.

Chaque faction a maintenant :

  • une identité narrative racontée à la première personne par un chroniqueur de la faction (un Lecteur impérial, un Forgeur-de-Runes nain, un Sage astréen), avec son propre vocabulaire, ses propres tics, sa propre manière de mentir par omission ;
  • des PNJ qui traversent les âges — Aldérick le Grand, Drumin Marteau-Noir, Théandriel, Volkmar de Tournay — référencés de plusieurs voix avec des points de vue contradictoires ;
  • des crochets cross-faction : la Brèche des Forges entre Empire et Nains, le Pacte du Marteau, l'alliance silencieuse des Astréens — chaque faction a au moins un fil qui se tend chez le voisin ;
  • un motivateur narratif récent : élection contestée, mort d'un héros, prophétie qui réveille — un déclencheur qui justifie qu'on parte en guerre maintenant et pas dans cent ans.

J'écris tout ça en français d'abord. L'anglais suit. Quatorze factions, des centaines d'unités, chacune avec son lore propre. C'est un boulot de Bénédictin, et je suis content qu'il soit fait. Le projet n'est plus un moteur de règles habillé — c'est un monde, et les batailles s'y inscrivent.

Page lore d'une faction — récit narratif riche, voix de chroniqueur

Une carte évolutive d'Aldémoros

J'ai aussi livré une carte du monde — Aldémoros, avec son éditeur visuel. Style HoMM3 assumé : biomes, routes, sites de pouvoir, fleuves, marches frontalières.

Ce n'est pas une jolie image figée. C'est un fichier de données qui définit hexes, biomes, factions territoriales, routes commerciales, foyers diffus. Je peux l'éditer, le faire évoluer au fil du jeu, marquer des batailles dessus, déplacer une frontière après une campagne.

Quand on passera en mode campagne, cette carte sera le terrain de jeu — pour l'instant elle sert de cadre lore, et chaque faction y a sa place.

Carte d'Aldémoros — biomes, routes, sites de pouvoir, foyers diffus

Deux armées prêtes pour le lancement

Décision assumée : on lance avec deux factions jouables, et douze en composition.

  • Elfes Célestes (les Astréens, peuple insulaire et stratège) — le code engine est complet, les règles spéciales gérées, le lore déployé.
  • Hordes Peaux-Vertes (Orcs, Gobelins, Trolls, Géants) — pareil, prêtes à entrer en bataille.

Les douze autres factions — Empire, Nains, Hommes-Bêtes, Sylvestrins, Veillants, etc. — ont leur lore complet, leur roster complet, leur builder fonctionnel. Tu peux composer une liste de 1500 points avec n'importe laquelle d'entre elles. Mais pour les faire entrer en bataille avec leurs règles spéciales fidèlement implémentées, il faut encore du temps. Un badge « Bientôt jouable » est affiché clairement dans le builder pour que personne ne soit surpris.

J'aurais pu attendre d'avoir les quatorze factions en bataille avant de lancer. J'aurais perdu six mois de feedback réel. Deux armées suffisent pour jouer, pour tester, pour itérer. Le reste suivra.

Personnalisation : icônes et blasons

Deux chantiers sympas, plus visibles, livrés ces dernières semaines :

Les blasons par faction

Chaque faction a maintenant un blason unique, composé via un éditeur visuel admin. Une librairie de charges héraldiques (phénix, marteau, crâne, etc.), deux couleurs, une bordure. Pas une image plaquée — une composition que je peux éditer, adapter, faire évoluer.

Les blasons des Elfes Célestes (phénix de la Maison Calandros, gueules et flammes d'or sur argent, chef azur — le ciel d'Erys, bordure or pour l'Acier Stellaire) et des Hordes Peaux-Vertes (crâne sur champ sinople/sable coupé, brut, agressif) sont déjà calés.

À terme, chaque joueur pourra composer son propre blason de bannière dans le builder.

Les icônes personnalisables

Pareil pour les icônes de règles spéciales, de phases, de statuts. Le projet en a maintenant plus d'une centaine — un set cohérent visuellement, dans la palette parchemin de l'interface, avec une logique propre (ronds pour les statuts, hexagones pour les phases, etc.). Et chaque icône est éditable, remplaçable, surchargeable par un pack utilisateur.

Le but à terme : qu'un joueur puisse personnaliser son interface — son blason, ses sprites, ses noms de listes — sans toucher au moteur.

Les phases de bataille — où on en est

Une bataille Hammerpint passe par six grandes phases. Cinq sont livrées et testées, la sixième est en chantier en ce moment.

Déploiement — livré

Le déploiement est probablement la phase qui a le plus évolué. Sept sous-phases — choix du scénario, choix des objectifs (Domination, Convois, Sites Stratégiques), placement alterné, réserves, ambusheurs, tirailleurs, vanguard. Validation server-side, halos colorés sur les zones de déploiement valides, modale de placement des personnages au moment du join.

J'en suis fier — c'est pédagogique, ça suit fidèlement les règles, et ça reste rapide à faire en match réel.

Phase de stratégie + invocation — livrée

Test de stupidité, Inspiring Presence, Hold Your Ground, Rallying Cry, rally des unités en fuite, conjuration des sorts. Sélection de sort dans une UI dédiée — liste des sorts dispo, cercle de portée sur la minimap, prompt de dispel pour l'adversaire, réactions du chroniqueur, dés visibles à chaque tirage. Les huit lores sont implémentées (56 sorts), les miscasts gèrent leur tableau de conséquences propre.

Phase de mouvement — livrée

Drag direct sur l'unité (corps = avance, coins = wheel), ghost outlines des positions finales prédites, collision client/serveur synchronisée, boutons ±15° pour la roue, manœuvres complètes (avance, wheel, recul, demi-tour, reform, pas de côté, redress). Toutes les règles spéciales gérées : Scouts, Vanguard, Drilled, Strider, Fly(X).

Phase de charge — livrée

Déclaration → Réaction → Résolution → Redirection. Modale de prévisualisation, détection d'arc (front/flanc/arrière), arrows multi-charges, contact accidentel, give ground. La charge est probablement la phase la plus complexe du jeu, et elle tient debout.

Phase de tir — livrée

BS → wound → saves → casualties → panic. Volley fire, huit profils d'armes, neuf types de machines de guerre (canons, balistes, mortiers, organ guns…), templates et scatter, deux tableaux de misfire, grapeshot. Vingt-trois règles spéciales d'armes implémentées.

Phase de combat (corps-à-corps) — en chantier en ce moment

C'est là que je suis. Et j'y suis depuis longtemps. Le corps-à-corps est la phase la plus chargée du jeu. Initiative-step par initiative-step, charge-bonus, impact hits, stomp, défis, regard de Look Out Sir, poursuites, débordements, combats multiples, allocation des attaques par batch (champion, R&F, persos joints), saves par modèle, casualties par rang, résolution de combat, break test, fuite, poursuite, débordement.

Le moteur tourne. La majorité des règles est implémentée. Ce qui m'a bouffé du temps, c'est l'UI — comment exposer cette complexité sans noyer le joueur, sans surenchère de modales, sans cacher les vraies règles derrière une boîte noire.

Le chantier qui m'a bouffé : l'allocation des attaques

Voilà plusieurs semaines que cette modale « Répartir les attaques » m'horripile. Elle était clunky — dialogue qui surgissait à chaque tour, pas intuitive, et surtout elle cachait les vraies règles : la grille de contact, les multi-arcs, les flancs, les cas limites. Toilettage qui traînait.

Du coup, j'ai refait tout ça.

L'allocation n'est plus une modale. C'est un strip persistant, un tableau au-dessus du log, qui affiche chaque batch d'attaques — un attaquant qui frappe un défenseur. Tu vois le figurant avec son rôle iconographié, ses stats avec les modifs appliquées, et un bouton pour choisir le défenseur.

Si tu cliques sur une stat modifiée, le système te propose du help IA : « pourquoi cette stat ? », avec la règle en français. C'est pédagogique — tu sais pas juste qu'il y a un malus, tu sais pourquoi.

Mais ce qui m'a bouffé le plus de temps, c'est la grille contact. Un arc d'attaque détermine qui peut être défenseur. Une charge peut toucher 2+ unités en config « sided ». C'était codé correctement, mais tu ne le voyais pas — tu devais juste faire confiance au système. Là, une grille inline montre les défenseurs dispo par arc, et la géométrie derrière. C'est l'une des parties les plus exigeantes des règles, enfin visible.

L'ancienne modale « Répartir les attaques », c'est du passé. Elle était redondante.

Atelier d'armée — Elfes Célestes, onglet Base : Lanciers, Archers, Garde Côtière, Éclaireurs, Cavaliers Argentés

La suite

Ce qui reste avant le lancement public :

  • Finir la résolution de combat — encore quelques cas limites sur les multi-combats et les défis empilés.
  • End phase — fin de tour, score VP, victoire/défaite, génération du chronicle de bataille.
  • Polish UI — quelques modales encore à harmoniser, notamment la fenêtre de fin de bataille.
  • Tests E2E — un parcours Playwright complet par faction (composer 1500pts → lancer bataille → jouer un tour complet).

Une fois ça en place, on bascule en bêta fermée.

Et après ? La couche RPG (traits, scars, items légendaires, grudges, réputation), le mode campagne, l'IA d'opposant persistante. C'est dans le pipe, c'est documenté, c'est pas pour demain mais c'est pas non plus l'horizon vague.

Si tu veux suivre tout ça, tu peux t'inscrire à la liste d'attente. À très vite.

Suivre la forge
Chaque pleine lune, un nouveau carnet.

Inscrivez-vous à la waitlist pour recevoir les notes de forge par courrier impérial, et être parmi les premiers à lever bannière.

✉ Rejoindre la waitlist