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

C++/CLI Discussion :

Utilisation des pointeurs pour le développement des jeux vidéo


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Juin 2021
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2021
    Messages : 20
    Par défaut Utilisation des pointeurs pour le développement des jeux vidéo
    Bonjour,

    J"apprends en ce moment le c++, j'aimerais savoir l'utilité des pointeurs dans le cadre des jeux vidéo. Si j'ai bien compris les pointeurs permettent d'économiser de la mémoire, donc les pointeurs permettrais d'optimiser le code pour avoir un rendu plus fluide ? J'ai déjà appris le C mais je n'ai pas compris la différence entre pointeur brute et intelligent.

    Pouvez-vous m'éclairer ?

    Cordialement

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 260
    Par défaut
    Un pointeur ne permet pas d'économiser la mémoire, c''est une variable qui contient une adresse mémoire qui est en général typé. C'est même le contraire, il occupe la taille d'une adresse mémoire qui correspond à une variable int, char, float, etc. occupant elle même sa mémoire. On est quelque fois obligé d'utiliser des pointeurs ( le plus courant étant l'utilisation des fonctions de chaines de caractères). Mal utilisé, ceux-ci provoquant des fuites mémoires (pointeurs plus utilisés désalloués), des crashs du au fait d'une non affection de valeur d'un pointeur (un pointeur créée non mis à null va pointer sur une valeur aléatoire, le contenu des cases mémoires lui ayant été allouées, ou la valeur null le pointeur ne pointant alors sur la case mémoire 0 du processus).

    En c++, les allocations mémoires se font normalement par les constructeurs et les désallocations par les destructeurs. Les pointeurs intelligents simulent le fonctionnement des pointeurs en c avec une meilleure gestion mémoire qu'en C.

    Dans le cadre d'un jeu, pour avoir un rendu plus fluide, il faut à mon avis au contraire utiliser au maximum la mémoire pour précalculer quand c'est possible, et c'est surtout les algorithmes qui vont compter.

    Je ne suis pas développeur, mes collègues DVP complémenteront ma réponse.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 502
    Par défaut
    les pointeurs permettent d'économiser de la mémoire, donc les pointeurs permettrais d'optimiser le code pour avoir un rendu plus fluide ? J'ai déjà appris le C mais je n'ai pas compris la différence entre pointeur brute et intelligent.
    C'est comme dire qu'un marteau permet de construire une navette spatiale.
    C'est pas faux, mais c'est pas très pertinent.

    Je suis d'accord avec le message de @chrtophe.

    Et pour poursuivre l'analogie "la différence entre pointeur brute et intelligent", c'est comme comparer une pierre et un marteau de charpentier.
    On peut faire les mêmes choses avec mais pas avec la même simplicité et sécurité.

  4. #4
    Membre émérite

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 403
    Par défaut
    L'idée que les pointeurs permettent d'économiser de la mémoire vient du fait que l'alternative qui est présentée est d'avoir des variables "classiques" sur toute la durée de vie du programme. Par exemple, si on fait un jeu qui peut avoir des centaines de monstres en même temps, on va créer un tableau avec 100 monstres et par exemple un boolean quand un monstre n'existe pas. L'allocation dynamique est alors présentée comme un moyen d'allouer la mémoire que quand un monstre existe, plutôt qu'avoir la mémoire réservée en permanence.

    C'est une approche pédagogiquement discutable, mais qui est classique.

  5. #5
    Membre averti
    Homme Profil pro
    étudiant
    Inscrit en
    Juin 2021
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2021
    Messages : 20
    Par défaut
    Citation Envoyé par mintho carmo Voir le message
    L'idée que les pointeurs permettent d'économiser de la mémoire vient du fait que l'alternative qui est présentée est d'avoir des variables "classiques" sur toute la durée de vie du programme. Par exemple, si on fait un jeu qui peut avoir des centaines de monstres en même temps, on va créer un tableau avec 100 monstres et par exemple un boolean quand un monstre n'existe pas. L'allocation dynamique est alors présentée comme un moyen d'allouer la mémoire que quand un monstre existe, plutôt qu'avoir la mémoire réservée en permanence.

    C'est une approche pédagogiquement discutable, mais qui est classique.
    Donc si j'ai bien compris les pointeurs permettent d'allouer/libérer la mémoire de manière dynamique selon si l'objet en question est présent ou pas. C'est bien ça ? Plus haut, chrtophe dit que les pointeurs occupent plus de place que les variables classique donc leurs utilisations ne serait pas pertinente ? Aussi, je ne vois pas dans quel cas utiliser les pointeurs. J'ai lu plusieurs forum et j'ai l'impression que personne est vraiment capable d'expliquer leurs utilité dans un cas concret. Dois-je en déduire que les pointeurs sont utile que très rarement ?

  6. #6
    Membre émérite

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 403
    Par défaut
    Les pointeurs occupent plus de place, parce qu'ils occupent la taille du pointeur en lui même et la taille de l'objet pointé. Alors que si l'objet est créé sans pointeur, il n'y a que la taille de l'objet.

    En général, c'est pas critique. Mais ça peut le devenir dans certaines situations. Mais tu débutes en C++, donc tu ne seras pas dans ces situations.

    Comme tu l'as compris, l'utilité d'un pointeur, c'est d'avoir un objet dynamique, c'est à dire que tu peux créer quand tu veux et détruire quand tu veux. Donc tu l'utilise quand tu es dans cette situation. Ils sont souvent utile quand la situation est adaptée. Je vois pas comment être plus concret qu'en disant que c'est utile dans les situations où tu veux créer et détruire un objet a n'importe quel moment (remplace "objet" parce que tu veux : monstre dans un jeu, fenêtre dans une application, une ligne ou un caractère dans du texte, etc)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'utilisation des jeux augmente de 75 % en raison de l'épidémie du coronavirus
    Par Bill Fassinou dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 18/03/2020, 16h26
  2. Réponses: 2
    Dernier message: 28/06/2018, 08h30
  3. Réponses: 1
    Dernier message: 12/08/2011, 15h25
  4. Réponses: 3
    Dernier message: 19/09/2009, 16h37
  5. utiliser des conteneurs triés stl pour pointeurs, utile?
    Par Pacorabanix dans le forum SL & STL
    Réponses: 13
    Dernier message: 08/12/2007, 16h19

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