Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Probleme jeu qui prends trop de ressources  (Lu 5612 fois)

0 Membres et 1 Invité sur ce sujet

Ryohai

  • Invité
Probleme jeu qui prends trop de ressources
« le: Mai 14, 2012, 02:58:13 am »
Bonjour á tous, je suis entrain de creer un petit jeu en SFML mais après avoir regarder dans mon gestionnaire de taches je me suis aperçu que mon jeu prennais trop de ressources et il continue á monter tout le temps jusqu'a planter. Quelqu'un saurait comment regler ce probleme s'il vous plait ?


Merci d'avance.
« Modifié: Mai 14, 2012, 10:22:26 pm par Ryohai »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Probleme jeu qui prends trop de ressources
« Réponse #1 le: Mai 14, 2012, 08:19:54 am »
Citer
Quelqu'un serais comment regler ce probleme s'il vous plait ?
N'espère pas trop de réponses détaillées, en ayant donné si peu d'informations sur ton problème et sur ton code. Tout ce qu'on peut te dire, là, c'est que ton code comporte probablement des erreurs et que tu dois les corriger.

(et au fait c'est saurait, pas serais -- que diable le verbe "être" viendrait-il faire ici ?)
Laurent Gomila - SFML developer

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Re : Probleme jeu qui prends trop de ressources
« Réponse #2 le: Mai 14, 2012, 03:44:53 pm »
Citer
Quelqu'un serais comment regler ce probleme s'il vous plait ?
N'espère pas trop de réponses détaillées, en ayant donné si peu d'informations sur ton problème et sur ton code. Tout ce qu'on peut te dire, là, c'est que ton code comporte probablement des erreurs et que tu dois les corriger.

(et au fait c'est saurait, pas serais -- que diable le verbe "être" viendrait-il faire ici ?)

au moins "serait", t'y vas progressif, tu fais juste une faute de français, et comme ça tu peux prétexter "non mais je voulais dire "Quelqu'un serait-il à même de m'expliquer comment régler ce problème s'il vous plait ?"... mais non là avec la faute "dans la faute" t'es grillé désolé ...  ;D

Bon sinon :
"
Moi : - Ô boule de cristal ... dis moi qui est la plus be... quel est le problème dans mon code ?

elle : - il faudrait que tu me montre du code, et pas un projet de 500 lignes, une code minimal qui reproduit le bug. Pour tes ressources, si c'est du temps CPU, la première piste (que je connaisse) est une mauvaise manipulation d'un objet permettant la gestion évènementielle en temps réel de SFML (ou sf::Input) (ça m'arrivait de prendre 100% du proc avec, avant, car je ne savais pas m'en servir). Sinon pour la fuite mémoire, dont tu dois parler, il s'agit d'une erreur dans ton code encore une fois, probablement dûe à un oubli, ou à une mauvaise compréhension de la gestion mémoire des objets que tu créés (et que tu ne détruis pas ?)

- merci boule de cristal, je suis exactement au point de départ et mon premier post n'a servi à rien, mais merci.

- ça fera 400$
"
en espérant avoir pu t'aider (à comprendre qu'il faut arrêter les premiers posts inutiles).



« Modifié: Mai 14, 2012, 03:46:35 pm par kamui »

Ryohai

  • Invité
Re : Probleme jeu qui prends trop de ressources
« Réponse #3 le: Mai 14, 2012, 10:25:43 pm »
Ouais bon je vais me démerder, vous pouvez effacer les posts 'inutiles'.

Merci de votre aide ça m'a beaucoup aider  :) (Ou pas.)

lezebulon

  • Full Member
  • ***
  • Messages: 235
    • Voir le profil
Re : Probleme jeu qui prends trop de ressources
« Réponse #4 le: Mai 14, 2012, 10:40:49 pm »
Non mais c'est surtout qu'avant d'utiliser une libraire annexe (pour faire des jeux en plus), faut un minimum maitriser les bases du C++.... si tu es pas capable de reconnaitre que ton problème est une fuite mémoire, y'a du chemin avant de pouvoir se servir de la SFML

Ryohai

  • Invité
Re : Probleme jeu qui prends trop de ressources
« Réponse #5 le: Mai 15, 2012, 01:18:54 am »
C'est une fuite de memoire. Jvous est pas attendu pour savoir quelle est le probleme. Le seul truc que je voulais savoir c'est comment faire pour une fuite de memoire sur un delete de pointeur et non corriger mes phrases. Bref jvais me demerder seul. Effacez le posts c'est bete de garder un post inutile x)
« Modifié: Mai 15, 2012, 01:50:14 am par Ryohai »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Probleme jeu qui prends trop de ressources
« Réponse #6 le: Mai 15, 2012, 08:08:52 am »
Citer
Effacez le posts c'est bete de garder un post inutile x)
Non au contraire, c'est bien que les autres gens puissent avoir un exemple type du comportement à ne pas avoir sur un forum.

Franchement, si tu prends tout comme ça et ne te remets jamais en question, tu ne vas pas aller bien loin. Et ce n'est pas une critique, j'essaye de t'aider en te disant ça.
Laurent Gomila - SFML developer

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Re : Probleme jeu qui prends trop de ressources
« Réponse #7 le: Mai 15, 2012, 10:56:27 am »
C'est une fuite de memoire. Jvous est pas attendu pour savoir quelle est le probleme. Le seul truc que je voulais savoir c'est comment faire pour une fuite de memoire sur un delete de pointeur et non corriger mes phrases. Bref jvais me demerder seul. Effacez le posts c'est bete de garder un post inutile x)

Désolé si tu l'as mal pris, mais il fallait lire mon post avec beaucoup de légèreté, ce n'était aucunement une attaque, encore moins une moquerie. Je voulais juste (avec un peu d'humour, mais bon pour ça c'est raté ;D) te montrer quel genre de réponse (et je parle des réponses techniques que je t'ai donné) tu peux avoir avec si peu d'information. En espérant que tu aurais compris que ces premiers posts sans aucune information du style "svp aidez moi, j'ai un probleme dans mon code" sont assez frustrants pour les âmes charitables car à ce moment on ne peut désespérément rien pour toi. Voila pour le fond. Encore une fois pour la forme, il fallait le lire avec légèreté.

Quand à effacer ton post, en effet ça peut être un très bon exemple de ce qu'il ne faut pas faire. Mais ce serait encore mieux si après le posteur original se calmait, et nous montrait enfin du code pour nourrir notre curiosité naturelle ;) (sans rancune)

« Modifié: Mai 15, 2012, 11:22:04 am par kamui »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Probleme jeu qui prends trop de ressources
« Réponse #8 le: Mai 15, 2012, 11:31:25 am »
Non mais laisse tomber hein, il s'est désinscrit du forum ;)
Laurent Gomila - SFML developer

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Re : Probleme jeu qui prends trop de ressources
« Réponse #9 le: Mai 15, 2012, 12:08:14 pm »
Non mais laisse tomber hein, il s'est désinscrit du forum ;)

ah ...  :'(

[HS]
...aaamaaaa...ziiin graaaace...
[/HS]

Ryohai

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Probleme jeu qui prends trop de ressources
« Réponse #10 le: Mai 17, 2012, 02:01:47 am »
Laurent : Desole pour ma reaction, biensur que je me remet en question.


Kamui : J'ai déjà regler le probleme mais merci quand meme.

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Probleme jeu qui prends trop de ressources
« Réponse #11 le: Mai 18, 2012, 08:59:50 am »
salut,

tu pourrais nous partager le bout de code et le problème (et la solution) histoire de ?


Ryohai

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Probleme jeu qui prends trop de ressources
« Réponse #12 le: Mai 18, 2012, 12:25:49 pm »
Oui je veux bien mais le problème c'est que pour résoudre le problème j'ai refais mon jeu de zéro. Mais je pense que j'ai simplement fais une connerie avec un pointeur, et il y avait beaucoup de truc inutiles.

Sinon en gros:
        for(unsigned int i = 0; i < asteroid.size(); i++)
        {
            if(asteroid[i]->IsDead())
            {
                delete asteroid[i];
                asteroid[i] = 0;
                asteroid.erase(asteroid.begin() + i);
                i++;
            }
            else
            {
                asteroid[i]->MoveAsteroiddeux(5);
            }
        }

Si je ne dis pas de connerie j'avais fais une connerie sur ce bout de code au début
(Ce bout de code sert simplement à effacer mes sprite au bout de quelques secondes)
Donc voilà je sais pas exactement ou était le problème car j'ai refait mon jeu de zéro désolé ^^'

jDralliam

  • Jr. Member
  • **
  • Messages: 50
    • Voir le profil
Re : Probleme jeu qui prends trop de ressources
« Réponse #13 le: Mai 22, 2012, 05:16:55 pm »
Tu ne dois pas incrémenter ton compteur lorsque tu détruit un astéroide mais, au contraire le décrémenter.
Un autre façon de faire ce que tu essaie de faire, à l'aide d'un algorithme standard, ressemblerait à ceci :
struct MetteurAJourAsteroides
{
     bool operator()(Asteroide* p)
    {
         bool dead = p->IsDead();
         if( dead )
         {
               delete p;
         }
         else
         {
             p->MoveAsteroiddeux(5);
         }
         return dead;
    }
};
//....
std::vector<Asteroide*>::iterator newEnd = std::remove_if( asteroid.begin(), asteroid.end(), MetteurAJourAsteroides()); // on met a jour les asteroides et on place ceux qui sont détruit à la fin
asteroid.erase( newEnd, asteroid.end()); // on les supprime effectivement
 
La suppression est alors plus optimisée (faite une seule fois et surtout en fin de conteneur et non plus en milieu), et tu as moins de risque de te tromper.

Ryohai

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Probleme jeu qui prends trop de ressources
« Réponse #14 le: Mai 22, 2012, 10:34:41 pm »
Merci pour ton exemple  ;)