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 :

tutoriel "Architecture d'un jeu vidéo 3D"


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2012
    Messages : 11
    Points : 13
    Points
    13
    Par défaut tutoriel "Architecture d'un jeu vidéo 3D"
    Bonjour,
    j'essaie de comprendre l'article "Architecture d'un jeu vidéo 3D"
    http://khayyam.developpez.com/articl...age=page_2#LII
    . A la section "II. Les différents modules" il y a l'apparition de mutex, je ne savais pas ce que c'était j'ai donc fait quelques recherches, j'ai compris que ça servais de verrou, et que "lock" servait à actionner ce verrou. Par contre je ne comprends pas la séquence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void game::run(){
    	bool current_still_running = still_running;
     
    	// on crée un verrou pour accéder au mutex
    	boost::mutex::scoped_lock l(still_running_mutex);
    	l.unlock();	
     
    	while (current_still_running){
    		n->frame();
    		g->frame();
    		gfx->frame();
    		s->frame();
    		l.lock();
    			current_still_running = still_running;
    		l.unlock();
    	}
    }
    en fait je vois pas où apparaissent les threads différents, et si je prends un thread qui par exemple est entrain d'effectuer
    pour moi le mutex est déverrouillé, donc je vois pas en quoi ça empêcherai un autre thread de lancer
    et de rentrer dans la boucle... mais là je vois vraiment pas d'où sont créé ces threads.

    note : l'article http://apais.developpez.com/tutoriel...ltithread/#LIV (sur le multithreading) n'est pas finis... il n'y a aucun avertissement lorsque on ouvre l'article...

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		l.lock();
    			current_still_running = still_running;
    		l.unlock();
    Dans cette séquence, le lock sert de toute evidence a protéger l'acces en écriture sur la variable, variable qui doit donc etre accessible depuis d'autres fonctions/objets de maniere asynchrone, ce qui représente un danger si plusieurs threads essayent de l'écrire en meme temps.

    Regarde donc où cette variable est utilisée en dehors de cette méthode, ça t'aidera peut etre, j'espere.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2012
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    je pense avoir compris l'utilisation du mutex, quand il dit :
    La condition d'arrêt de cette boucle quasi infinie devra être modifiée par le moteur de jeu. L'architecture possède donc un booléen représentant l'arrêt du programme. Ce booléen devra être protégé par des verrous pour se garantir des accès concurrents éventuels.
    là pour le moment je ne vois pas où apparaissent l'utilisation de threads différents...

Discussions similaires

  1. [Tutoriel] Bug tuto 'Architecture d'un jeu vidéo 3D'
    Par Oxideur dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 14/09/2009, 22h16
  2. Question sur "Architecture d'un jeu vidéo 3D par Pierre Schwartz"
    Par TocTocKiéLà? dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 01/09/2009, 22h31
  3. Question sur Architecture d'un jeu vidéo 3D
    Par Polygon dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 28/10/2007, 12h43
  4. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

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