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 :

Comprendre la programmation d'un jeu vidéo : la boucle de jeu vidéo


Sujet :

Développement 2D, 3D et Jeux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut Comprendre la programmation d'un jeu vidéo : la boucle de jeu vidéo
    Bonjour à tous,

    J'ai remarqué que certains nouveaux programmeurs (nouveaux dans le domaine du jeu vidéo) ne comprenait pas toujours ce qu'est la boucle de jeu. Ainsi, j'ai voulu faire le point pour poser cette base de la programmation d'un jeu.

    Bonne lecture.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Membre éclairé
    Homme Profil pro
    Cocher moderne
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Oman

    Informations professionnelles :
    Activité : Cocher moderne

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Par défaut
    Salut,

    Excellent tutoriel, simple et très bien expliqué!

    Pour aller (un peu) plus loin : http://gameprogrammingpatterns.com/game-loop.html

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Par défaut
    Ah ben du coup j'ai lu les deux. Ils sont très bien.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    Merci pour ce cours.
    J'étais resté à la programmation grand papy ou tout le monde possède la même machine, sans prendre en compte la disparité des configs.
    Du coup je viens de réaliser certaines choses

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 83
    Par défaut
    Merci pour cet article intéressant !

    Juste une remarque : dans les bout de pseudo code, dommage qu'il y ait du mélange français/anglais ("tempsDebut = time()" par exemple) et des fautes de français ("aCliquerSurLaCroixRouge()" qui doit se lire je pense "à cliqué sur la croix rouge").

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Hello,

    Merci pour l'article, c'est intéressant. Je m'étais essayé à XNA il y a quelques temps pour découvrir la programmation de jeux en tentant de faire un genre de candy crush et ça m'aurait bien aider d'avoir ça à l'époque.

    Sinon, j'ai relevé ceci :
    Si tout va bien, notre boucle de jeu s'exécute 60 fois par seconde. Donc la position en X de l'élément se sera déplacée de 60 * vitesse en une seconde. Cela est totalement convenable lorsque « tout va bien ». Mais si, pour une raison ou une autre, le programme ralentit, nous ne sommes plus sûrs de toujours avoir 60 images par seconde. Si on tombe à 30 images par seconde, en une seconde notre élément se sera déplacé de 30 * vitesse. Le déplacement aura été deux fois moins lent.
    Ce ne serait pas deux fois plus lent par hasard ? Ou alors il y a encore quelque chose qui échappe au novice que je suis.

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Merci à tous pour vos retours !

    Citation Envoyé par Guildem Voir le message
    Juste une remarque : dans les bout de pseudo code, dommage qu'il y ait du mélange français/anglais ("tempsDebut = time()" par exemple) et des fautes de français ("aCliquerSurLaCroixRouge()" qui doit se lire je pense "à cliqué sur la croix rouge").
    C'est corrigé. Par contre, pour la fonction time() (et delay()), je les laisse en anglais car ce sont des fonctions provenant des bibliothèques que l'on utile. Les fonctions en français sont celles que l'on doit surement faire nous-même. Sachant que time() est une fonction qui existe vraiment sous Linux et qui fait relativement la même chose que ce que nous espérons dans le tutoriel et delay() se réfère à SDL_Delay() par exemple (pour la SDL).

    Cela permet de simplifier la recherche dans une documentation, je pense.

    Ce ne serait pas deux fois plus lent par hasard ? Ou alors il y a encore quelque chose qui échappe au novice que je suis.
    En effet, j'ai du inversé ma logique en cours de route. Corrigé

    Petite question : y'en a-t-il d'autres de prévu du même style, sur des points précis de développement de jeux ?
    Oui, je compte faire une petite série dans ce style. Malheureusement, je ne peux pas prévoir quand. Mais j'aimerai bien poser toutes les bases de la construction d'un jeu (si possible indépendamment du langage ou de la bibliothèque).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. comprendre ce programme
    Par diamentelle dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/04/2009, 15h33
  2. Comprendre un programme Matlab?
    Par nejm59 dans le forum MATLAB
    Réponses: 22
    Dernier message: 12/12/2008, 20h32
  3. Comprendre un programme
    Par Konala dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 27/10/2008, 12h21
  4. Comprendre un programme C simple décompilé
    Par _jeez_ dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 07/10/2007, 16h06
  5. Réponses: 1
    Dernier message: 25/08/2007, 23h14

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