De mon cote aucun probleme de performances sur mes postes, ca tourne du tonnerre, mais je fais face a des bizarreries :
j’ai active le framelimit a 60 fps, en mode fenetre je tourne en moyenne un peu au dessus, mais en full screen il n’est plus du tout respecte ! J’oscille entre 350 et 150 fps ! J’ai essaye avec ou sans synchro verticale, ca ne change rien ! ( d’ailleurs je ne trouve pas d’usage tres important de la Vsync sur le rendu, contrairement aux jeux 3d où sans Vsync ca peut piquer…). Est-ce normal ?
ensuite je voulais savoir sur quoi tire le mode natif ? A priori ca ne tire que sur le processeur ? Quid des multicore ? J’ai l’impression que le client perd vite en perf sans forcement tirer plus sur le proc… Par ailleurs niveau rendu ca utilise quoi ? OpenGl (lumiere dynamique\particules ?)
derniere question : qu’est-ce qui peut causer des ralentissements ?? Mon jeu marche tres bien sur mes 2 grosses becanes, sur mon netbook qui est tres limite, ca tourne rond mais entre 20 et 30 fps (ce qui reste correct), en revanche chez des amis ca rame a mort : chez un premier ami, la config proc\ram\cg est bien superieure a celle de mon netbook, pourtant le jeu oscille entre 15 et 25 fps max, avec des creux à 5fps. Quand je regarde le moniteur de ressources, le jeu ne tire meme pas 10% sur le proc, on est loin de la surcharge, idem pour la ram(le client optimise fait 8Mo) ! Enfin dernier cas chez un autre ami : il a une config de sagoin (core i7 4790 8go de ram et 860M gtx) il a en gros les memes performances que sur mon petit netbook de 2009, ce qui est juste tres etrange quand on voit qu’il fait tourner tous les derniers jeux sortis presque a toc…
Donc, quelles pistes pour boooster tout ça ? Des incompatibilites connues ? Des drivers foireux ? De nouvelles updates du client genere pour une meilleure montee en charge fu processus ? Des choses dans mon jeu qui provoquerait des fuites memoires ou autres bizarreries ? D’autres pre requis logiciels (librairies, framework, etc) ?
Tu as donc un sacré jeu pour ralentir autant les PC.
Néanmoins, sache que GDevelop n’utilise qu’un seul coeur du processeur (pas pratique d’en utiliser plusieurs). De plus, la carte graphique est mise à contribution pour tout l’affichage (SFML, basé sur OpenGL).
860M donc c’est un portable ? Si c’est le cas, il faut qu’il force peut-être le jeu à se lancer sur le GPU Nvidia et pas sur le chipset intégré Intel (il doit sûrement avoir NVidia Optimus sur son PC).
Dans le moniteur de ressources, regarde la colonne “Plage de travail”. C’est là que l’essentiel de la mémoire (graphique) utilisée se trouve.
Peut-être aussi que ton ami a Avast, qui a tendance à balancer du sandbox à tout va. Désactive le mode sandbox et/ou teste en mode administrateur pour voir.
En natif, tu a le debugger qui est pratique pour voir le nombre d’objets existant : vérifie qu’il s’envole pas vers l’infini, auquel cas il faudrait supprimer les objets inutilisés
Merci pour les précisions, mode admin testé, idem, pas de sandbox avast, on va creuser pour optimus au pire je lui ferai crééer une régèle dans le panneau de config nvidia pour forcé le proc nvidia à tourner !
Je suis moi même sur laptop core i73630QM et Geforce 660M GTX, rien touché, donc je sais pas si optimus peut foutre la merde partout, ni comment vérifier que c’ets bien le proc nvidia qui est sollicité ? (je connais de vieux tools nviia pour ça dans le temps mais que sur chipset nforce).
Je confirme pour les objets, aucuns soucis, pour l’instant le jeu tourne sur une moyenne de 800 objets constants (j’utilise les automatisme de destruction hors de la scene) + règle custom pour certains objets que j’ai besoin de faire sortir. Moyenne haute je ne devrais jamais dépasser les 1200 objets. Quand j’ai découvert Gdevelop (et pourquoi je m’y suis lancé à fonds), j’ai fait des tests de charge et ça avait l’air d’encaisser sans broncher les 12000 objets…
Le jeu en lui même risque d’être assez tape à l’oeil, il l’est déjà actuellement sans avoir réalisé même pas 1% des graphismes (je suis pas mal photoshopiste à la base). Niveau rendu pour comparer ce vers quoi je tends : Gratuitous space battle, en mieux !
Bonjour, j’ai lu de travers le topic est,
12 000 objets ?
J’ai récemment changer de carte graphique pour une NVIDIA GTX970 est actuellement je les supporte, cependant avec mon ancienne carte graphique au delà de 800 c’était injouable !
Regarde la VRAM disponible de ton pote et comme suggérer essaye vraiment de diminuer le nombre d’objets…
Bin Vram s’il est sur la nvidia il est à 2Go donc ça gère, en intel HD 4000 (si c’est bien ça qu’ils collent encore dans les intel) c’est limité à 64 Mo…
Mais bon grossomodo c’est pas des objets différents, c’est un même objet créé à différentes positons/vitesses/orientations, en ça je sais pas comment c’est géré en Vram par Gdevelop mais sur des softs que j’ai utiliser par le passé comme Director/Flash c’était pas un souci pour la ram de gérer 10000 occurences d’un meme objet bitmap, là seul 4ian pourra nous répondre je pense…
C’est pas GDevelop qui gère directement la VRAM.
Le problème peut aussi venir (vient probablement même) des événements : si il y a beaucoup d’événements “Pour chaque” inutiles par exemple (alors que l’on peut utiliser un événement standard).
Ca en effet j’en ai, mais pas sûr qu’ils soient inutiles car je m’en sers principalement pour donner une espece d’IA (on va plutôt dire un comportement individuel, restons modeste !) propre à chaque objet.
12000 objets inanimés vont tirer sur les performances de la carte graphique, et généralement ça passera.
12000 objets dont la moitié animés par des évènements, ça peut donner très vites des calculs intensifs pour le processeur : Il vaut mieux éviter au maximum d’interagir avec des objets lointains si on a pas besoin par exemple, ou limiter les effets/simplifier certaines choses au besoin (le plus simple étant que si un objet est trop loin de la caméra, ne pas l’animer/faire d’évènements dessus).
Quelque chose par conséquent pour abaisser les performances, comme dit plus juste au-dessus :
Si les ennemis sont à moins de 600px du héro alors leur donner l’IA sinon ne pas les faire bouger.
C’est ce que je fais et je pense pas que ce soit le problème. Comme demander dans le premier poste, rapport au proc, je pense pas lui tirer sur la tronche avec mes comportement d’objets, je ne vois jamais plus de 10% de ressources utilisés par mon client.
Précisions par rapport à optimus et combat entre les 2 proc graphiques :
Mon jeu dans les deux cas, donc que j’utilise le GPU nvidia ou le GPU intel intégré, tourne pareil ! Je viens à me diriger sur la façon dont je tir sur le processeur, alors que je le répète, tout juste 10% sur les pics pour gamewin.exe
T’as un processeur 8 coeurs/threads ? Si c’est le cas 10% ~= Utilisation quasi maximale d’un coeur du processeur, donc pas possible de faire plus.
On veut bien voir un extrait de tes événements ou ton projet en entier si tu le veux…
Trop tôt pour l’instant j’ose pas montrer, et vu ce dans quoi je suis parti je pense releaser une demo mais quand ça sera suffisamment avancé, je dois déjà être à 100h de boulot en tout découverte de Gdevelop+redaction du GDD+bases de certaines phases(niveau rendus graphiques notamment, je suis tombé amoureux du système de particule).
Je vous cache pas je suis parti à priori dans une bonne usine à gaz avec au bout du tunnel une probable release commerciale(sur plateforme indé, voir sur un steam greenlight + kickstarter), d’où ma “fébrilité” sur ce point.
J’ai pas mal de background dans la crea et c’est pour moi la premiere fois que je me lance dans un projet seul, où au moins je me ferai pas “lâcher” par des gens qui changeant de motivation/orientation comme une girouette ! Perdu trop de temps dans les années passées sur des projets qui s’auto-sabordent ! Là au moins j’ai la main sur tout : dev, audio, graphisme, rien que je ne puisse faire seul !
De là c’est sûr sans lâcher de sources, c’est dur de se faire aider !
On peut pas autoriser plus de Thread à l’exécutable ? Ou peut-etre est-ce dans les tuyaux pour un jour un client multicore ?
Faudrait que les événements puissent s’exécuter en parallèle (sinon, aucun intérêt) : comment rendre ça simple et ergonomique étant donné que c’est un concept très complexe.
Il faudra voir le projet pour essayer de l’optimiser mais la sans démo - projet ou screen des événements on ne peux pas faire grand chose. Cependant je trouve quand même énorme le fait d’avoir 800 ou plus objets sur la même scène !
Non sur 4 calques je t’assures pas si énorme que ça comparer à ce que je faisais sur les machines il y a 10 ans, c’est bcp plus les particules qui me scotchent perso j’en envoie pas mal !
De toute façon j’aurai besoin de testeurs à un moment et à un autre ! Pour moi les perfs RAS, je vous dis c’est juste sur quelques configs apparemment que ça pose problème ! Après c’est vrai que si on pouvait bénéficier d’une réelle parallélisation sur les tous les cores/threads, ça serait le panard !
Du coup je ne m’explique toujours pas ces performances sur la config à mon pote… il a réessayer optimus lance bien par défaut le proc nvidia (et à priori je ne sature même pas les 64Mo de Vram du chiopset intel HD). Je donnerai des détails si je peux !