Salut 4ian,
alors, au cas où tu serais en manque d’idées concernant de nouvelles fonctionnalités, on ne sait jamais :
J’effectue régulièrement des tests de performances sur mon jeu à chaque modification/ajout d’une fonction
dans son moteur global; comme cela est fait progressivement, j’arrive quasiment toujours à cerner les fuites
de mémoire éventuelles ou les évènements trop gourmands.
Mais quand on finit par avoir un code colossal, cela devient nettement plus dur de cibler les sources de baisse
des performances. J’ai remarqué que certains logiciels comme Unity proposent des fonctions évaluant les fps
du jeu, leur utilisation en mémoire, etc…
Actuellement, la seule fonction pouvant aller dans ce sens est le débugueur; mais ce dernier est, d’une part
un peu trop confus, puis pas assez complet (oui, je sais c’est juste un débugueur !).
Alors oui, je ne sais pas du tout comment tout cela marche, c’est juste une proposition, mais ce serait très
utile d’avoir un graphique (temps réel) ou quelque chose de ce genre qui nous indique les évènements ou les
objets consommant trop de puissance, etc…
Ma proposition est sans doute maladroitement formulée, mais l’idée principale est d’aider à cerner plus
rapidement et plus efficacement les pertes de performances dans nos jeux et ainsi faire des évènements
plus “intelligents”.
Je suppose que tu parle d’un Profiler comme on peut le voir sur cette page : unity3d.com/support/documentatio … filer.html
Il s’agirait donc basiquement d’un outil qui affiche les fps et des ratios entre le temps alloué aux évènements/affichage ( Profilage simple, qui peut se faire en temps réel de la même manière que le débugger actuellement ) ou qui puisse afficher évènement par évènement le temps passé dessus. Dans ce dernier cas, c’est quelque chose de beaucoup plus couteux en ressources, et ce n’est pas forcément affichable en temps réel : Il s’agit plus d’un outil qui collecte les performances pendant que tu teste le jeu, et t’affiche à la fin quels évènements sont les plus couteux.
Je note en tout cas.
Oui oui c’est ça !
C’est vrai que le temps réel n’est pas indispensable, du moment que l’on obtient de toute façon les données.
Merci !
J’ai ajouté une fenêtre Performances affichable lors de l’Aperçu d’une scène :
[attachment=0]ProfilingChart.png[/attachment]
Cette fenêtre affiche en temps réel le temps pris par les évènements ( bleu ), le temps total pour l’affichage+les évènements ( jaune ), et en rouge l’évolution du nombre d’objets. La fréquence de mise à jour est réglable ainsi que le nombre de données affichées.
J’ai aussi ajouté dans l’éditeur d’évènements la possibilité d’afficher le temps pris au total par chaque évènement, l’équivalent en pourcentage, le tout dans un petit cadre, affiché à gauche de chaque évènement, qui vire au rouge quand on atteint des pourcentage “importants”.
Merci beaucoup 4ian, je suis sûr que ça aidera pas mal d’entre nous à optimiser son jeu
(décidément chaque version est une véritable mine d’or en nouveautés)
MAGNIFIQUE !
On en arrive à se demander quand tu dors, 4ian !
Dans les événement, le temps nécessaire à l’exe sera calculé en temps réel ? ou d’après le dernier test de la scène ? (je pense que c’est la 2ème proposition).
Ouoi, tous simplement divain 4ian, j’aime beaucoup
et c’est vrais que sa va être utile sa car moi je me sert
de la pitite aiguille du compteur d’utilisation du pros
de vista mais c’est pas très précis
Si tu bidouille un peu en déplaçant l’onglet des évènements pour le placer à coté de la scène, que tu active le suivi des performances, et que tu lance la scène, tu devrais pouvoir consulter au fur et à mesure le temps/pourcentage de temps pris par chaque évènement en forçant le rafraichissement de l’éditeur d’évènements en cliquant dessus.
Mais c’est pas vraiment pensé pour ça, autant le graphique est fait pour être vu en temps réel, autant le temps/pourcentage de temps pris par chaque évènement est plutôt fait pour être consulté après coup.
Et ça ne risque pas de plomber un peu le jeu si il est lourd (complet et complexe quoi) et donc de fausser un peu les résultats (au moins au niveau du temps, sinon, un vénement où il y a une fuite sera toujours plus pompeux [c’est pas le bon terme] qu’un événement programmé, mais bon) ?
Parce qu’en général, il faut faire tourner le jeu, mais pour calculer tout ça, ça pompe aussi, il me semble.
Très bonne avancée
Ben je pense que ça ne sera pas calculé si tu n’ouvre pas le debbugger, mais il ne fait que récolter 3données et les afficher sous forme de graphique.
Donc ça doit pas trop bouffer
On peut activer et désactiver le suivi de performance, donc il n’y aura pas d’impact si celui ci n’est pas activé.
Si le suivi est activé, le jeu peut en effet baisser un peu en performances dû au fait que Game Develop doit compter le temps que met chaque évènement. Maintenant, ça reste assez peu visible je pense ( Je n’ai pas remarqué de différence entre suivi de performance activé / pas activé lors des tests ), et le principal est de voir le temps que met chaque évènement par rapport aux autres pour repérer les “goulots d’étranglements”, c’est à dire les points qui plombent les performances.
Ui, c’est vrai, au moins, je suis fixé maintenant, merci