Skip to content

L'environnement de travail

Les outils de développement

  1. Godot Engine : moteur de jeu open-source, utilisé pour le développement de Castle of Demise. Pourquoi Godot ?
  2. Git : gestionnaire de versions, pour le suivi des modifications et la collaboration entre les membres de l’équipe.
  3. Discord : plateforme de communication, pour échanger en temps réel et organiser des réunions virtuelles.
  4. Github : plateforme de développement collaboratif, pour héberger le code source et faciliter la gestion des contributions. Nous avons également utilisé Github Desktop pour simplifier l’utilisation de Git, en y apportant une interface graphique facilitant la résolution de conflits nécéssitant des merges (fusions).
  5. Rider : environnement de développement intégré (IDE) pour C#, utilisé pour la programmation du jeu. Concu par JetBrains et utilisé lors de travaux pratiques à Epita.

Les méthodes de travail

  1. Idée d’une fonctionnalité

    Message sur discord : "Le joueur doit pouvoir réapparaître après sa mort."

  2. Réflexion sur l’implémentation

    Réponse "Comment gérer le changement instantané de position du joueur ?"

  3. Proposition de solutions

    Nouveau commit sur Github : Ajout de la méthode Teleport(Vector3 _newPosition) dans le code.

    Player.cs
    public void Teleport(Vector3 _newPosition)
    {
    Transform3D newTransform = Transform3D.Identity;
    newTransform.Origin = _newPosition;
    GlobalTransform = newTransform;
    }
  4. implémentation de la solution

    Nouveau commit sur Github : Ajout de la méthode HandleDeath() dans le code.

    HandleDeath.cs
    private void HandleDeath()
    {
    // ...
    mpMap02.PlayerList[1].Teleport(new Vector3(0,24,2));
    // ...
    }
  5. Signalement de potentielles erreurs

    Ouverture d’issue Github "Le joueur réapparaît dans le sol après sa mort."

  6. Résolution des problèmes

    Nouveau commit sur Github : Correction de la méthode Teleport(Vector3 _newPosition) dans le code.

    HandleDeath.cs
    private void HandleDeath()
    {
    // ...
    mpMap02.PlayerList[1].Teleport(new Vector3(0,25,2));
    // ...
    }
  7. Validation de la solution 🎉

    Fermeture de l’issue Github.