Le problème
Warframe compte des milliers d'objets et une formule de dégâts aux dizaines de multiplicateurs. Les joueurs préparent leurs builds dans des tableurs ou des calculateurs opaques, vite obsolètes et souvent contradictoires. Je voulais un outil où chaque chiffre remonte à sa source et à sa version du jeu.
Ce que j'ai construit
Une application Next.js 16 dans un monorepo Turborepo, appuyée sur quatre paquets purs : game-data récupère, analyse et valide les données du jeu pour chaque version ; loadout porte le modèle de build et ses règles (capacité, polarités, conflits) ; calc est le moteur de dégâts ; api-schema décrit l'API en schémas zod. Le site parcourt warframes, armes, compagnons et mods, compose un équipement complet ou un seul objet et simule les dégâts des armes et des pouvoirs. Une API Fastify et Drizzle sur Postgres ajoute la connexion via Discord, Google ou Steam, la synchronisation du compte, des builds publiés liés à une version du jeu, les likes et les commentaires. L'illustration d'accueil est un dessin three.js de ma main, pas un élément du jeu.
Défis techniques
- Des sources contradictoires. Le pipeline fusionne l'export public du jeu, une base d'objets communautaire et les modules de données du wiki. Chaque désaccord est consigné dans un registre : ce qui diverge, ce qui est livré en attendant, et comment trancher.
- Des noms en double. Trois mods s'appellent « Serration » : seul l'identifiant interne du jeu sert de clé.
- L'ordre compte. Les effets des mods dépendent les uns des autres. Chaque mod est un fichier de « lignes » exécutées en une passe ordonnée, ce qui permet d'afficher base et valeur configurée côte à côte, étape par étape.
- Des formules traitées comme des données. Les calculateurs de pouvoirs du wiki sont écrits dans leur propre mini-langage : j'ai porté son interpréteur en TypeScript plutôt que de recopier des centaines de formules.
Résultat
Simaris Labs est ouvert au public depuis le 10 novembre 2026 sur simarislabs.com (s'ouvre dans un nouvel onglet), le site et l'API tournant comme deux services distincts sur Railway. Neuf phases de la feuille de route ont d'abord été livrées, de la plateforme de données à trois créateurs distincts (au sol, Archwing et Necramech, Railjack). Les données suivent la version 44.1.4.1 du jeu, et plus de 160 fichiers de tests protègent parseurs et formules.





