SiloBlock
Un mode de jeu pour serveurs Minecraft : chaque île est un silo dont on fore les étages vers le bas.
En bref
Douze étages à forer, une économie commune, un classement. Le projet m’a servi à travailler un cœur de règles qui se teste sans la plateforme qui l’héberge, et un équilibrage qui se démontre par des tests.
- Nature
- Projet personnel, extension pour la plateforme BentoBox
- État
- En développement. Diffusion gratuite prévue après une phase de test
- Rôle
- Tout : conception du jeu, code, outillage, documents
- Pile
- Java, Gradle en Kotlin DSL, JUnit 5, Python pour l’outillage
- Volume
- 98 commits en trois semaines, environ 22 000 lignes
- Code
- Dépôt privé
Mots-clésJava · Gradle · Kotlin DSL · JUnit 5 · architecture hexagonale · ports et adaptateurs · tests unitaires · modèle d’économie · Minecraft · Paper · BentoBox · Python · génération de PDF



Comment c’est fait
- silo-core, le moteurétages, paliers, économie : Java pur, testé sans serveur
- Des portséconomie, pose de blocs, île
- silo-bentobox, l’adaptateurbranche le moteur sur la plateforme
- Le serveur de jeu
Ce que j’ai décidé
Un moteur qui ignore la plateforme
- Retenu
- Deux modules : les règles en Java pur, et un adaptateur qui les branche sur le serveur.
- Écarté
- Tout écrire contre l’API de la plateforme.
Un moteur lié à la plateforme ne se teste qu’avec un serveur lancé. Séparé, il tourne en test en quelques secondes.
L’équilibrage est un test
- Retenu
- Le modèle d’économie dérive les prix du plan des étages, et des tests en vérifient les propriétés.
- Écarté
- Régler les prix à la main, au ressenti.
Un test dit par exemple que la descente dure quarante-neuf heures quels que soient les prix. Si un réglage casse cette propriété, le build échoue. Les tests sont nommés par des phrases françaises qui énoncent la règle.
Le document suit le jeu
- Retenu
- Un cahier de plans de 18 pages généré depuis les données du jeu.
- Écarté
- Rédiger le document à part.
Tout ce qui est chiffré vient du fichier des étages, du modèle d’économie et des plans, et le cahier se régénère à chaque changement du jeu.
- La version de Java tranchée par un fait : la plateforme est publiée pour Java 25, donc tout serveur qui la fait tourner l’a déjà. Le moteur, lui, reste compatible Java 21.
Ce qui a été éprouvé
- Un prototype jouable avant toute architecture : le forage, l’enchaînement et le rythme ont été validés en jouant.
- Un banc d’essai séparé pour l’outil qui pose les blocs, avec son protocole de mesure.
- Des textures de 16 pixels générées par un script sans dépendance, à partir de dessins en caractères.
Outils
- Java, avec une chaîne de compilation qui télécharge son propre JDK.
- Gradle multi-module, JUnit 5 : onze classes de tests.
- Python pour le cahier de plans, rendu en PDF par un navigateur sans interface.
Ce que ça prouve
Que je sais sortir de mon terrain habituel, poser une architecture qui isole les règles de la plateforme, et faire porter une exigence de conception par des tests.