Messagerie


Problèmes de performances - Dark Devotion

Xsoul
lundi 21 novembre 2016 à 18:54
Hello à vous,

Je viens vous voir car j'ai un petit problème sur mon projet!

En effet, sur certains pc pas trop gamer le jeu peut descendre de 60 à 50 voir 45fps

j'ai testé sur ce dernier de viré toute ma prog ce qui me faisait passer à 47 fps, donc ma prog n'a pas l'air si gourmande que ça au final

Et ça serait donc la quantité d'objet (à peu près 1000 à 1300 selon les salles) qui pourrait poser problème.

J'ai tous mes objets (non mandatory) en "inactiver si loin de la scène" + la plupart en objet globaux + chargement à la demande et j'enlève la détection fine sur tous les objets qui n'en ont pas besoin, bref je vois pas trop quoi faire de plus!

Du coup j'ai 2 questions :

1/ est-ce que je suis passé à côté d'un truc miracle? (jai déjà lu l'article sur l'optimisation https://stuartspixelgames.com/2014/05/05/how-to-optimize-your-fusion-game/ donc pas besoin de me l'envoyer  :sors :D )

2/ mes calculs de déplacements sont basés sur le framerate ce qui pue complètement et qui est la salle raison pour laquelle on voit les conséquences d'une perte de perf, du coup comment contrer ça? à la place d'un toujours, mettre un tous les 0.01sec? une autre manière sur l'appli en elle même en disant que les calculs se basent sur du 24 fps au lieu de 60 fps et retaper toutes les lignes de code concernées?


Sur ce coup là.... j'ai vraiment besoin de vous  :-\
Valeth
457 messages
Fusion 2.5
Fusion 2.5+
lundi 21 novembre 2016 à 19:49
Il faut voir si cela est du 45fps constant ou non, car dans le premier cas cela ne posera aucun problème de jouabilité. N’oublions pas que le frame rate des consoles de précédente génération était bien souvent entre 25 et 30 fps.

Ha merde, je viens de te relire et cela serait donc du non-constant.  :jesors
Il faudrait donc dans ces cas là un mode 60fps et un autre en 30 à choisir dans les options. Si cela est possible bien-sûr.

Personnellement je suis en 60fps avec mon bon vieux mais robuste I7920.

A titre informatif, la v-sync est-elle activée par défaut sur ton jeu ?
Cela peut bouffer quelques fps sur les config un peu faible.

Essaye de checker les config qui ont du mal et de faire une liste. L’operating system, le proco et la cg.


Edit :

Test un peu plus poussé sur l’utilisation de la mémoire attribuée à Dark Devotion:
Ram usage = de 900mb à 1gb
Mémoire CG = 100mb

Comparatif avec Dust An Elysian Tail dans une scène assez chargée vers la fin du jeu :
Ram usage =  600mb
Mémoire CG = 220mb

Valdis story dans des scènes totalement random :
Ram usage = 550mb
Mémoire CG = 1gb

A_project, un vieux projet test avec du png bien lourd dedans développé sous Fusion:
Ram usage = 900mb
Mémoire CG = 400mb


Il est à noter que DD attribut seulement 9 à 10% de la mémoire totale sur la CG.
En ce qui concerne Dust c’est environ 27% de la mémoire totale qui est attribuée à la CG.
Pour Valdis Story on passe à approximativement 65% la mémoire totale cédée à la CG.
Pour mon application test c’est environ 31% de la mémoire totale qui est attribuée à la CG.

Modifié le vendredi 23 août 2019 à 12:39 par Valeth
Pit73
1055 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
mardi 22 novembre 2016 à 10:10
En parler à yves
Il faudrait réussir à isoler le pb de perte de perf.
Scale d'objets? calculs trop complexes? un bug sur une condition?

Pour ton pb de "timing", eventuellement créer le tien pour vérifier la "cadence"?
Supprimer des objets en temps réel en  fonction de la cadence non respectée


Hello à vous,

Je viens vous voir car j'ai un petit problème sur mon projet!

En effet, sur certains pc pas trop gamer le jeu peut descendre de 60 à 50 voir 45fps

j'ai testé sur ce dernier de viré toute ma prog ce qui me faisait passer à 47 fps, donc ma prog n'a pas l'air si gourmande que ça au final

Et ça serait donc la quantité d'objet (à peu près 1000 à 1300 selon les salles) qui pourrait poser problème.

J'ai tous mes objets (non mandatory) en "inactiver si loin de la scène" + la plupart en objet globaux + chargement à la demande et j'enlève la détection fine sur tous les objets qui n'en ont pas besoin, bref je vois pas trop quoi faire de plus!

