Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: gestion des entités dans un jeu  (Lu 2350 fois)

0 Membres et 1 Invité sur ce sujet

lezebulon

  • Full Member
  • ***
  • Messages: 235
    • Voir le profil
gestion des entités dans un jeu
« le: Novembre 08, 2012, 05:38:02 pm »
Bonjour,

quelle est selon vous la meilleure méthode pour gérer des "entités" dans un jeu?
En fait je cherche à connaitre différentes méthodes possibles, car ce que j'ai vu me parait toujours bof.
Par entité j'entends par exemple les NPCs, les lumieres, les objets au sol etc (là je pensais plus à un RPG 2D)

La solution de base que j'utilisais était juste d'avoir une classe abstraite Entity d'avoir des méthodes abstraites genre Update(), Draw(), etc
L'intérêt c'est que je peux stocker dans un même container toutes les entités et appeller par ex la méthode update à chaque frame (en gros)
Par contre ce système va ammener à des hierarchies de classe de folie et à des tonnes de d'appels de fonctions virtuelles.
L'autre idée que j'ai vue ici c'est d'utiliser des composants, ie chaque entité possède en membre des "composants" qui sont des modules ré-utilisable par chaque entité sans hiérarchie. Mais dans ce cas je vois pas trop comment se gère l'update et l'affichage de mes entités (par exemple)

Bref, quelle est selon vous la meilleure méthode? Sinon est-ce qu'il y a des alternatives?

merci!

Spidyy

  • Sr. Member
  • ****
  • Messages: 493
    • Voir le profil
Re : gestion des entités dans un jeu
« Réponse #1 le: Novembre 13, 2012, 04:34:30 pm »
Je pense pas qu'il y ai de "meilleur" solution. Stocker les entité dans un même container est plus utilisé par les moteurs standard qu'on trouve un peu partout, le système de composant je n'ai vu ça que sur Unity mais permet de faire un peu tout et n'importe quoi avec ses entité.

Si tu fais un moteur de jeu généralisé, tu peux toujours viser les entité, mais si tu fais un jeu, tu sais déjà quel vont être l'ordre dans lequel tu veux update et draw tes entité, donc utilise une simple liste d'entité.

Je ne vois pas en quoi c'est un problème d'avoir une overdose de fonctions virtuelles... :o

Pour ma part, j'utilise une simple liste d'entité que j'update tout d'un coup, et je passe par renderer qui gère l'ordre des draw.