Résolveur Satisfactory
·Je suis devenu accro à Satisfactory durant l’Update 3.
Qui aurait pu deviner que j’aimerais un jeu où il faut optimiser des workflows et créer des systèmes parfaitement balancés?
J’ai essayé oh combien de fois de construire une feuille Excel générique pour calculer diverses options d’usines rapidement. Je voulais qu’elles soient les plus efficientes possible et qu’elles soient les plus rentables possible.
Plusieurs outils sont disponibles en ligne pour faire exactement cela, et même plus. Satisfactory Calculator est un exemple populaire.
Cependant, je le percevais comme étant de la triche. Je voulais jouer au jeu, avoir l’expérience complète, et cela signifiait faire toutes les maths par moi-même.
Mais, si je fais un programme qui calcule les maths, alors je fais toutes les maths par proxy! C’est ce projet.
Présentation
La figure suivante conçoit une usine de “Modular Frame” générant 60 items par minute.
Un exemple d’usine de Modular Frame
L’application affiche certaines informations utiles de la manière suivante.
Symbole | Signification |
---|---|
Bordures bleues | Un surplus de production |
Bordures rouges | Un déficit d’entrées |
Nombres sur les noeuds | Le nombre de machines requises |
Nombres sur les arêtes | Combien d’items intermédiaires allant de A vers B |
Elle permet de comparer plusieurs designs d’usine et d’évaluer lequel est meilleur dans une situation donnée.
Comparaison de plusieurs variations d’usine de vis
L’application gère également les cycles gracieusement, utilisant les produits avant de requérir plus d’entrées (tel que vu avec l’exemple de l’eau dans la figure suivante).
Gestion des cycles d’items
Motivations
- C’est un challenge intéressant.
- Je voulais me pratiquer dans l’utilisation de graphes en tant que structure de données.
- Mon tableau balnc était plein de calculs et je voulais l’utiliser pour autre chose.
Stack technique
Les items et les recettes sont scraped du Wiki en utilisant un script Node personnalisé.
L’application est conçue en utilisant React et se base largement sur React Flow pour gérer les saisies utilisateur.
Elle est disponible via GitHub Pages.
Tout est codé avec TypeScript.