À l'approche de 2026 et du lancement de la campagne narrative, je me suis dit que je pourrais vous proposer un récit un peu différent. Depuis que j'ai commencé à parler de ce projet en ligne, plusieurs questions m'ont été posées régulièrement : certaines portaient sur l'aspect technique de 40k.gg, d'autres portaient davantage sur la démarche créative de cette initiative. J'ai toujours aimé partager mes passions, « donner les billes » à ceux qui le souhaitent pour qu'ils puissent ressentir le même plaisir que celui que je ressens dans ce que je fais, mais c'est parfois compliqué de résumer les choses à quelques phrases au détour d'une rapide conversation. Donc aujourd'hui, je mets tout ça à plat, et si choses-là vous intéressent, permettez-moi de vous détailler et imager la naissance de 40k.gg !
Préface : blâmer Rocko
Avant de rentrer dans le vif du sujet, je me dois de pointer du doigt l'ami qui m'a bien involontairement fait plonger corps et âme dans ce projet d'envergure. Il y a quelques années, et après une décennie de hiatus en ce qui me concerne vis-à-vis de Warhammer, j'avais une conversation tout à fait anodine avec mon ami Rocko. Je ne sais plus exactement comment, mais nous en venons à évoquer Warhammer. Je lui explique que j'étais très fan de tout ça avec mes cousins et amis d'enfance. Il répond la même chose, puis évoque la chute de Cadia. Incrédule, peut-être même « sous le choc », je lui demande ce qu'il entend par là. La conversation dérive donc sur tous les développements modernes du setting : la Grande Faille, le retour du Primarque, etc.
Complètement ébêté par tout ce qu'il me raconte, je me replonge dans cet univers fascinant, et en particulier sur ce « lore moderne ». Je retrouve tout ce qui me faisait rêver à l'époque, et plus encore : la richesse narrative, les bouleversements cosmiques, le côté excessif qui me fait tant ricaner ... Je ressors mes vieux livres, et recommence à me procurer suppléments et romans, pour me laisser happer totalement.
1. Battle for Oghram & souvenirs des White Dwarf
À la sortie de la dixième édition de Warhammer 40,000, Games Workshop lance la campagne « Battle for Oghram » — un site web où les joueurs peuvent enregistrer leurs parties et voir l'évolution globale du conflit. Ça me rappelle immédiatement les campagnes que je suivais dans les pages du White Dwarf, notamment la légendaire campagne de l'Œil de la Terreur.
Je trouve l'initiative formidable. Mais, et il s'agit sans doute d'une déformation professionnelle, je ne peux m'empêcher de penser que le support pourrait être plus immersif, plus ... vivant. Je commence à rêver de quelque chose à mi-chemin entre ce site et un jeu vidéo : une expérience où l'on pourrait véritablement voir l'état d'un système stellaire évoluer, voir les joueurs partout s'approprier l'histoire, avoir l'impression que cette dernière s'écrit sous nos yeux.
En parallèle, et là encore il s'agit d'une déformation professionnelle, je vois par hasard que le nom de domaine 40k.gg est disponible. Court, percutant et, je trouve, assez marrant. Je l'achète sans trop savoir ce que j'en ferai, avec cette intuition qu'il pourrait servir un jour.
2. L'excuse parfaite pour apprendre WebGL
Je suis ingénieur logiciel, orienté front-end. Ma façon de faire ma « veille technologique », c'est-à-dire me renseigner sur les pratiques et technologies actuelles et, si nécessaire, de m'y former, c'est de me lancer dans des projets personnels : j'ai par exemple par le passé créé des outils de production vidéo pour la communauté compétitive de Halo. Or, depuis des années, je souhaitais me former à WebGL et aux technologies 3D pour navigateurs web, sans jamais trouver l'opportunité de le faire dans un cadre professionnel. Si je voulais pouvoir proposer ce genre de solutions dans mon travail, il fallait d'abord que je me forme de mon côté.
Le concept de 40k.gg prend alors forme dans ma tête, même s'il en est à l'état de plan sur la comète : une planète en 3D que l'on peut examiner sous tous les angles, découpée en zones où les joueurs pourraient enregistrer leurs batailles. L'idée n'est pas de créer un jeu à part entière, mais un compagnon au jeu de plateau — quelque chose de simple, de fun, pour du narratif engageant.
Si je suis aujourd'hui très à l'aise pour réaliser la façade de sites web, je ne suis pas graphiste ou illustrateur, je me mets donc en quête d'inspiration en écumant le web. Je tombe assez rapidement sur un concept de Trevan Crowe qui me fascine. Ce design devient mon point de départ, à moi d'imaginer la suite.
"Sci-fi Website Concept" par Trevan Crowe sur Dribbble
3. Sous le capot : une architecture 'économique' mais complète
Pour ce projet, je décide d'adopter une démarche prudente, de prendre mon temps. Je commence donc par rédiger des spécifications purement fonctionnelles assez précises pour démarrer sur une base solide, mais suffisamment souples pour m'adapter en cours de route. Je prends des notes, fait quelques recherches, et souhaite vraiment partir sur une solution qui serait un « compagnon » au jeu de plateau, et non un 'superset de règles' ou quelque chose de contraignant.
Une fois que je suis satisfait de l'état de ces spécifications, je m'attaque à l'architecture technique. Comme il s'agit d'un projet personnel, je ne suis même pas certain de le présenter publiquement à ce moment-là. En revanche, je sais que si je dois rendre cette solution disponible à la communauté, il devra s'agir d'une solution entièrement gratuite ... Donc à mes frais ! Je prends assez tôt en considération le fait que cette solution devra être économique pour moi.
Le développement s'étale sur plusieurs mois, quelques soirées çà et là, entrecoupé de pauses parfois longues. Il faut dire qu'entre-temps, j'ai cherché puis trouvé une nouvelle maison, demandé ma compagne en mariage, enfin des évènements un peu plus importants que « faire des jolies planètes » ! Mais peu à peu, la solution prend forme :
Je vais un peu m'étaler sur l'aspect technique ici, donc ce paragraphe risque d'être une succession d'acronymes et autres noms bizarres, mais : la solution est hébergée sur un petit VPS (Virtual Private Server) que j'administre. Le sysadmin n'est pas mon domaine de prédilection, mais j'en sais suffisamment pour être relativement paranoïaque et faire extrêmement attention à la sécurisation du serveur ! L'écosystème de 40k.gg repose lui-même sur une infrastructure Docker orchestrée par Traefik en reverse-proxy, notamment parce que j'apprécie l'automatisation de l'émission des certificats par Traefik, et combiné à Docker, les capacités de load-balancing permettent simplement et si nécessaire une mise à l'échelle. Le cœur applicatif est un serveur NodeJS et le framework Nuxt que je trouve pratique pour gérer plein de choses dont j'ai besoin : la logique de jeu, l'API, l'internationalisation, le rendu du site (côté serveur et la distribution des éléments pour le rendu côté client), les jobs périodiques, en-têtes de sécurité et tokens CSRF, etc. Côté données, j'ai choisi une base de données MariaDB car j'accorde de l'importance à la garantie de la cohérence des données, ce en quoi une bonne base de données relationnelle excelle, et MariaDB est une solution qui a largement fait ses preuves. Là où les BDD relationnelles excellent un peu moins, c'est en termes de performances, et pour cette raison je lui ai adjoint Redis en guise de cache, pour les données qui pourraient être assez constamment demandées par les utilisateurs (comme l'état des zones) et lui éviter de se faire bombarder de requêtes rapides. Un back-office séparé, également en Nuxt, permet l'administration et le contrôle du déroulement de la campagne.
Le client de jeu, lui, est une Progressive Web App (un site qui peut être installé comme une application) enrichie de Three.js pour la gestion de WebGL. La dimension « temps réel » est gérée en WebSockets, même si, rétrospectivement, de simples Server-Sent Events (SSE) auraient sans doute suffi. Comme une solution en 3D peut exiger des assets un peu lourds à charger, j'ai opté pour utiliser Cloudflare en tant que Content Delivery Network (CDN) (et en tant que protection contre certaines attaques de type DDoS).
Je peux mentionner que le tout est déployé automatiquement par GitHub Actions (en suivant les processus typiques de Git Flow).
Le choix de chaque brique a été guidé par un principe : fournir solution complète, sur une architecture simple à moduler et maintenir pour une personne seule (moi), sans que ça coûte un bras pour autant. Pas de sur-engineering, mais pas de compromis non plus : je me fais plaisir et veut proposer quelque chose de chouette !
Ouf, rassurez-vous on en a fini avec le charabia technique !
4. La communauté entre en scène
Quand je commence à parler du projet sur Reddit, c'est d'abord pour trouver des beta testeurs. La réponse dépasse mes attentes : plusieurs joueurs et joueuses se portent volontaires, ce qui est d'une générosité fabuleuse déjà, mais en plus ils m'apportent des suggestions auxquelles je n'avais pas pensé : ajouter un système de « party » pour les groupes d'amis qui gèrent des croisades ensemble par exemple, ou encore enrichir le « fluff » en nommant les régions des planètes, par exemple. Autant d'idées qui ont rendu la chose infiniment plus riche que ce que j'avais envisagé seul !
5. Puiser dans l'histoire locale pour créer un récit aux dimensions galactiques
À l'origine, je pensais déléguer l'écriture du lore à quelqu'un de plus compétent que moi. Mais peu à peu, je m'y suis attelé moi-même, avec l'envie d'apporter une « saveur » particulière à cette campagne.
L'inspiration est venue d'un endroit inattendu : ma nouvelle maison. En emménageant dans un coin très rural que je ne connaissais que très peu en Nouvelle-Aquitaine, j'ai entamé pour m'amuser quelques recherches sur l'histoire locale. Outre le fait que ces recherches m'ont accidentellement conduit à découvrir l'emplacement d'une ancienne motte castrale dans un bois en consultant des données LiDAR fraîchement rendues publiques (c'est une histoire pour une autre fois), j'ai surtout appris que les noms de hameaux, de parcelles et autres lieux-dits sont de remarquables témoins d'une histoire fabuleusement riche, et d'une grande créativité des habitants en tout temps. Au-delà de ça, il faut savoir que ce coin a énormément souffert des guerres de religion, et c'est peut-être ce dernier point qui a créé un rapprochement dans mon esprit avec l'univers de Warhammer 40,000.
Ainsi, j'ai créé des ressources pour systématiser cette démarche. Vous pouvez trouver l'ensemble de « l'étymologie » ou l'origine des noms de région d'Ulmyllon ici. En guise d'anecdotes, vous trouverez ci-après quelques screenshots, mais j'ai envie de m'attarder un cas un peu à part et stupide, mais qui me fait rire et qui, pour moi, n'est pas sans rappeler l'ironie et l'humour qu'on trouve depuis toujours dans ce setting pourtant si grimdark : en scrutant les cartes à la recherche de noms d'endroits qui m'inspireraient, je tombe sur « St. Epur. » et m'interroge. En effet, pour ceux qui ne le sauraient pas, les noms de lieux à base de « Saint Machin », souvent abrégé « St Machin », foisonnent absolument partout par ici. Habitué à cet état de fait, je me dis « Épur ? C'est quoi ce nom ? » ... Avant de réaliser qu'il s'agit de l'abréviation de Station d'Épuration. L'ironie de ce « brain fart » comme disent les anglo-saxons était trop belle pour ne pas en faire quelque chose : Saint Epur devient un marécage pestilentiel où l'Imperium s'obstine à chercher des reliques, incapable d'accepter qu'un lieu aussi vil puisse porter le nom d'un saint, même oublié.
Le patois local, le Poitevin, offre lui aussi des trésors. Bredasson, « celui qui se mêle de tout », était prédestiné à devenir un nom d'Inquisiteur. Brass-borné, le maladroit, sonne comme le sobriquet d'un enfant de bourgeois arrogant. Fisson, qui désigne la langue fourchue du serpent, conviendra parfaitement à un personnage à la langue de vipère. Je vous mets un petit extrait de ce glossaire que je me suis constitué mais n'en publie pas l'intégralité : il contient encore des éléments narratifs à venir, et certains secrets cachés sur le site que je préfère ne pas spoiler !
6. Et maintenant ?
40k.gg est aujourd'hui fonctionnel, et la campagne est prête à démarrer notamment grâce à la petite communauté de testeurs qui m'a si généreusement aidé. Le projet continuera bien sûr d'évoluer, au fil des batailles des participants.
Si vous organisez des campagnes narratives et cherchez un compagnon numérique pour donner vie à vos conflits, n'hésitez pas à jeter un œil. Et si vous voulez contribuer, que ce soit par des tests, des idées ou du fluff, les portes seront toujours ouvertes !
En vous souhaitant de joyeuses fêtes de fin d'année, ou devrais-je dire un Joyeux Sanguinala,
Tepec