Utilisation des ressources en jeu vidéo Flashcards

1
Q

Quelles sont les deux principales préoccupations concernant la mémoire dans le développement de jeux vidéo?

A
  1. La quantité de mémoire disponible
  2. La fragmentation de la mémoire
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelles sont les quatre stratégies principales pour contrôler efficacement l’utilisation de la mémoire dans un jeu?

A
  1. Charger toutes les ressources en début de scène
  2. Éviter les duplications de ressources
  3. Stabiliser la mémoire en limitant le nombre de new réalisés pendant le jeu
  4. Utiliser le recyclage d’objets
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quel est l’avantage principal de charger toutes les ressources en début de scène?

A

Cette pratique évite les pauses forcées en cours de partie (au détriment d’un délai avant le début du jeu). Elle limite les échanges avec le support physique pendant la partie et stabilise l’utilisation de la mémoire vive en effectuant toutes les allocations au départ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quel est l’inconvénient du chargement de toutes les ressources en début de scène?

A

Cette approche crée un délai avant le début du jeu, puisque toutes les ressources doivent être chargées avant que le joueur puisse commencer à jouer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Pourquoi est-il important d’éviter les duplications de ressources?

A

Éviter les duplications permet d’économiser de la mémoire. Par exemple, dans un casse-brique, il est inutile de charger la même texture pour chaque brique similaire, ce qui consommerait inutilement de la mémoire.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce qu’un gestionnaire de contenu et quel rôle joue-t-il dans la gestion des ressources?

A

Un gestionnaire de contenu est responsable de charger toutes les ressources de la scène dans la phase d’initialisation. Il permet d’éviter la duplication des ressources en centralisant leur gestion et en les rendant accessibles aux différents acteurs du jeu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Pourquoi utilise-t-on souvent un singleton pour implémenter un gestionnaire de contenu?

A

L’utilisation d’un singleton permet aux différents acteurs de pouvoir s’initialiser correctement sans polluer la partie ou la scène avec de multiples initialisations, tout en évitant de dupliquer les ressources utilisées.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que se passe-t-il si une ressource essentielle est absente lors du chargement par le gestionnaire de contenu?

A

Si une ressource essentielle est absente, le jeu peut alors effectuer des actions appropriées, comme charger une ressource alternative ou stopper la partie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quelles sont les étapes minimales requises lors de l’allocation dynamique de mémoire?

A
  1. La réservation d’un espace mémoire
  2. L’appel du constructeur
  3. L’initialisation de l’objet au besoin (par exemple, chargement de texture)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Pourquoi l’allocation dynamique de mémoire peut-elle être problématique dans un jeu vidéo?

A

L’allocation dynamique est un processus relativement lent qui peut affecter les performances, surtout dans un jeu complexe où les allocations fréquentes pourraient devenir gourmandes en ressources.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce que la stabilisation de la mémoire dans le contexte du développement de jeux?

A

La stabilisation de la mémoire consiste à préallouer les acteurs du jeu (projectiles, ennemis, etc.) avant le début de la partie pour éviter des allocations dynamiques coûteuses pendant le jeu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Comment peut-on utiliser un acteur préalloué dans le déroulement du jeu?

A

Lorsqu’on a besoin d’un acteur préalloué, il suffit de requérir une instance non active dans le jeu et de l’activer correctement (en configurant son état, sa position, etc.) dans le jeu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce que le recyclage d’objets et comment complète-t-il la stabilisation de la mémoire?

A

Le recyclage d’objets consiste à réutiliser des objets inactifs plutôt que d’en créer de nouveaux. Lorsqu’un acteur n’est plus nécessaire, au lieu de le libérer, on le place dans un état inactif jusqu’à ce qu’on en ait besoin à nouveau.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quand libère-t-on finalement les acteurs recyclés?

A

Ces acteurs ne sont libérés qu’à la libération de la scène ou du jeu, et non pas lorsqu’ils deviennent inactifs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce qu’un “budget de ressources” dans la conception d’un jeu?

A

Un budget de ressources est une allocation planifiée qui définit les limites de ressources pour un jeu, comme le nombre d’ennemis simultanés ou le nombre de projectiles pouvant être lancés en même temps.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Comment le budget de ressources influence-t-il la préallocation des acteurs dans un jeu?

A

On peut préallouer les acteurs en fonction de ce budget, en créant à l’avance exactement le nombre maximal d’instances nécessaires pour chaque type d’acteur selon les limitations définies.

17
Q

Que se passe-t-il lorsqu’un acteur (comme un ennemi neutralisé) n’est plus nécessaire dans le jeu?

A

Au lieu de libérer l’objet, on le place dans un état inactif qui désactive son rendu ainsi que les interactions avec les autres acteurs, et on attend qu’on en ait besoin à nouveau.

18
Q

Quels sont les deux principaux avantages du recyclage d’objets par rapport à la création/destruction continue?

A
  1. Réduction de la fragmentation de la mémoire
  2. Amélioration des performances en évitant les allocations/libérations fréquentes
19
Q

Comment peut-on implémenter un pool d’objets pour faciliter le recyclage?

A

On peut créer une structure qui maintient une liste d’objets préalloués avec un indicateur d’état (actif/inactif). Lorsqu’un nouvel objet est nécessaire, on recherche un objet inactif dans le pool, on l’active et on le configure selon les besoins.

20
Q

Pourquoi la fragmentation de la mémoire est-elle un problème dans les jeux vidéo?

A

La fragmentation se produit lorsque la mémoire libre est divisée en petits blocs non contigus, ce qui peut empêcher l’allocation de grandes structures même si la quantité totale de mémoire libre est suffisante. Cela peut conduire à des ralentissements, des crashs ou des comportements inattendus dans le jeu.