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 ?
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 ?
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.
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.
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 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.