Cela fait longtemps que Fortuna lance les dés, gère les pièces et fait tourner les campagnes sur les serveurs Discord. En coulisses, pourtant, le bot était devenu un seul gros programme qui jonglait avec tout à la fois — et les coutures commençaient à craquer. Nous avons donc fait ce que tout projet de longue haleine finit par affronter : nous l'avons reconstruit de fond en comble.
Le nouveau Fortuna répond plus vite, tient mieux la charge, est plus facile à améliorer pour nous et prêt à grandir avec votre table. La majeure partie de ce travail s'est déroulée dans des endroits que vous ne verrez jamais, et c'est précisément le but. Mais les résultats, eux, se font sentir partout où vous l'utilisez vraiment. Voici l'histoire complète de ce qui a changé et de ce que cela implique.
Le Fortuna d'origine reposait sur un schéma classique : un bot qui maintient une connexion permanente et toujours ouverte vers Discord — ce que Discord appelle la gateway — et qui écoute tout ce qui se passe sur chaque serveur où il est présent, en permanence. Pour absorber la charge à mesure que le bot grandissait, cette connexion était découpée en plusieurs copies parallèles, appelées shards, chacune étant un processus distinct qu'il fallait surveiller, redémarrer et maintenir en bonne santé.
Ça fonctionne, et ça a fonctionné pendant des années. Mais cela a un coût bien réel. Un bot connecté en permanence consomme toujours de la mémoire et conserve un état, même quand personne ne tape de commande. Chaque serveur, chaque salon et chaque membre qu'il pouvait voir alourdissait l'ensemble. Quand un shard avait un hoquet, c'est tout un pan de serveurs qui pouvait le ressentir. Et chaque nouvelle fonctionnalité devait être glissée avec soin dans un programme qui faisait déjà douze choses à la fois.
Nous voulions quelque chose de plus léger. Quelque chose qui fait le travail quand il y a du travail, qui reste discret quand il n'y en a pas, et qui est bâti à partir de petites pièces que l'on peut corriger ou faire monter en charge une par une.
Les bots Discord modernes disposent d'une meilleure option pour les commandes : au lieu de garder une connexion ouverte en attente, le bot peut laisser Discord l'appeler uniquement quand quelqu'un utilise réellement une commande slash. Discord empaquette la commande, l'envoie sous la forme d'une unique requête web sécurisée, et le bot répond. Pas de connexion permanente, pas de poids à vide. Quand il ne se passe rien, le bot ne consomme presque rien.
C'est le cœur de la nouvelle conception. Nous avons scindé l'ancien monolithe en deux pièces bien ciblées :
Imaginez un restaurant. L'ancien Fortuna, c'était un cuisinier débordé qui essayait de prendre les commandes, de gérer la salle et de tenir la cuisine en même temps. Le nouveau Fortuna dispose d'une cuisine qui s'allume instantanément dès qu'une commande arrive (fortuna-http) et d'un seul hôte attentif à l'entrée, à l'affût des clients de passage (fortuna-gateway). Chacun fait bien son travail, et aucun ne ralentit l'autre.
Les discussions d'architecture, c'est bien, mais voici ce que vous allez réellement constater sur votre serveur.
Des réponses plus vives. Parce que le cœur des commandes ne fait qu'une chose et ne traîne aucun poids mort, il répond rapidement et de façon régulière. Une commande a moins de choses devant elle pour patienter.
Une meilleure fiabilité. Les deux pièces sont indépendantes. Si l'assistant de jets en chat a besoin d'un redémarrage, vos commandes slash continuent de fonctionner sans le moindre accroc. Les problèmes restent contenus au lieu de se propager à tout le bot.
Plus stable sous pression. Un cœur de commandes sans état ne s'alourdit pas à mesure que les serveurs et les joueurs s'accumulent. Les soirées chargées se comportent bien plus comme les soirées calmes.
Des améliorations plus rapides. Avec un cœur propre et modulaire, nous pouvons ajouter et corriger des fonctionnalités sans tout perturber autour. Les nouvelles commandes s'intègrent proprement, ce qui veut dire que les mises à jour vous parviennent plus tôt.
Une reconstruction, c'est aussi l'occasion de livrer les choses que nous voulions ajouter depuis un moment. Le nouveau Fortuna apporte un lot conséquent de fonctionnalités :
/lc pour les membres et /mod_lc pour que les modérateurs gèrent les soldes. Récompenses et rangs restent cantonnés à votre communauté./config rassemble les réglages propres à chaque serveur au même endroit, pour que chaque communauté puisse ajuster Fortuna à sa manière de jouer./handouts dédié, comme toute bonne table virtuelle devrait le permettre./checkin facilite le pointage des présences et aide à garder le groupe sur les rails.Tout cela vient s'ajouter à ce que Fortuna a toujours bien su faire : des jets de dés riches (à la fois via les commandes slash et en tapant les jets directement dans le chat), la récompense quotidienne, les rangs, la boutique, et le reste.
L'une des plus grandes améliorations du quotidien est directement intégrée au nouveau cœur : la localisation complète. Fortuna parle désormais toutes les langues de Discord — plus de trente locales — et il choisit automatiquement la bonne selon les réglages Discord de chaque utilisateur. Noms de commandes, descriptions et réponses arrivent dans la langue du joueur, avec une chaîne de repli sensée pour que personne ne se retrouve jamais devant une traduction manquante. Que votre table joue en portugais, en anglais, en espagnol, en français, en japonais ou dans n'importe quelle autre langue, Fortuna rejoint chacun là où il est.
Si vous aimez les détails techniques, voici quelques-uns des choix dont nous sommes fiers — et vous pouvez sauter cette section sans crainte si ce n'est pas votre tasse de thé.
Chaque requête de commande venant de Discord est vérifiée cryptographiquement à l'aide de signatures Ed25519 avant que Fortuna n'agisse, de sorte que le bot ne répond jamais qu'à des requêtes authentiques et non altérées. Le cœur des commandes tourne sur Bun avec le framework léger Hono ; l'assistant de jets en chat est un petit programme Go compilé statiquement qui reste au repos avec une empreinte minuscule. Les deux sont livrés sous forme d'images conteneurisées et propres, ce qui rend les déploiements rapides et reproductibles. Et nous avons branché une vraie supervision des erreurs : quand quelque chose tourne mal, nous en sommes informés et pouvons corriger rapidement — tout en veillant à ne jamais journaliser la moindre donnée sensible.
Le moteur de dés partagé est le même calcul éprouvé qui alimente nos autres outils : un jet veut dire exactement la même chose, que vous le fassiez sur Discord ou n'importe où ailleurs dans l'écosystème.
Rien de tout cela ne change l'esprit de Fortuna. C'est toujours le bot sympathique qui lance vos dés et garde votre campagne bien organisée. Ce qui a changé, c'est la fondation en dessous : plus légère, plus stable, et conçue pour que nous puissions continuer à l'améliorer sans jamais vous gêner.
Ajoutez Fortuna à votre serveur, essayez les nouvelles commandes, et dites-nous ce que vous aimeriez voir ensuite. Les dés sont prêts quand vous l'êtes.