Construisez des projets plus clairs et plus rapides à maintenir

UpvoteUpvote 1 DownvoteDownvote

Fonctionnalités de ces parcours

Fichiers attachés

Les fichiers suivants ont été attachés à ce tutoriel:

.c3p

Statistiques

19 visites, 30 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 13 Sep, 2025.

Objectif :

Améliorer la lisibilité, la réutilisabilité et la maintenabilité de vos projets Construct 3 en s’inspirant de bonnes pratiques issues du développement logiciel.

Projet d'exemple :

.C3P

solid-principle.c3p

Download now 304.24 KB

Ce projet comporte quelques exemples simple d'organisation et d'optimisation.

Le principe SOLID, c’est quoi ?

Le terme SOLID vient de la programmation orientée objet (POO).

Il regroupe 5 grands principes qui aident à écrire du code plus clair et plus robuste :

  • S → Single Responsibility : une seule responsabilité par module.
  • O → Open/Closed : ouvert à l’extension, fermé à la modification.
  • L → Liskov Substitution : remplacer un objet par un autre sans casser le code.
  • I → Interface Segregation : plusieurs petites interfaces plutôt qu’une énorme.
  • D → Dependency Inversion : dépendre d’abstractions, pas de détails.

Attention : Construct 3 n’est pas orienté objet (pas de classes, pas d’héritage).

Mais sa philosophie d’organisation peut s’inspirer directement de SOLID pour rendre vos projets clairs, modulaires et maintenables.

1. Une seule responsabilité

Une feuille, un dossier ou un objet = une seule responsabilité. Il est important de ne pas tout mettre dans un même sac. Le désordre s'installe très vite, et pour se sortir de là, cela demande beaucoup plus d'effort.

Exemple :

[i]ePlayer[/i] → uniquement le joueur
[i]eEnemies[/i] → uniquement les ennemis
[i]eUI[/i] → uniquement l’interface
[i]eFunctions[/i] → fonctions utilitaires

Puis dans la fiche d'événement du Layout, vous incluez uniquement les fiches d'événement que vous avez besoin.

Convention de nommage : commencez toujours vos feuilles par un e minuscule (ex : eControls, eSounds, eInventory) pour les identifier rapidement.

2. Ouvrir à l’extension, fermer à la modification

Ne dupliquez pas du code ! Il faut vraiment éviter de copier coller des blocs d'événements.

Préparez vos événements pour être réutilisables.

Utilisez des fonctions génériques : TakeDamage(target, value), SaveProgress(), playSound(), etc.

Servez-vous des familles : ajouter un ennemi dans Famille_Enemies lui donne automatiquement les mêmes variables et règles.

3. Utilisez les familles et groupes intelligemment

Par exemple, tous vos ennemis appartiennent à Famille_Enemies.

Le joueur gère les collisions avec cette famille, sans se soucier du type exact (Zombie, Alien, Robot...). Ce sont les variables attribuées à la famille qui permettent de controler les différences.

Dégat, points de vie, vitesse, etc.

Les Groupes d’événements permettent aussi d’activer/désactiver certains comportements (paralysé, boosté, menu ouvert, etc.).

4. Rangez et nommez vos fichiers correctement

Arborescence recommandée :

├── Object type/
│ ├── Debug/ (All Debug tools, always good to have some text displayed on screen)
│ ├── Sprites/ 
│ │ ├── Background/
│ │ └── Enemies/
│ │ └── Land/
│ │ └── Player/
│ │ └── Props/
│ │ └── UI/
│ ├── System/ (I like to put keyboard, mouse, etc. object in here)
│ └── Dictionaries & Array/
├── Sounds/
├── EventSheets/
│ ├── ePlayer
│ ├── eEnemies
│ ├── eUI
│ ├── eFunctions
│ └── eMain

Convention de nommage pour les sprites :

Gardez toujours une racine commune (famille) puis précisez :

[i]PlayerSprite, PlayerCollision, PlayerWeapon[/i]
[i]EnemyZombieSprite, EnemyAlienSprite[/i]
[i]UIHealthBar, UIScoreText[/i]

Résultat : plus de cohérence et une navigation ultra rapide lors de la recherche et des filtres.

5. Optimisez vos sprites

Si vous avez par exemple de nombreux sprites d'arbres, préférez de créer plusieurs animations dans un seul sprite, plutôt que de multiplier les sprites.

Conclusion

Même si Construct 3 ne permet pas d’appliquer SOLID au sens strict, vous pouvez en adopter la philosophie :

Organisation claire (Event Sheets, dossiers, conventions de nommage)

Code réutilisable (familles, fonctions génériques)

Projet optimisé et évolutif (sprites, groupes, arborescence)

Résultat : vos projets Construct deviennent plus professionnels, modulaires et maintenables.

N'oubliez pas, il n'y a pas qu'une façon de faire les choses. :)

Si ce tutoriel vous a été utile, n’hésitez pas à laisser un petit commentaire ou une étoile, ça fait toujours plaisir !

Je peux également apporter mon expertise sur vos projets Construct 3 : vous aider à optimiser, organiser et corriger vos fichiers. C’est gratuit, avec participation financière libre pour ceux qui le souhaitent.

N’hésitez pas à me contacter directement par email (disponible dans le .c3p).

  • 0 Comments

Want to leave a comment? Login or Register an account!