IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Amélioration vitesse d'éxecution ?


Sujet :

SDL

  1. #21
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    554
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 554
    Points : 181
    Points
    181
    Par défaut
    Oui je voulais dire, via SDL. Pour la SFML, je l'utiliserai peut-être pour un autre projet mais là pour le moment j'améliore les performances car je n'ai pas le temps de changer de librairie.

    Matthieu Brucher, en fait c'est un projet qui se déroule sur toute l'année, le principe du jeu ce sont des tanks qui se déplacent dans des labyrinthes, il y a 4 équipes et elles doivent tout bêtement exterminer les équipes adverses.
    C'est surtout pour illustrer les réseaux neuronaux puisque c'était le centre du projet mais je ne voulais pas que le jeu rame pour une dizaine de tank ^^.

    Merci encore à tous

  2. #22
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par black is beautiful Voir le message
    Matthieu Brucher, en fait c'est un projet qui se déroule sur toute l'année, le principe du jeu ce sont des tanks qui se déplacent dans des labyrinthes, il y a 4 équipes et elles doivent tout bêtement exterminer les équipes adverses.
    C'est surtout pour illustrer les réseaux neuronaux puisque c'était le centre du projet mais je ne voulais pas que le jeu rame pour une dizaine de tank ^^.
    Sympa comme projet Réseau neuronaux obligatoires ou c'est ton choix ?

  3. #23
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    554
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 554
    Points : 181
    Points
    181
    Par défaut
    C'est mon choix, j'ai d'ailleurs eu du mal à le faire accepter par le prof car il me disait que c'était un sujet qui avait déjà été proposé mais qui n'aboutissait pas en deuxième année de prépa.
    Finalement j'ai réussi, pas facilement ^^ mais avec l'aide de personne qui connaisse le domaine et un peu de boulot, j'y suis parvenu.

    Les tanks se déplacent à l'aide de capteurs tout autour d'eux, qui représentent la distance entre eux et un obstacle. C'est ce que je donne en entrée au réseau. Il y a des capteurs supplémentaires pour la détection d'ennemis. Et en sortie du réseau, il choisit dans quelle direction tirer et tourner.

    Je fait l'apprentissage du réseaux de neurones en jouant, c'est-à-dire qu'à chaque instant les décisions que je prends sont enregistrées avec l'état des capteurs et j'enregistre le tout en mémoire puis je les proposes au réseau. Je test plusieurs dimensionnement. Et ensuite je lance le jeu avec l'ensemble des tanks.

    En tout cas si certains s'intéressent aux intelligences artificielles, n'hésitez pas à vous lancer dans les réseaux neuronaux, après des heures et des heures de galèrent c'est super gratifiant de voir ses tanks se déplacer seul . J'hésitais avec les algorithmes génétiques mais peut-être que je ferai ça l'année prochaine

  4. #24
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par black is beautiful Voir le message
    C'est mon choix, j'ai d'ailleurs eu du mal à le faire accepter par le prof car il me disait que c'était un sujet qui avait déjà été proposé mais qui n'aboutissait pas en deuxième année de prépa.
    Finalement j'ai réussi, pas facilement ^^ mais avec l'aide de personne qui connaisse le domaine et un peu de boulot, j'y suis parvenu.

    Les tanks se déplacent à l'aide de capteurs tout autour d'eux, qui représentent la distance entre eux et un obstacle. C'est ce que je donne en entrée au réseau. Il y a des capteurs supplémentaires pour la détection d'ennemis. Et en sortie du réseau, il choisit dans quelle direction tirer et tourner.

    Je fait l'apprentissage du réseaux de neurones en jouant, c'est-à-dire qu'à chaque instant les décisions que je prends sont enregistrées avec l'état des capteurs et j'enregistre le tout en mémoire puis je les proposes au réseau. Je test plusieurs dimensionnement. Et ensuite je lance le jeu avec l'ensemble des tanks.

    En tout cas si certains s'intéressent aux intelligences artificielles, n'hésitez pas à vous lancer dans les réseaux neuronaux, après des heures et des heures de galèrent c'est super gratifiant de voir ses tanks se déplacer seul . J'hésitais avec les algorithmes génétiques mais peut-être que je ferai ça l'année prochaine
    Tu verras par la suite des outils bien plus déterministes et moins boîtes noires que les RN (que je n'aime pas pour ces raisons). Les AG, ils peuvent être utilisés pour déterminer la structure de ton RN, par exemple.
    Pour des déplacements et de l'intelligence, des réseaux bayesiens peuvent être un choix plus judicieux, mais en général, on voit ça après la prépa, quand on a la chance de les étudier.

  5. #25
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    554
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 554
    Points : 181
    Points
    181
    Par défaut
    Les réseaux neuronaux de bases on ne les étudiera pas donc ceux qui tu viens d'énoncer encore moins je pense, mais je vais voir ça par moi même parce-que j'adore ça . Merci pour l'info en tout cas

  6. #26
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Salut Black comment as-tu amélioré les performances alors ?
    Ou était le goulot d'étranglement ?

  7. #27
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    554
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 554
    Points : 181
    Points
    181
    Par défaut
    Le jeux fonctionne nettement mieux maintenant.
    Premièrement j'utilise le multi-threading seulement pour séparer l'affichage.

    Ensuite j'utilise des tableaux à la place des fonctions trigos.

    Et plus gros problème provenait de la boucle d'affichage. Je réaffichais entièrement le terrain à chaque boucle, ainsi que tous les objets. Maintenant je rafraîchis seulement les objets mobiles. Cette amélioration m'as permis de passé de 100 fps à 400 fps... ce qui n'est tout de même pas négligeable.

    J'ai donc ensuite mis en place le ralentissement du FPS à 50. Par contre pour ce qui est du mouvement j'ai quelques améliorations a apporter encore puisque quand je rajoute beaucoup de tank (de l'ordre de la cinquantaine maintenant) ils subissent un ralentissement mais l'affichage reste parfaitement correct. Il y a donc un problème dans la gestion des collisions.

    Je sais d'où ça vient, c'est parce-que je test les collisions à chaque boucle, sans savoir si le tank a pu changer de position. Donc je vais rajouter le contrôle des collisions, si un tank n'as pas bougé, pas besoin de faire de contrôle de collision.

  8. #28
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    On pourra voir ton jeux de tanks une fois fini ?

    Je sais d'où ça vient, c'est parce-que je test les collisions à chaque boucle,
    sans savoir si le tank a pu changer de position. Donc je vais rajouter le contrôle des collisions, si un tank n'as pas bougé, pas besoin de faire de contrôle de collision.
    c'est certain que si tu fais des tests de collision alors que ton tank n'a pas bougé ça doit faire pas mal de calculs inutiles pour rien...surtout si tu as des dizaines d'entités.

  9. #29
    Membre actif
    Inscrit en
    Septembre 2003
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 391
    Points : 207
    Points
    207
    Par défaut
    Citation Envoyé par black is beautiful Voir le message
    Ensuite j'utilise des tableaux à la place des fonctions trigos.
    hé hé, je reconnais quelques trucs...

    Et par curiosité,t'as mis combien de valeur dans ton tableau trigo ? (pour un quart de periode ou bien pour une periode entiere ?)

  10. #30
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    554
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 554
    Points : 181
    Points
    181
    Par défaut
    J'ai 8 valeurs dans le tableau sur une période entière. Je n'ai pas besoin de plus.

    Pour voir le projet, sans aucun problème, je finis quelques petites choses et je posterai des images.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 41
    Dernier message: 11/07/2012, 08h42
  2. connaitre la vitesse d'éxecution d'une boucle while
    Par victor22 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 10/05/2010, 15h15
  3. Améliorer vitesse de chargement d'une MasterPage
    Par amamildor dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 29/11/2009, 17h47
  4. Réponses: 6
    Dernier message: 30/06/2008, 10h14
  5. Améliorer la vitesse de parcours d'un gros recordset
    Par Vld44 dans le forum Vos contributions VB6
    Réponses: 8
    Dernier message: 28/01/2008, 01h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo