Amélioration de l'éditeur d'événements

Voilà, comme je l’ai dit dans un précédent post, GameDevelop est très désagréable à utiliser à comparé aux logiciels concurrents du fait de son (très) important manque de réactivité.
Sur ce sujet je vais m’attarder sur l’éditeur d’événements, qui est à mon avis le moins réussi en termes d’ergonomie, voici une liste des principaux reproches que je lui fait :

  • Raccourcis qui ne fonctionnent pas : c’est le genre de truc qu’on utilise tout le temps dès qu’on sait se servir de l’éditeur, leur absence/dysfonctionnement sont un réel manque.
  • Problèmes d’affichages : ceux-ci sont très nombreux, dès qu’on commence à avoir un événement un peu complexe l’affichage de celui-ci part dans tous les sens et nuit à la visibilité, ou encore le problème du défilement horizontal pour les petits écrans (moi ça me concerne pas mais pour les autres ça doit être énormément chiant).
  • Pas de drag’n’drop : idem que les raccourcis.
  • Opérations trop longues à effectuer : j’ai une feuille d’événement très grande (ex : 50 events) et j’ai besoin d’en supprimer la moitié, la seule solution est de les supprimer un par un en utilisant des opérations super-lourdes (clic droit sur l’événement → événement → supprimer), ça n’est peut-être pas le bon exemple car il y a un bouton qui supprime immédiatement l’event sélectionné dans le ruban, mais c’est problématique.
  • Impossible remplir rapidement le formulaire de création d’un événement, la possibilité de valider par [Entrée] serait terriblement efficace.
  • Etc…

Je n’ai pas tout mis tout simplement car je n’ai pas tout en tête sur le moment, considérez donc cette liste comme non-exhaustive.
Voici maintenant comment j’aimerais que l’éditeur d’événements soit :


Comme vous le voyez, quelques améliorations sont présentes :

  • Apparition de raccourcis, sur les côtés de chaque événements permettant de les modifier/supprimer instantanément, sur les conditions/actions sélectionnées et sur les événements sélectionnés (la sélection multiple d’événements serait d’ailleurs une excellente chose)
  • Apparition du drag’n’drop, je l’ai pas symbolisé mais il est sensé y être.
  • Ajout d’une meilleure séparation des actions et conditions, cela permet de mieux les différencier lorsque celles-ci prennent plusieurs lignes (sans bug d’affichage hein :unamused: )
  • Apparition d’une coloration, en plus de rendre la feuille d’événements plus lisible, les paramètres colorés sont directement modifiables dans l’éditeur sans avoir à passer par la fenêtre d’édition des actions/conditions (comme dans Construct :-° ).
  • Apparition des raccourcis, idem je les ai pas symbolisés.

Comme vous pouvez le constater je n’ai pas mis les icônes, en fait c’est surtout parce que j’avais la flemme de faire 50 copier/coller donc ne les considérez pas comme rejetées.
Si j’en ai le courage j’ajouterais peut-être les améliorations nécessaires aux éditeurs d’action/condition et d’expression.
Voilà.

Mise à Jour du 13 Juillet.

Voici une liste de fonctionnalités de l’éditeur d’événements qu’il serait agréable d’avoir :

  • Possibilité de jouer en aperçu même lorsque on a ouvert l’éditeur d’événements, en effet, dès qu’on change l’onglet vers les événements le jeu se bloque (même en mode fenêtré) et ainsi impossible de voir le suivi des performances par événement (ou alors j’ai du rater un truc o_o)
  • Possibilité de créer des dossiers dans le gestionnaire de projet, oui c’est pas vraiment lié directement à l’éditeur d’events mais ça serait vachement pratique niveau organisation.
  • Glisser déposer d’événements multiples, par exemple intégrer un groupe d’événements sélectionner en tant que sous events à un nouvel événement créé.
  • Possibilité de former un groupe d’événements à l’intérieur même d’une feuille, ainsi que la possibilité de le masquer (l’enrouler en quelques sortes) afin d’améliorer la lisibilité (comme dans Construct :smiley:) et l’organisation (ça fait moins “bidouillage” que de passer par un événement parent vide)

Mise à Jour du 22 Juillet.

D’autres fonctionnalités qui me semblent nécessaires :

  • Possibilité d’effectuer un Rechercher/Remplacer sur une plage d’événements précise
  • Ajout de la condition “au lancement de la fonction” pour les événements fonctions
  • Possibilité de faire des groupes d’actions/conditions, pour permettre une meilleure organisation dans les gros événements.

Mise à Jour du 28 Juillet.

Encore quelques trucs, très importants selon moi :

  • Possibilité de faire des sous-événements à l’intérieur des fonctions, j’entends par là que pour le moment les sous-événements des fonctions semblent agir comme des sous-événement normaux et tournent donc en boucle.
  • Possibilité d’activer/désactiver une condition ou action précise
  • possibilité d’inverser une condition directement à partir du menu contextuel, idem pour forcer en global.

