{}const=>[]async()letfn</>var
Développement

Comment ajouter un nouveau mob dans Minecraft

Apprenez à travailler avec l'API Forge, à écrire du code Java, à créer des modèles 3D et à ajouter des comportements uniques aux créatures. Idéal pour ceux qui veulent commencer leur voyage dans le développement de jeux et apprendre la POO sur un vrai projet.

К

Kodik

Auteur

5 min de lecture

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)

🔥 100 000+ étudiants déjà avec nous

Marre de lire la théorie ?
Il est temps de coder !

Kodik — une appli où tu apprends à coder par la pratique. Mentor IA, leçons interactives, projets réels.

🤖 IA 24/7
🎓 Certificats
💰 Gratuit
🚀 Commencer
Ont rejoint aujourd'hui

É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.

  1. Créez un modèle simple (cube pour le corps, petits cubes pour les ailes)

  2. Exporter en tant que fichier Java

  3. Placez le modèle dans src/main/java/com/yourname/yourmod/client/model/

  4. 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

  1. Vous avez oublié d'enregistrer le mob — vérifier que ENTITIES.register(bus) est appelé

  2. Chemin de texture incorrect — assurez-vous que les chemins dans le code et le système de fichiers correspondent

  3. N'a pas généré d'environnement de travail — exécutez gradlew genIntellijRuns à nouveau

  4. Version 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 ! 🚀

🎯Arrête de reporter

Tu as aimé l'article ?
Place à la pratique !

Avec Kodik, tu ne lis pas seulement — tu codes immédiatement. Théorie + pratique = vraies compétences.

Pratique instantanée
🧠L'IA explique le code
🏆Certificat

Sans inscription • Sans carte