33 votes

Le modèle de conception MVC est-il utilisé dans les jeux vidéo commerciaux ?

Le modèle de conception MVC est-il utilisé dans les jeux vidéo commerciaux ?

En particulier en ce qui concerne les jeux à haute performance, je suis curieux de savoir s'il y a eu des utilisateurs commerciaux de MVC dans l'industrie des jeux ?

70voto

munificent Points 6516

C'est rarement utilisé dans les jeux. Il m'a fallu un certain temps pour comprendre pourquoi, mais voici ce que j'en pense :

MVC existe pour faire la distinction entre deux représentations. Le modèle est la représentation abstraite de vos données. C'est la façon dont la machine voit l'état de votre application. La vue (et les contrôleurs) représentent une instanciation visible plus concrète de ce système d'une manière significative pour les humains.

Dans la plupart des applications d'entreprise, ces deux mondes sont assez différents. Par exemple, le modèle d'une feuille de calcul est simplement une grille de valeurs en 2D. Il n'a pas à réfléchir à la largeur des cellules en pixels, à l'emplacement des barres de défilement, etc. En même temps, la vue du tableur ne sait pas comment les valeurs des cellules sont calculées ou stockées.

Dans un jeu, ces deux mondes sont beaucoup plus proches l'un de l'autre. Le monde du jeu (modèle) est généralement un ensemble d'entités positionnées dans un espace virtuel. La vue du jeu est également un ensemble d'entités positionnées dans un espace virtuel. Les volumes limites, l'animation, la position, etc., toutes les choses que l'on considère comme faisant partie de la "vue" sont aussi directement utilisées par le "modèle" : l'animation peut affecter la physique et l'IA, etc.

Le résultat final est que la ligne de démarcation entre le modèle et la vue dans un jeu serait arbitraire et inutile : vous finirez par dupliquer un lot d'état entre eux.

Au contraire, les jeux ont tendance à découpler les choses le long des frontières du domaine : L'IA, la physique, l'audio, le rendu, etc. seront maintenus aussi séparés que possible.

6voto

Andrew McGregor Points 7641

Cela dépendra beaucoup du jeu.

Par exemple, un jeu de tir à la première personne, probablement pas.

Un simulateur de vol, MVC est très probable (X-Plane et FlightGear utilisent tous deux MVC, comme en témoignent leurs API de plugins). SimCity, vous pourriez certainement le faire de cette façon et le rendre logique (aucune idée s'ils l'ont réellement fait). Stratégie en temps réel, peut-être. Bejeweled, qui sait.

5voto

Vivin Paliath Points 40975

Je ne connais pas de jeux commerciaux qui l'utilisent ; il y en a peut-être. Cependant, j'ai pu trouver un papier (PDF) qui mentionne l'utilisation du modèle MVC dans les jeux vidéo. Cela peut vous donner un aperçu de la situation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X