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 :

quel est la différence entre un évènement dans un langage et une condition if dans une boucle exemple Unity


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 185
    Points : 90
    Points
    90
    Par défaut quel est la différence entre un évènement dans un langage et une condition if dans une boucle exemple Unity
    Bonjour tout le monde ,

    pourriez vous m'expliquer svp les différences entre un évènement dans un langage de programmation et une condition if dans une boucle exemple dans Unity et c# (en terme calculabilité complexité et nombre de cycle d'horloge utilisé et toutes les autres différences ) et merci encore une fois .

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    kamoulox
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 185
    Points : 90
    Points
    90
    Par défaut
    explique moi stp pourquoi ça n'a aucun sens,

    peut être que j'ai mal posé ou mal formulé ma question mais l'essentiel est la :

    pourquoi utiliser le système d'évènement est plus recommandé qu'utiliser des conditions if dans la boucle update du jeu, et en quoi il est meilleur ou en quoi il est différent (je ne comprends toujours pas la différence).

    (mes connaissances en la matière sont toutefois assez limitée et j'essai réellement d'apprendre ).

  4. #4
    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
    Citation Envoyé par Bioshok Voir le message
    pourriez vous m'expliquer svp les différences entre un évènement dans un langage de programmation et une condition if dans une boucle exemple dans Unity et c#
    bonsoir il n'y a pas de différence.Ce sont deux parties de code qui se complètent.
    Si une condition est remplie par exemple si le joueur est proche d'un obstacle alors on déclenche un événement soit le joueur s'arrête soit il fait une autre action...
    dans un jeu il faut une sorte de timer qui à intervalles réguliers scrutent ce que fait le joueur s'il appuie sur une touche, mettre à jour les déplacements des entités ennemies ou bien joueurs etc...
    ensuite c'est évident que plus il y a d'événements dans ce timer et dans la boucle de jeu plus l'affichage donc les Frames Per Second ( FPS ) va être ralenti et moins on aura de performances.
    Une technique très avancée serait de faire du code exécuté de manière parallèle ( bref un thread) si possible sur le GPU.

    Prenons par exemple un First Person Shooter réaliste la boucle de manière simple c'est
    -afficher la végétation ,les objets 2d comme les billboards
    -afficher les meshes 3d
    -tester si le joueur est proche des ennemis dans ce cas-là il faut mettre en mouvement les Non Player Characters ( NPC)
    -tester si le joueur alors envoie un projectile
    -tester si le projectile touche un NPC
    -faire de l'optimisation de scène
    etc....
    donc en quelques millisecondes ça fait beaucoup de choses à faire

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 185
    Points : 90
    Points
    90
    Par défaut
    Bonjour et merci infiniment pour les explications,

    donc si je saisis bien:

    un évènement et une condition if se complètent c'est comme si en validant la condition on appelle alors une fonction (celle de l'évènement) n'est ce pas ?

    (je n'ai jamais utilisé de système d'évènement ou un délégué auparavant, je n'utilisai jusqu'à maintenant que de simple bloc de code dans les conditions donc peut être que je me trompe)

    mais je penses dans ce cas qu'implémenter du simple code lorsqu'une condition se vérifie est beaucoup plus optimisé en terme de performance que d'exécuter un évènement (je parle toujours en terme de nombre d'instruction par cycle d'horloge utilisé pour chaque type de partie du code car j'ai lu quelque part qu'appeler une fonction utilise plus d'ipc qu'implémenter une condition ou une boucle directement)

    (je ne retrouve plus le tableau récapitulatif des ipc utilisé selon les types de parties de code sources implémentés )

    (je ne sais pas si tu me comprends bien mais c'est pour ça que je parle d'optimisation et de différence par contre peut être que je me trompes complétement sur la compréhension des évents et des delegates c'est pour cela que je demande)

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 185
    Points : 90
    Points
    90
    Par défaut
    pardon, j'ai tout mélangé:

    je voulais parler de la comparaison de nombre de cycle d'horloge utilisé pour l'exécution de chaque type d'instruction et non d'instruction par cycle d'horloge.

    Nb :
    j'ai pris comme référence le bon vieux cpu Intel x86 depuis l'assembleur , mais je penses que ça sera toujours la même chose quelque soit le type de processeur utilisé ou depuis n'importe quel langage de programmation n'est ce pas ?


    c'est juste à titre indicatif.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    La différence entre une sonnette et toi qui regarde par la fenêtre toutes les minutes si quelqu'un est devant chez toi ?

    Tu pars dans tous les sens et ce que tu racontes n'en a plus aucun.
    Un évènement c'est un truc qui se produit un moment. Ou pas.
    Un if c'est... un if. C'est exécuté / testé chaque fois.
    Comment tu espères savoir le "nombre de cycles" d'un évènement ?

    je penses dans ce cas qu'implémenter du simple code lorsqu'une condition se vérifie est beaucoup plus optimisé en terme de performance que d'exécuter un évènement
    Ok. Et tu te bases sur quoi ? L'alignement des étoiles ?
    Implémenter du code ça coûte rien, c'est juste du texte. L'exécuter par contre oui.
    Et plus optimisé par rapport à quoi ? Exécuter du code est plus optimisé qu'exécuter un autre code ? Ben améliore le second.
    Quant à l'évènement, c'est sûrement pas toi qui l'exécutes. Au mieux tu vas écouter et réagir à un évènement.
    Si tu veux vérifier X trucs, tu vas aligner X if dans ton Update (puisque tu es sur Unity). À quel moment tu décides qu'il y en a trop et que la lisibilité est impactée / dégradée ?
    Enfin, une condition c'est pas forcément instantannée à vérifier.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    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
    Citation Envoyé par Bioshok Voir le message
    pardon, j'ai tout mélangé:
    je voulais parler de la comparaison de nombre de cycle d'horloge utilisé pour l'exécution de chaque type d'instruction et non d'instruction par cycle d'horloge.
    oui il ne faut pas confondre le code assembleur et le code spécifique pour Unity en C#
    Citation Envoyé par Bioshok Voir le message
    (je n'ai jamais utilisé de système d'évènement ou un délégué auparavant, je n'utilisai jusqu'à maintenant que de simple bloc de code dans les conditions donc peut être que je me trompe)
    mais je penses dans ce cas
    là aussi il ne faudrait pas tout mélanger.Pas besoin de delegate à moins que la doc de Unity le stipule.
    Quel est le projet plus précisément, vous voulez faire quoi ?

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 185
    Points : 90
    Points
    90
    Par défaut
    Bonsoir,

    je ne travaille actuellement sur aucun nouveau projet...
    je suis à vrai dire en stand by(en grande partie pour me former, combler mes lacunes et m'améliorer dans le développement jeux vidéo)

    mais j'utilisai d'habitude justes de simples conditions if pour simuler des évènements dans mes anciens jeux unity (jeux de plateformes 2d principalement) (et les performance laissaient à désirer) j'étais curieux de voir ce que ça va donner en utilisant de vrais systèmes d'évènements et je penses que je commence a comprendre mieux le principe grâce à vous deux , merci

  10. #10
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Un gros avantage des event est le decouplage entre les composants, ils n'ont pas besoin de se connaitre, mais juste de parler la meme langue.
    Couple a une state machine, c'est tres efficace pour manipuler les ecrans et leur ui.
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  11. #11
    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
    oui exact ( Yildiz a sans doute mieux compris la problématique que moi) d'où l'intérêt de faire des objets interfaces, des modules bref ce qui fait l'intérêt du paradigme objet

Discussions similaires

  1. Quel est la différence entre ces deux écritures ?
    Par TocTocKiéLà? dans le forum C++
    Réponses: 5
    Dernier message: 06/08/2007, 14h11
  2. Quel est la différence entre une bibliotheque et une entete ?
    Par ..::snake::.. dans le forum Bibliothèques
    Réponses: 8
    Dernier message: 12/06/2007, 14h23
  3. CSS: Quel est la différence entre ceci
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 19/09/2006, 16h17
  4. CSS: quel est la différence entre line-height et height
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 29/08/2006, 23h30
  5. [debutant] quel est la différence entre .pl et .pm?
    Par pierrot10 dans le forum Langage
    Réponses: 4
    Dernier message: 17/07/2006, 12h10

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