{"id":292,"date":"2026-01-20T18:26:13","date_gmt":"2026-01-20T17:26:13","guid":{"rendered":"http:\/\/feypkps.cluster121.hosting.ovh.net\/?page_id=292"},"modified":"2026-05-15T15:14:28","modified_gmt":"2026-05-15T13:14:28","slug":"explosive-horses","status":"publish","type":"page","link":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/explosive-horses\/","title":{"rendered":"Explosive Horses"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-6fa16fb6 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<p class=\"wp-block-paragraph\">D\u00e9veloppement d&rsquo;un mod pour Minecraft 1.21.1, construit sur Forge<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Technologies :<\/strong> Java, JSON, Gradle, Forge MDK 1.21.1, IntelliJ IDEA<br><strong>R\u00e9alisation :<\/strong> Juin 2025 &#8211; aujourd&rsquo;hui<br><strong>Contexte : <\/strong>Projet personnel<br><\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"315\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/04\/image-1.png\" alt=\"\" class=\"wp-image-892\" style=\"width:594px;height:auto\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/04\/image-1.png 724w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/04\/image-1-300x131.png 300w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Contexte :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Amateur de modding Minecraft, j&rsquo;avais d\u00e9j\u00e0 essay\u00e9 de cr\u00e9er un mod en 2020, intitul\u00e9 \u00ab\u00a0Slime Stuff\u00a0\u00bb, pour la version 1.12.2, via l&rsquo;interface MCreator.<br>Je n&rsquo;avais alors presque aucune comp\u00e9tence en d\u00e9veloppement et m&rsquo;\u00e9tais retrouv\u00e9 bloqu\u00e9 par la personnalisation en Java.<br>En \u00e9t\u00e9 2025, j&rsquo;ai voulu r\u00e9essayer de cr\u00e9er un mod Minecraft, cette fois-ci en programmant le mod plut\u00f4t qu&rsquo;en utilisant un logiciel g\u00e9n\u00e9rateur.<\/p>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Objectif :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;objectif \u00e9tait de cr\u00e9er un mod Minecraft qui serait publi\u00e9.<br>Les fonctionnalit\u00e9s principales \u00e0 impl\u00e9menter dans le mod sont de nouveaux chevaux Minecraft qui <strong>explosent<\/strong>.<\/p>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Processus :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai configur\u00e9 IntelliJ IDEA pour fonctionner avec Gradle, \u00e9crit des m\u00e9thodes r\u00e9currentes (comme l&rsquo;ajout des objets au menu du mode cr\u00e9atif), \u00e9crit les classes pour chaque objet et, lorsque n\u00e9cessaires, les fichiers de propri\u00e9t\u00e9s et cr\u00e9\u00e9 un programme pour g\u00e9n\u00e9rer les fichiers de sp\u00e9cification JSON automatiquement.<br>J&rsquo;ai \u00e9galement dessin\u00e9 les objets.<br>J&rsquo;ai travaill\u00e9 seul, m&rsquo;aidant d&rsquo;un <a href=\"https:\/\/www.youtube.com\/watch?v=eFofdJ1BYYs&amp;list=PLKGarocXCE1GspJBXQEGuhazihZCSSLmK\">tutoriel<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;int\u00e9gralit\u00e9 du mod est en Java, programm\u00e9 avec IntelliJ IDEA et construit par Gradle.<br>Les fichiers comprenant les donn\u00e9es des ajouts du mod sont en JSON.<br>La d\u00e9compilation est faite via Mod Coder Pack et l&rsquo;enregistrement des entr\u00e9es via Forge Mod Developer Kit 1.21.1.<br><br>Je n&rsquo;ai pas recours \u00e0 une m\u00e9thode particuli\u00e8re dans ce projet.<br><br>J&rsquo;\u00e9cris mes id\u00e9es sur un fichier .txt, s\u00e9parant les ajouts essentiels au mod des id\u00e9es de fonctionnalit\u00e9s bonus.<br>Aussi, au cours du d\u00e9veloppement, j&rsquo;ai not\u00e9 plusieurs remarques concernant le code lui-m\u00eame.<\/p>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Architecture :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le projet comprend beaucoup de fichiers et dossiers de configuration que Forge MDK g\u00e8re automatiquement.<br>J&rsquo;ai cependant effectu\u00e9 quelques modifications dans gradle.properties, afin d&rsquo;imposer une version sp\u00e9cifique \u00e0 mon mod et afin de lui donner un nom.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"625\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/gradleproperties-1024x625.png\" alt=\"\" class=\"wp-image-709\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/gradleproperties-1024x625.png 1024w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/gradleproperties-300x183.png 300w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/gradleproperties-768x469.png 768w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/gradleproperties.png 1281w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Mon travail se focalise sur le dossier \u00ab\u00a0src\u00a0\u00bb, plus pr\u00e9cis\u00e9ment \u00ab\u00a0src\/main\u00a0\u00bb.<br>Dedans se trouvent les dossiers \u00ab\u00a0java\u00a0\u00bb, contenant l&rsquo;int\u00e9gralit\u00e9 du code du mod, et \u00ab\u00a0resources\u00a0\u00bb, contenant l&rsquo;int\u00e9gralit\u00e9 des fichiers audios, photos et JSON.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/fr_frjson-1024x564.png\" alt=\"\" class=\"wp-image-713\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/fr_frjson-1024x564.png 1024w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/fr_frjson-300x165.png 300w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/fr_frjson-768x423.png 768w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/fr_frjson.png 1337w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Accomplissements :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici ce que j&rsquo;ai pu ajouter jusque-l\u00e0 :<br>&#8211; Objets (Am\u00e9trine, Peau \u00c9rafl\u00e9e, Carotte Ferreuse, Nitro Chevaline)<br>&#8211; Blocs (Bloc d&rsquo;Am\u00e9trine, TNT Chevaline, Porte en Am\u00e9trine)<br>&#8211; Outil (Briquet en Am\u00e9trine)<br>&#8211; Armure (Chapeau\/Tunique\/Pantalon\/Bottes en Peau)<br>&#8211; Musique et CD (\u00ab\u00a0Look At My (Clean) Horse\u00a0\u00bb)<br><\/p>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Difficult\u00e9s :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai rencontr\u00e9 plusieurs difficult\u00e9s :<br>&#8211; La TNT Chevaline utilise un mod\u00e8le de texture diff\u00e9rent des autres blocs et je n&rsquo;ai pas pu faire g\u00e9n\u00e9rer automatiquement ses fichiers JSON.<br>Je les ai donc \u00e9crits manuellement.<br>&#8211; Je suis actuellement en train de cr\u00e9er de nouveaux chevaux, mais cela demande des mod\u00e8les 3D et des modifications via Blockbench, un logiciel sp\u00e9cialis\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Je n&rsquo;ai pas encore fait d&rsquo;annonce concernant le mod.<\/p>\n\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><span style=\"text-decoration: underline;\">Ce que j&rsquo;ai appris :<\/span><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce projet m&rsquo;a permis d&rsquo;apprendre beaucoup.<br>Premi\u00e8rement, j&rsquo;ai appris la diff\u00e9rence fondamentale entre Forge, NeoForge et Fabric, qui sont les trois principaux constructeurs de mods Minecraft.<br>Ci-dessous un graphique que j&rsquo;ai r\u00e9alis\u00e9 afin d&rsquo;expliquer comment un projet Forge est compil\u00e9 en session de test du mod.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/01\/architecture_mod_forge-1024x574.png\" alt=\"\" class=\"wp-image-468\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/01\/architecture_mod_forge-1024x574.png 1024w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/01\/architecture_mod_forge-300x168.png 300w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/01\/architecture_mod_forge-768x431.png 768w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/01\/architecture_mod_forge.png 1198w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Deuxi\u00e8mement, j&rsquo;ai appris plusieurs d\u00e9tails de Java, comme son typage obligatoire.<br>Enfin, j&rsquo;ai appris \u00e0 me servir d&rsquo;IntelliJ IDEA et de Gradle.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>D\u00e9veloppement d&rsquo;un mod pour Minecraft 1.21.1, construit sur Forge Technologies : Java, JSON, Gradle, Forge MDK 1.21.1, IntelliJ IDEAR\u00e9alisation : [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-292","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin1014","author_link":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/author\/admin1014\/"},"uagb_comment_info":0,"uagb_excerpt":"D\u00e9veloppement d&rsquo;un mod pour Minecraft 1.21.1, construit sur Forge Technologies : Java, JSON, Gradle, Forge MDK 1.21.1, IntelliJ IDEAR\u00e9alisation : [&hellip;]","_links":{"self":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages\/292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/comments?post=292"}],"version-history":[{"count":102,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages\/292\/revisions"}],"predecessor-version":[{"id":921,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages\/292\/revisions\/921"}],"wp:attachment":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/media?parent=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}