9 votes

Quels sont les modèles courants de jeux en 3D ?

Quels sont les modèles de conception les plus courants utilisés lors du développement de jeux en 3D ? Existe-t-il des modèles de conception architecturale de haut niveau couramment utilisés ? Qu'en est-il des modèles logiciels généraux au sein de l'architecture ?

6voto

SnOrfus Points 6457
  • Composite pour tout faire par étape de mise à jour (par exemple le rendu) (et en fait commun à toutes les bibliothèques d'interface utilisateur).
  • Flyweight pour dessiner de nombreux éléments du même type à l'écran (arbres/bushes/bullets)
  • Observateur pour un grand nombre de bibliothèques d'interface utilisateur (encore une fois, non spécifiques au jeu)
  • État de transition entre les états jeu/menu/console/pause/etc.
  • Usine abstraite dans certains jeux de type beat-em-up pour créer des mobs/PNJ (les jeux avec des quantités ridicules de personnages IA à la fois - c'est-à-dire Left 4 Dead).
  • Stratégie pour l'heuristique de permutation dans les algorithmes de recherche de chemin comme A*.
  • edit> Commande pour les jeux comme les MMO qui ont une barre d'action avec des boutons interchangeables sur lesquels vous pouvez cliquer pour lancer des sorts et autres.

C'est tout ce que je peux penser voir pour le moment.

1voto

Kylotan Points 14114

Je ne pense pas qu'il existe des modèles de conception de logiciels particulièrement spécifiques aux jeux. Les jeux utilisent les mêmes langages, les mêmes bibliothèques, les mêmes plates-formes que tout le monde et sont confrontés à peu près exactement aux mêmes problèmes au niveau logiciel.

Il existe certaines méthodes ou approches qui semblent populaires, mais qui ne sont pas formalisées au niveau du code comme le sont les modèles de conception classiques. Un exemple est celui des acteurs basés sur des composants, qui ne sont souvent même pas regroupés dans le même objet, mais qui partagent un identifiant et communiquent via un mécanisme de type signaux/fentes. Un autre exemple serait l'intégration d'un deuxième langage à des fins de script, comme Lua, Python ou Javascript.

1voto

Hooray Im Helping Points 3179

J'ai trouvé ce PDF détaillant les architectures de jeu possibles. Cependant, il pourrait être "désagréable pour les lecteurs qui sont plus enclins à penser en termes de conception orientée objet".

0voto

Matt Olenik Points 2970

Des variations du modèle d'état sont utiles pour modéliser l'état des jeux. Le site Série d'articles sur l'ingéniosité est un bon aperçu de certains des aspects de bas niveau de la conception de moteurs de jeux. Il est incomplet, mais bon. Les concepteurs du framework Guff a souligné l'utilisation des hiérarchies étatiques pour gérer l'état du jeu. Le concept de hiérarchie est bon, bien que leur vision de l'état d'un jeu soit limitée (elle englobe l'ensemble de la boucle de jeu au lieu du seul état). Ils ont également un document sur les boucles de jeu en temps réel .

Lors de l'implémentation de scripts, il est extrêmement utile et puissant d'utiliser un langage de script qui supporte une sorte de multithreading coopératif. C'est ce que propose Stackless Python. Depuis Mono 2.6, vous peut le faire en C# en utilisant des continuations mais uniquement sur la plate-forme Mono (et non .NET), car il fallait modifier la VM.

Il existe des solutions communes pour les graphiques 2D et 3D, l'animation, la saisie, etc. Beaucoup d'entre elles sont gérées par DirectX, SDL ou des cadres similaires.

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