Pour comprendre le contexte de ce devlog je vous invite à lire la présentation de Cesse-Adventure ici.
Après de longues séances de brainstorming avec Céciliane et Juliette, nous avons pu nous organiser pour commencer nos tâches respectives. Céciliane n’étant pas disponible, nous avançons à deux pour l’instant.
J’ai d’abord travaillé sur la création de la structure du code que je vais vous présenter, puis à développer le joueur et un niveau prototype qui seront présentés dans un prochain devlog.
Présentation de l’asset de test.
Je me suis basé sur un Asset réalisé par Vryell (lien vers l’asset), qui propose une structure de donjon de type roguelike :

Et de modèle avec trois animations, Idle, Marcher, Attaquer, dans les 4 directions possible (Haut, Bas, gauche, droit).
Lors de précédent poc que j’avais réalisé, il se trouvait que j’avais une modèle de personnage utilisant les traits de cet asset que j’ai décidé d’utiliser :

Structure du projet
Pour développer ce roguelike 2D en vue de dessus avec génération procédurale des niveaux, j’ai conçu une architecture modulaire axée sur la flexibilité et la communication efficace entre les composants. Cette approche utilise les scènes de Godot et les signaux pour garantir une interaction fluide et une maintenance simplifiée.
Modularité
Le projet est divisé en modules distincts, chacun responsable d’un aspect spécifique du jeu. Par exemple, nous avons des modules pour la gestion des joueurs (PlayerSystem
), des ennemis (EnemiesSystem
), et des niveaux. Cette séparation permet une meilleure organisation du code et facilite les tests unitaires et l’évolution des fonctionnalités.
Orientation Objet
Chaque entité du jeu, qu’il s’agisse du joueur, des ennemis ou des objets interactifs, est représentée par une classe dédiée. Par exemple, la classe Player
gère toutes les propriétés et comportements du joueur, tandis que la classe Enemy
fait de même pour les ennemis. Cette approche orientée objet me permet de réutiliser et d’étendre facilement les comportements des différentes entités du jeu.
Utilisation des Scènes de Godot
J’utilise également le système de scènes de Godot pour structurer les éléments du jeu. Chaque entité, comme les ennemis ou les niveaux, est définie dans une scène séparée. Cette organisation en scènes facilite la gestion des ressources et des instances dans le jeu.
Communication par Signaux
Pour assurer une communication efficace entre les différentes parties du jeu, j’utilise les signaux de Godot. Par exemple, le signal player_moved
permet de notifier d’autres systèmes lorsque le joueur se déplace, sans créer de dépendances directes. Cette architecture orientée événement aide à maintenir un couplage faible entre les modules, améliorant ainsi la flexibilité et la maintenabilité du code.

Conclusion
En combinant ces principes, l’architecture peut être décrite comme une « Modular Scene-Based and Event-Driven Architecture ». Cette approche me permet de développer de manière structurée et évolutive, tout en tirant parti des puissantes fonctionnalités offertes par le moteur de jeu Godot.
J’espère que vous avez apprécié cet aperçu de notre architecture. Si vous avez des questions ou des commentaires, n’hésitez pas à les partager ci-dessous !
Restez à l’écoute pour plus de détails sur le développement de Cesse-Adventure !
Laisser un commentaire