Ralentissement

Bonjour tout le monde ,

J’ai un petit soucis :slight_smile:

J’ai crée enfin recopier le système de pluie dans les exemples de GD et j’ai rajouter un petit système qui tout les 8 secondes déclenchent un éclair et au bout de 9 le tonnerre retentit, j’utilise donc un chronomètre bien entendus je le déclenche arrivé à 8 sec = image d’éclair ; à 8.5 sec effacement de l’image éclair ; à 9.00 sec déclenchement du son puis retour à zéro du chronomètre.

Lorsque je test tout à l’air de fonctionner correctement parfois un léger ralentissement se fait ressentir mais rien de bien méchant mais lorsque je compile le projet en exécutable lorsque la foudre arrive le jeu se fige environ 5 seconde et puis repart on entend le son on voit l’éclair mais on sent bien que ça lag :slight_smile: .

J’utilise des évènements externes pour appeler la majorité des choses, je me disait que ça évitait de charger les scènes j’essaye de faire un jeu avec plusieurs maps, énigmes, inventaire… J’ai vu a de nombreuses reprises que GD n’était pas fait pour ce genre de jeu mais je reste convaincue que cela reste possible, simplement si vous m’apprenez aujourd’hui qu’il est impossible que GD à des limites je serais déçus de laisser tomber mon projet :frowning: .

Pour aider je vous montre la liste des évènements pour l’orage je précise que si je désactive cet évènement plus de problème j’en conclut donc qu’il est responsable. :slight_smile:

voici l’image de mes évènements ce sont les 3 premiers:

EDIT 1 : Ah je viens de m’apercevoir que mon image “éclair” était trop grande 3000 sur 3000 :smiley: je crois que GD aime pas les grandes images, mais bon j’ai réduit à 800 par 600 ce qui me semble raisonnable ça lag toujours un peu après compilation.

En espérant avoir été clair dans mes explications, merci d’avance pour votre aide.

Cordialement.

3000x3000 c’est trop. Une imaghe qui recouvre la réso de l’écran suffit.
Tu pourrais aussi prendre une image png de 80x60, et mettre son echelle à 10 à sa création.

Par contre, entre 8 et 8.5 secondes, tu crées une infinité d’objets “Orage”.
Rajoute à ta conditionnelle “si nombre d’objets Orage = 0”. Ainsi, un seul objet orage sera créé.

Mais on peut faire mieux : créer un objet Orage avec deux animations :

  • animation zéro avec une seule image vide
  • animation 1 avec une succession d’images blanches et d’images vides

Ainsi, il suffit de jouer l’animation d’orage 1 de manière aléatoire.
Tu peux même créer plusieurs animations différentes, et en jouer une de manière aléatoire, afin de varier les orages.
Tu pourras ensuite synchroniser ton bruitage avec le numéro d’animation du sprite Orage (si animation > 0 alors jouer un son)

Ton générateur de pluie ne me semble pas top-top …
Perso, j’aurai créé ça avec un particules que je repositionne de manière aléatoire à l’écran, plus ou moins vite et avec plus ou moins de débit, selon l’intensité voulue.

Ouais effectivement :slight_smile: .

Effectivement !! merci pour l’infos j’avais pas du tout pensé à ça.

J’avais remarquer ce problème et toi aussi, merci pour la solution que je n’avais pas ! :slight_smile:

Ah bah merci !! :smiley: , je plaisante, bah j’ai pris tout simplement celui du tuto, après j’avais essayé avec les particules en créant des lignes mais j’arrivais pas a orienter correctement le bazar. Mais faudra que je réessaye

En tout cas en grand merci pour tes solutions je m’en vais modifier tout ça

Et petite question je veut pas réouvrire un poste pour ça, mon projet en cours consiste en un jeu complet c’est à dire relativement long et je me demande si GD a des limites aux niveau évènement, scènes… Après si y’a que le fait que ça me prendra un tout fou c’est pas grave mais est-ce possible ?

Tu peux orienter les particules en jouant sur l’angle et la force. Par contre, les particules ne sont pas (encore) dispo sous HTML5.

EDIT
Un peu comme ça :

[spoiler]

[/spoiler]

Pour les limitations de GD avec de grands projets, mon projet actuel fait environ 70 scènes, et ça rame/plante sec. 4ian regarde cela de plus près, car c’est lié à la manière dont GD prépare les aperçus.

En gros, pour gagner du temps, dès qu’une scène est modifiée, GD lance un processus en arrière-plan pour compiler la scène modifiée. Cela permet d’avoir un aperçu rapide par la suite. Le souci est que cela consomme des ressources exponentielles en fonction du nombre de scènes (et de ses évènements externes).
Je dirais qu’au delà de 50 scènes (et autant d’objets sprite en global ? ), la conso mémoire/proc est trop élevée pour une utilisation optimale du logiciel.
Dans ma situation actuelle, je dois fermer GD puis le rouvrir pour tester mes modifications, sinon, l’aperçu plante ou freeze. Idem pour l’exportation que je dois réaliser à l’ouverture du logiciel.

A noter aussi que l’export en natif prend un gros paquet de temps, et qu’il vaut mieux avoir un quad-core (testé sur un celeron D = presque une heure d’attente pour l’export en natif). L’export en web est bien plus rapide (moins de 3 minutes). Je préfère donc souvent exporter directement mon projet en web, plutot que de risquer un aperçu web qui peut planter 9 fois sur 10.

Salut

Merci pour les particules je vais tester je verrais si c’est mieux :slight_smile: .

Ah mince c’est dommage ça !!! Oh i4an va bien trouver la solution :slight_smile: , j’ai peur de commencer sérieusement mon projet et de me retrouver bloqué. En tout cas merci pour toutes tes explications très aimable de ta part.

Dans la majorité des jeux, il est bon d’essayer d’utiliser les agencements externes plutôt qu’une multitude de scènes: C’est plus flexible et très très léger, il n’y a aucun soucis pour avoir des centaines d’agencements externes.

Bah justement sur mon projet actuel j’utilise beaucoup d’évènement externe pour appeler la météo, le système de déplacement et bien d’autres :slight_smile:
et je commençais à douter et me demander si c’était bon pour GD, j’ai ma réponse merci.

C’est une bonne chose, mais je parle surtout d’agencements externes.
Si tu créé une scène pour chaque niveau de ton jeu par exemple, le code des évènements sera mulitplié à chaque scène, ce qui devient lourd à la fin.
Il faut mieux avoir une scène qui sert de moteur de jeu, et dans laquelle tu créé les objets du niveau que tu veux avec les évènements, notamment l’action pour créer les objes provenant d’un agencement externe.

Avec ça, t’a un jeu flexible et léger même avec 400 niveaux :slight_smile:

Ah pardon oui mais honnêtement j’ai du mal à comprendre l’utilisation des agencement externes.

Parce que, si j’ai bien compris tu les utilisent comme une scène et par la suite tu peut la rappeler a n’importe quelle moment mais dans mon cas j’ai une iles avec plusieurs secteur exemple : le port, l’auberge, l’église… je suis bien obligé de faire une scène à chaque fois ou un agencement externe :confused: . Ouais je sais pas si c’est clair mon explication.

EDIT : Ok je crois avoir compris (ouais c’est un peu long a ce lancer chez moi :smiley: ) , donc si je compare à l’exemple fournis dans GD “Multiple levels with external layouts” , en fait le mieux et de créer tout ces niveaux via les agencement externes donc imaginons j’ai 30 levels et ensuite de créer les scène adéquate en rappelant ces agencement ce qui permet de ne pas alourdir les scènes ?

Dites moi si je me trompe !