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

Développement 2D, 3D et Jeux Discussion :

[C++] problème collision


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut [C++] problème collision
    hello everybody.
    Voila je bosse en ce moment sur un petit jeu de plateforme en opengl.
    J'aimerais bien que mon moteur physique soit indépendant de mon affichage.
    Je m'explique: lorsque je met à jour mon affichage,cela prend un certain temps, temps pendant lequel mon moteur physique ne peut tester les collisions. ce qui fait que si je fait tourner mon jeu sur une bécane pourrie qui rame à fond à 2fps les collisions ne sont détectée que 2fois par secondes, autant dire que mon moteur physique ne fait plus du tout son taf. J'avais pensé gérer l'affichage et les physiques sur deux processus qui tourneraient parallellement mais je ne sais po du tout comment m'y prendre... help!

  2. #2
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    Tu peux utiliser plusieurs thread plutôt que plusieurs processus, mais de toutes façon si l'affichage rame vraiment, je vois pas bien l'intérêt...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    bah l'intéret est simple : pouvoir faire tourner mon jeu sur nimporte quelle bécane sans avoir un bug de collision qui pourrirait le gameplay
    packe ken je di ke ca rame jabuz c doit tourner a 15 20 fps donc c pas génant pour jouer mais la detection de collision s'effectue mal.

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    La réponse qu'il t'a donné est la bonne. Il faut que tu regardes du côté des threads, pas des processus. Pour avoir un aperçu de l'organisation possible, tu peux regarder lire cet article de Gamasutra.

    Edit: j'ai compris qu'un mot sur 4 à ton dernier message. Peux-tu faire un effort sur l'orthographe stp?

  5. #5
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Je suis pas expert en développant de jeux, mais déjà si tu as un moteur physique qui rame plus que le rendering 3D t'est à mon avis mal barré. Tu dervrais déjà améliorer la performance de ton moteur avant bidouiller avec des threads.

    De mémoire il me semblait que la gestion des collisitions était moins gourmand en traitement que le rendering (mis à part les accélérations liés à la CG) ?
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    merci pour ces réponses, désolé pour l'orthographe d'habitude je fais attention mais là je devais être préssé.

    mais déjà si tu as un moteur physique qui rame plus que le rendering 3D t'est à mon avis mal barré.
    en fait c'est pas le problème, bon en effet il se peut qu'il y ai un travail d'optimisation a faire, mais c'est plutôt l'affichage qui rame et qui, donc empêche le moteur physique de faire son travail.

    par exemple:

    • à t=0 un objet est tres proche d'un mur et il est relativement rapide
    • ton pc affiche l'image il met mettons 20 ms pour l'afficher
    • on se retrouve à t=20ms et il est trop tard pour que ton moteur physique détecte la collision, du coup l'objet a deja traversé le mur et le bug s'affiche

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pour ça tu peux aussi utiliser des méthodes de détection de collision continues. Mais bon étant donné qu'utiliser un intervalle de mise à jour régulier permet de garantir une certaine stabilité, effectivement avoir un thread séparé qui tourne à son rythme n'est pas forcément une mauvaise idée. Il y a même des moteurs physiques qui débloquent complétement avec des timesteps non réguliers.

    La physique, c'est du code perso ou tu utilises un moteur connu ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 56
    Points
    56
    Par défaut
    c'est un code perso (en fait c'est un pote à moi qui l'a fait )

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 275
    Points
    275
    Par défaut
    * à t=0 un objet est tres proche d'un mur et il est relativement rapide
    * ton pc affiche l'image il met mettons 20 ms pour l'afficher
    * on se retrouve à t=20ms et il est trop tard pour que ton moteur physique détecte la collision, du coup l'objet a deja traversé le mur et le bug s'affiche
    Pour ça tu peux aussi utiliser des méthodes de détection de collision continues.
    Oui. Dans le cas ou ton objet eraffle le mur, il risque d'être parfois détecté, parfois non si tu ne testes qu'à des intervalles fixes.

  10. #10
    Membre éclairé
    Avatar de N_I_C_S
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 450
    Points : 681
    Points
    681
    Par défaut
    Je crois que les seules méthodes infaillibles sont celles qui testent les collisions entre t-1 et t. Par exemple, on stocke le segment [position_derniere_frame, position_nouvelle_frame] de l'objet et à chaque frame on teste si le segment traverse un mur. Ca marche à 2 ou à 200 fps, frame-rate régulier ou pas, et pas besoin de thread...

Discussions similaires

  1. pygame : problème collisions
    Par mat238 dans le forum Programmation multimédia/Jeux
    Réponses: 4
    Dernier message: 21/05/2012, 01h24
  2. [XNA 3.1] Problème: Collision par pixel sur un niveau entier
    Par Nigeling dans le forum XNA/Monogame
    Réponses: 2
    Dernier message: 15/05/2011, 14h21
  3. Actionscript 2.0 problème collision
    Par BoloG dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 10/05/2009, 20h50
  4. [problème] collisions environnement
    Par pspflashsystem dans le forum OpenGL
    Réponses: 1
    Dernier message: 04/04/2009, 14h58
  5. Problème collisions HitTest()
    Par Manumation dans le forum Flash
    Réponses: 6
    Dernier message: 08/06/2007, 13h04

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