Développement d’un mod pour Minecraft 1.21.1, construit sur Forge
Technologies : Java, JSON, Gradle, Forge MDK 1.21.1, IntelliJ IDEA
Réalisation : Juin 2025 – aujourd’hui
Contexte : Projet personnel
Lien : https://github.com/Eljireh/explohorses

Contexte :
Amateur de modding Minecraft, j’avais déjà essayé de créer un mod en 2020, intitulé « Slime Stuff », pour la version 1.12.2, via l’interface MCreator.
Je n’avais alors presque aucune compétence en développement et m’étais retrouvé bloqué par la personnalisation en Java.
En été 2025, j’ai voulu réessayer de créer un mod Minecraft, cette fois-ci en programmant le mod plutôt qu’en utilisant un logiciel générateur.
Objectif :
L’objectif était de créer un mod Minecraft qui serait publié.
Les fonctionnalités principales à implémenter dans le mod sont de nouveaux chevaux Minecraft qui explosent.
Processus :
J’ai configuré IntelliJ IDEA pour fonctionner avec Gradle, écrit des méthodes récurrentes (comme l’ajout des objets au menu du mode créatif), écrit les classes pour chaque objet et, lorsque nécessaires, les fichiers de propriétés et créé un programme pour générer les fichiers de spécification JSON automatiquement.
J’ai également dessiné les objets.
J’ai travaillé seul, m’aidant d’un tutoriel.
L’intégralité du mod est en Java, programmé avec IntelliJ IDEA et construit par Gradle.
Les fichiers comprenant les données des ajouts du mod sont en JSON.
La décompilation est faite via Mod Coder Pack et l’enregistrement des entrées via Forge Mod Developer Kit 1.21.1.
Je n’ai pas recours à une méthode particulière dans ce projet.
J’écris mes idées sur un fichier .txt, séparant les ajouts essentiels au mod des idées de fonctionnalités bonus.
Aussi, au cours du développement, j’ai noté plusieurs remarques concernant le code lui-même.
Architecture :
Le projet comprend beaucoup de fichiers et dossiers de configuration que Forge MDK gère automatiquement.
J’ai cependant effectué quelques modifications dans gradle.properties, afin d’imposer une version spécifique à mon mod et afin de lui donner un nom.

Mon travail se focalise sur le dossier « src », plus précisément « src/main ».
Dedans se trouvent les dossiers « java », contenant l’intégralité du code du mod, et « resources », contenant l’intégralité des fichiers audios, photos et JSON.


Accomplissements :
Voici ce que j’ai pu ajouter jusque-là :
– Objets (Amétrine, Peau Éraflée, Carotte Ferreuse, Nitro Chevaline)
– Blocs (Bloc d’Amétrine, TNT Chevaline, Porte en Amétrine)
– Outil (Briquet en Amétrine)
– Armure (Chapeau/Tunique/Pantalon/Bottes en Peau)
– Musique et CD (« Look At My (Clean) Horse »)
Difficultés :
J’ai rencontré plusieurs difficultés :
– La TNT Chevaline utilise un modèle de texture différent des autres blocs et je n’ai pas pu faire générer automatiquement ses fichiers JSON.
Je les ai donc écrits manuellement.
– Je suis actuellement en train de créer de nouveaux chevaux, mais cela demande des modèles 3D et des modifications via Blockbench, un logiciel spécialisé.
J’ai publié sur GitHub toutes mes avancées.
Je n’ai pas encore fait d’annonce concernant le mod.
Ce que j’ai appris :
Ce projet m’a permis d’apprendre beaucoup.
Premièrement, j’ai appris la différence fondamentale entre Forge, NeoForge et Fabric, qui sont les trois principaux constructeurs de mods Minecraft.
Ci-dessous un graphique que j’ai réalisé afin d’expliquer comment un projet Forge est compilé en session de test du mod.

Deuxièmement, j’ai appris plusieurs détails de Java, comme son typage obligatoire.
Enfin, j’ai appris à me servir d’IntelliJ IDEA et de Gradle.