Minecraft n'est pas seulement un jeu, c'est toute une plateforme pour la créativité et l'apprentissage de la programmation ! Aujourd'hui, nous allons comprendre comment créer votre propre mob à partir de zéro. C'est une excellente façon de se familiariser avec Java et comprendre les bases du développement de jeux.

De quoi avons-nous besoin ?
Avant de commencer, assurez-vous que vous avez installé :
Java Development Kit (JDK) version 17 ou supérieure
IntelliJ IDEA (Community Edition convient)
Minecraft Forge MDK (Mod Development Kit)
Connaissances de base de Java (variables, classes, méthodes)
Étape 1 : Configuration de l'environnement
Téléchargez d'abord Forge MDK depuis le site officiel files.minecraftforge.net. Décompressez l'archive dans un dossier séparé et ouvrez le projet dans IntelliJ IDEA.
Exécutez la commande suivante dans le terminal IDE :
./gradlew genIntellijRuns💡 Conseil : Cela configurera le projet pour le développement. Attendez que Gradle télécharge toutes les dépendances, cela peut prendre quelques minutes.
Étape 2 : Créer une classe de mob
Créons un mob simple - une luciole amicale qui volera et brillera la nuit.
Dans le dossier src/main/java/com/yourname/yourmod/entity créez un fichier FireflyEntity.java :
package com.yourname.yourmod.entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.goal.FloatGoal;
import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal;
import net.minecraft.world.level.Level;
public class FireflyEntity extends PathfinderMob {
public FireflyEntity(EntityType<? extends PathfinderMob> type, Level world) {
super(type, world);
}
// Enregistrer le comportement du mob
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(1, new WaterAvoidingRandomStrollGoal(this, 1.0D));
}
// Nous définissons les attributs (santé, vitesse)
public static AttributeSupplier.Builder createAttributes() {
return PathfinderMob.createMobAttributes()
.add(Attributes.MAX_HEALTH, 5.0D)
.add(Attributes.MOVEMENT_SPEED, 0.25D);
}
}Que se passe-t-il ici ?
PathfinderMob - classe de base pour les mobs qui peuvent marcher
registerGoals() - méthode où nous définissons le comportement du mob (nager, marcher, attaquer)
createAttributes() - ici, nous définissons les caractéristiques : santé, vitesse, dégâts
Étape 3 : Enregistrer le mob
Maintenant, nous devons « parler » au jeu de notre mob. Créez une classe ModEntities.java :
package com.yourname.yourmod.entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class ModEntities {
public static final DeferredRegister<EntityType<?>> ENTITIES =
DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, "yourmod");
public static final RegistryObject<EntityType<FireflyEntity>> FIREFLY =
ENTITIES.register("firefly", () -> EntityType.Builder
.of(FireflyEntity::new, MobCategory.CREATURE)
.sized(0.4F, 0.3F) // taille de la boîte à outils
.build("firefly"));
}N'oubliez pas d'enregistrer ENTITIES dans la classe principale de votre mod :
@Mod("yourmod")
public class YourMod {
public YourMod() {
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
ModEntities.ENTITIES.register(bus);
}
}Étape 4 : Créer un modèle et une texture
Le mob est là, mais il est invisible ! Vous devez créer un modèle 3D. Vous pouvez utiliser le programme Blockbench - éditeur gratuit pour les modèles Minecraft.
Créez un modèle simple (cube pour le corps, petits cubes pour les ailes)
Exporter en tant que fichier Java
Placez le modèle dans
src/main/java/com/yourname/yourmod/client/model/Créez une texture (16x16 pixels) et enregistrez-la dans
src/main/resources/assets/yourmod/textures/entity/

Étape 5 : Rendu du mob
Créez une classe FireflyRenderer.java :
package com.yourname.yourmod.client.renderer;
import com.yourname.yourmod.entity.FireflyEntity;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.resources.ResourceLocation;
public class FireflyRenderer extends MobRenderer<FireflyEntity, FireflyModel> {
private static final ResourceLocation TEXTURE =
new ResourceLocation("yourmod", "textures/entity/firefly.png");
public FireflyRenderer(EntityRendererProvider.Context context) {
super(context, new FireflyModel(context.bakeLayer(FireflyModel.LAYER)), 0.3F);
}
@Override
public ResourceLocation getTextureLocation(FireflyEntity entity) {
return TEXTURE;
}
}Étape 6 : Spawn mob dans le monde
Ajoutons un mob au spawn naturel du jeu. Dans la classe principale du mod, ajoutez un gestionnaire d'événements :
@SubscribeEvent
public static void onBiomeLoading(BiomeLoadingEvent event) {
if (event.getCategory() == Biome.BiomeCategory.FOREST) {
event.getSpawns().getSpawner(MobCategory.CREATURE)
.add(new MobSpawnSettings.SpawnerData(
ModEntities.FIREFLY.get(), 15, 2, 4));
}
}✅ Excellent ! Maintenant, les lucioles apparaîtront dans les biomes forestiers !
Étape 7 : Test
Lancez le jeu via IntelliJ IDEA (utilisez la configuration runClient). Créez un nouveau monde et vérifiez :
Le mob apparaît-il dans la forêt ?
Le modèle s'affiche-t-il correctement ?
Le comportement fonctionne-t-il (marche, nage) ?
💡 Conseil : Si quelque chose ne fonctionne pas, vérifiez les journaux dans la console. Forge décrit en détail toutes les erreurs.
Options supplémentaires
Vous pouvez ajouter un mobu :
Sons propres (pas, attaque, mort)
Animations (battement d'ailes, lueur)
Comportement unique (attaque, fuite, recherche de nourriture)
Drop d'objets en cas de décès
Spawn à travers l'œuf d'appel
@Override
protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHit) {
super.dropCustomDeathLoot(source, looting, recentlyHit);
this.spawnAtLocation(Items.GLOWSTONE_DUST, 1);
}Erreurs fréquentes des débutants
Vous avez oublié d'enregistrer le mob — vérifier que
ENTITIES.register(bus)est appeléChemin de texture incorrect — assurez-vous que les chemins dans le code et le système de fichiers correspondent
N'a pas généré d'environnement de travail — exécutez
gradlew genIntellijRunsà nouveauVersion obsolète de Forge - Utilisez la dernière version stable pour votre version de Minecraft
Vous voulez approfondir ce sujet et créer un mob vraiment cool avec une mécanique unique ?
Dans Codique Nous analysons en détail de nombreux autres sujets de programmation, des bases de Java à la création de projets complexes. Chaque sujet est accompagné d'exercices pratiques qui vous aideront à consolider vos connaissances.
Avec nous, vous apprendrez à :
Travailler avec Java sur des exemples réels
Créer des mods, des plugins et des jeux
Comprendre l'architecture du code et écrire du code propre
Résoudre des problèmes comme un vrai développeur
Et si vous avez des questions ou avez besoin d'aide, bienvenue dans notre Chaîne Telegram, où une grande équipe de personnes partageant les mêmes idées s'est déjà réunie ! Nous vous aiderons toujours à résoudre le problème, nous vous suggérerons la meilleure solution et nous vous soutiendrons tout au long de votre formation.
Rejoignez Kodik : la programmation peut être compréhensible et passionnante ! 🚀