Du coup j'ai 2 questions :

1/ est-ce que je suis passé à côté d'un truc miracle? (jai déjà lu l'article sur l'optimisation https://stuartspixelgames.com/2014/05/05/how-to-optimize-your-fusion-game/ donc pas besoin de me l'envoyer  :sors :D )

2/ mes calculs de déplacements sont basés sur le framerate ce qui pue complètement et qui est la salle raison pour laquelle on voit les conséquences d'une perte de perf, du coup comment contrer ça? à la place d'un toujours, mettre un tous les 0.01sec? une autre manière sur l'appli en elle même en disant que les calculs se basent sur du 24 fps au lieu de 60 fps et retaper toutes les lignes de code concernées?


Sur ce coup là.... j'ai vraiment besoin de vous  :-\
Xsoul
mardi 22 novembre 2016 à 13:10
@Valeth :

Wow !! merci énormément pour tout ça, je sais même pas comment tu as ces infos mais c'est super!!

Enfait l'idée c'est que mes calculs se font sur du 60 fps, je peux changer et faire que les calculs se font sur du 24 fps ça veut juste dire que je dois me retaper mes calculs et ça paraitra sûrement moins fluide :/ Mais

Est ce que tu sais comment faire pour transférer de la ram de la CG à l'un ou à l'autre?

Mais de toute façon en théorie ça devrait pas faire ramer j'imagine :/

@Pit73 :

Tu penses que Yves aurait la réponse?

Comme jdisais jai supprimer touuuuutes la prog, avec 0 ligne de prog je gagnais que 2 fps sur une config qui tournait à 45 fps qui passait à 47 fps donc je pense pas que le problème vienne de la prog!

Je supprime beaucoup d'éléments en temps réel c'est sûr mais bon vu la ligne au dessus normalement cest bon ^^

Pour l'histoire de timing j'ai l'impression que pour l'instant cest la meilleure piste!


Xsoul
mardi 22 novembre 2016 à 20:50
Bon, j'ai rebossé un peu ça sur un projet propre

Voilà ce que ça donne par défaut :



On voit que le mouvement d'un objet est ralenti si le framerate est plus lent.

La première chose que j'ai faite c'est regarder l'option "Vitesse indépendante de la machine"



Résultat :



C'est pas mieux du tout, on voit même des sauts de frame.

J'ai donc essayé sur la scène directement l'option Mouvement basé sur le timer avec un frameRate de 30 au lieu de 60 en me disant que comme je passais jamais sous 30 fps avec mon test ça devrait aller à la même vitesse




Résultat :


Toujours pas mieux

Jai aussi essayé dans ma prog de faire un calcul en fonction du framerate :



Aucune différence (la ligne en dessous de celle sur la screen)

Bref...

J'ai même mis un senior prog de Ubisoft sur le coup pendant la pause repas ce midi et on a rien trouvé en près d'une heure de recherche...

Je me dis que c'est impossible qu'il n'y ait nul part dans le logiciel une option permettant ça ou une manière de le faire :o


D'ailleurs, @Valeth, la quantité de rame utilisé par la carte graphique dépend de la quantité de rame utilisée à un moment T, si tu as des objets loadés que tu n'utilises pas ça va aller dans la rame de ton PC on m'a dit :p

Voilà du coup je  suis tjr en recherche d'aide, j'ai mis le MFA de test en pièce jointe au cas où, j'utilise l'extension Joystick2 pour simuler que ça rame, et le chiffre fixe est le framerate souhaité, s'il est modifié ça simulera cette quantité là automatiquement, même sur un PC de brute :p Ca peut ptet servir à certains ;)

Pièces jointes
conceptgame
429 messages
Fusion 2.5 Dev
Fusion 2.5+ Firefly Exporteur iOS Exporteur Android
mercredi 23 novembre 2016 à 10:43
Si tu veux un mouvement custom indépendant du framerate, j'ai mis un exemple en pièce jointe.
Normalement l'option "mouvement basé sur le timer" fait la même chose avec un mouvement natif de CF2.5.
Pièces jointes
Xsoul
mercredi 23 novembre 2016 à 13:01
Wow Conceptgame je viens de tester et ça marche pas mal du tout!!

Je vais tester ça ce soir sur mon projet pour moi ce que ça donne, tu gères ;)
volgot
mercredi 22 mars 2017 à 17:41
:bravos
ça mériterait un p'tit "Résolu" Xsoul non ? ;)
890 messages

mercredi 22 mars 2017 à 18:39
Excellent Conceptgame ! Efficace, précis, comme d'hab :) ;)
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 18 visiteurs au total

Derniers messages