C’est magnifique !
Franchement, ça ne manquerais pas de revoir ça, +1 pour cette idée :slight_smile:

En gros tu veux refaire tout le design ?

Bah, moi je dis, pourquoi pas, parce que le design des événements est plutôt bof…
Je connais pas trop les concurrents, Orion est sûrement le mieux placé pour ça, mais en tout cas, ça serait vraiment pas négligeable…

Ce qui manque surtout c’est de l’ergonomie, quand on voit l’éditeur d’events de MMF ou Construct on voit que GD est à la ramasse, après le design c’est secondaire mais autant avoir un truc agréable à regarder.

Effectivement, l’ergonomie est très mauvaise, comme tu l’as déjà dit, les raccourcis, …

J’approuve totalement !
Surtout que maintenant que 4ian s’est débarrassé de la plupart des bugs et a intégré toutes les fonctions essentielles pour faire un vrai jeu,
il ne lui manque plus qu’à travailler sur son accessibilité.
J’avoue qu’il m’arrive encore souvent de farfouiller directement dans mes feuilles xml pour modifier les images ou les animations d’objets, par exemple.

Je suis globalement d’accord avec les reproches/suggestions. Quelques petits commentaires :

Je verrai plutôt des raccourcis qui apparaissent uniquement quand la souris est au dessus de l’évènement concerné, pour éviter de surcharger l’affichage.
La sélection multiple me semble tout aussi important.

La séparation est appréciable sur ta maquette, mais je trouve que “Conditions” et “Actions” surchargent trop l’affichage par contre. Au pire, une petite option pour changer ça et ça le fera.

Je sais même pas comment j’ai fais pour ne pas penser à la coloration des paramètres ( Alors que j’ai déjà mis du gras/italique pour certains )… La coloration est très très facilement faisable, la détection du clic sur un paramètre l’est beaucoup moins par contre, même si en effet l’éditon des paramètres direct dans l’éditeur comme dans Construct serait un gros plus.

Correction on va dire, vu qu’il sont déjà présent.

Bon, je vais essayer de me lancer dans une révision importante de l’éditeur d’évènements, en parallèle aux modifs que je teste sur le moteur de GD.

N’hésite pas :slight_smile:

En fait je parlais des traits de séparations gris (la couleur est légère pour pas surcharger, après oui l’affichage de Conditions: et Actions: ont été faites pour l’esthétique, qu’elles y soient ou pas n’est pas très important selon moi (après peut-être que ceux qui n’ont jamais touché à GD apprécieront leur présence puis le désactivent une fois qu’ils sont à l’aise ?)
Sinon je suis content que tu essaies d’améliorer ça.

Y a du taf mais après je pense qu’on ne pourra qu’apprécier ! :slight_smile:

Orion-Pyro, c’est trés jolie ce que tu as fait, ça me plaie beaucoup :slight_smile: :slight_smile: :slight_smile:

En espérant que ça ne crée pas de nouveau bug :wink: .

Petite mise-à-jour en vrac, les idées me venant en tête, le premier post est mis-à-jour, voici les nouveautés :

Il y a aussi un autre problème avec l’éditeur d’événements, c’est que vu qu’il est réalisé avec WxWidget, il est plus très fluide dès qu’il y a pas mal d’événements.
Une idée serait de le réaliser avec la SFML.

Pourquoi pas si l’affichage suit bien (pas de bugs d’affichage).

Le truc c’est que wxWidgets apporte quand même beaucoup de facilités pour faire un tel boulot comparé à SFML. Par exemple, je peux utiliser des wxPanels pour afficher les boutons “Ajouter un évènement” ou les boutons d’édition “contextuels” qui apparaissent quand on survole un élement comme une action/condition : C’est pratique car c’est wxWidgets qui gère les clics. Rien que ça, c’est galère à gérer tout seul ( faut vérifier l’emplacement de la souris, si le clic est fait quand les boutons sont affichés, pas confondre le clic avec un clic sur un évènement qui serait en dessous… ).

Oui, la cause essentielle est que ( notamment lorsqu’on redimensionne/ouvre une scène pour la première fois ), GD doit calculer la hauteur prise par l’évènement dans l’éditeur, et ce pour chaque évènement. Et pour faire ça, il faut savoir la taille prise par les textes. Et pour ça, il faut les “afficher” en mémoire. Et le problème, c’est que le rendu que j’utilise actuellement ( wxHTMLDCRenderer ) est relativement lent. Je vais sans doute utiliser une autre méthode pour afficher les textes, ce qui me permettra de connaitre précisement la position des paramètres ( afin de pouvoir les éditer en cliquant dessus ), et, en utilisant une police à chasse fixe, d’accélérer j’espère le rendu.

Petit défaut : une police à chasse fixe, c’est moche. :sunglasses:

Pas forcément, et puis c’est plus lisible, par exemple Deja Vu Sans Mono est très bien, et elle est pas laide.

Tu n’es pas sûr que tout les ordi aient Deja Vu Sans Mono.

Bah tu la fournis en même temps que le logiciel.