La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Architecture Logicielle d’un jeu vidéo

Présentations similaires


Présentation au sujet: "Architecture Logicielle d’un jeu vidéo"— Transcription de la présentation:

1 Architecture Logicielle d’un jeu vidéo
Steve Gury

2 Agenda 3D Engine Physic Engine Network Engine & plateforme serveur

3 Vue d’ensemble Architecture simpliste d’un jeu moderne Game Engine
3D Engine Physic Engine Network Engine

4 Moteur 3D Objectif: Interne: Calculer une scène en 3D
Visualiser cette scène sur un écran 2D Interne: Gérer l’interaction avec le matériel efficacement Adapter l’api sous jacente au code du jeu (Direct 3D / OpenGL)

5 Direct 3D Historique DOS -> Hack de perf Windows -> Pas content
MS dit: API rapide qui simplifie tout ça

6 Mode protégé / réel Mémoire physique Process 1 Process 2

7 Mode protégé / réel Mémoire physique Adressage virtuelle
Process 1 Process 2

8 Mode protégé / réel Avantages: Inconvénients Robustesse du système
Debuging plus facile Inconvénients Légère baisse de performances Plus difficile à écrire (ancien code non portable)

9 Direct 3D HAL API Hardware Abstraction Layer
Nouvel API de plus haut niveau Simplification de l’écriture de code 3D

10 Architecture matérielle
CPU RAM BUS PCI Express D’abord simple processeur d’affichage, le GPU devient dans les années 90 un co-processeur de calcul 3D. D’abord fixe, puis programmable GPU VRAM

11 GPU programmable DirectX 5+ DirectX 8+
DirectX utilise le GPU pour certaines fonctions DirectX 8+ Le programmeur peut définir des « shaders » qui seront exécutés lors du rendu 2 types Vertex Shader: agit sur les points Pixel Shader: agit sur les pixels (après rasterisation)

12 3D Pipeline Vertex shader Pixel shader Input Assembler Rasterizer
Buffer Buffer Index Buffer Texture Texture Vertex Buffer Vertex shader Pixel shader Input Assembler Rasterizer Output Merger

13 Shaders Code compilé sur le CPU, exécuté sur le GPU Historique:
Assembleur CG (nividia) HLSL (DirectX) et GLSL (OpenGL) CUDA, OpenCL Utilisations dans des effets, éclairage…

14 Level of Details Performances liées au nombre de points à afficher

15 Smooth C’est l’inverse du LoD, on ajoute des points en subdivisant la surface

16 Ombre Shadow map Shadow casting 16

17 Texture Pour définir de manière précise la couleur d’un objet en différent endroit, on utilise une texture

18 Filtrage des textures On se trouve rarement dans le cas où un pixel affiché à l’écran correspond à un seul pixel de la texture Point voisin Filtrage linéaire Filtrage anisotropique

19 Filtrage des textures Filtrage anisotropique Filtrage anisotropique

20 Anti-aliasing Crénelage du à la rastérisation Inesthétique
Crée une sorte de scintillement (arbre)

21 Mip mapping Pre calcul du re-échantillonnage des textures
Sélection de la texture idéale Interpolation entre les textures correspondantes

22 Agenda 3D Engine Physic Engine Network Engine & plateforme serveur

23 Moteur Physique Objectif: Interne:
Calculer la position et le déplacement des objets du monde Calculer les interactions des objets entre eux Interne: Intégrer numériquement des équations physique Résoudre les collisions/intersections de volume

24 Intégration numérique
Besoin de réalisme Utilisation des équations différentielles physiques ex (RFD): Besoin de résoudre ces équations numériquement

25 Intégration numérique
Différents algorithmes de résolution numérique d’équations différentielles Runge-Kutta

26 Résolution de collisions
A partir de deux volumes décrits par deux mesh, il faut résoudre la collision C’est-à-dire déterminer le point de collision et la normale en ce point Détection souvent à posteriori

27 Résolution de collisions
Performances dépendent du nombre de points des meshs de la scène Heuristiques Bounding Box

28 Champs d’application Tous ne peux pas être simuler de cette manière

29 Animation Animation des personnages pour augmenter le réalisme des jeux Personnages: éléments les plus détaillés du jeux Performances: Pas de temps réel Complexité des modèles

30 Animation Animation de squelette (Bones)
Association de sommet avec des bones Définition de l’animation au niveau des jointures

31 Motion capture Capture du mouvement de vraie personne
Strictement équivalent à l’animation classique

32 Compromis: la cinématique inverse
Mélange d’animation pré calculée et d’animation procédurale

33 Physix & GPU Utilisation de shader pour tirer parti de la puissance des GPU (hautement parallèle) Autrefois hack aujourd’hui une techno « PhysiX » racheté par Nvidia

34 Agenda 3D Engine Physic Engine Network Engine & plateforme serveur

35 Réseau Popularisation des jeux en ligne Multiplayer en LAN
Multiplayer online MMO à personnage persistent L’avenir: MMO à univers persistent

36 Ce qui change Abonnement Auto Patch vs Livraison boite Architecture
Le gain dépend du temps de jeu Marketing viral Auto Patch vs Livraison boite Travail sur la duré Patch à la volé Architecture Cohérence temporelle Problématique de passage à l’échelle

37 Diffusion de données Nouvelles perspectives pour délivrer: Avantages:
Du contenu Des mises à jour Avantages: Peer to peer Streaming LoD (Level of Details)

38 Passage à l’échelle (scalability)
C’est LA problématique des jeux en ligne 1 serveurs = 1000 joueurs 10 serveurs = 5000 joueurs 100 serveurs = joueurs

39 Redondance & Haute disponibilité
Éviter les SPOF (Single Point of Failure) Utiliser la redondance sur tous les services Routage Service d’annuaire Nœud de calcul Système de persistance

40 Routage Point d’entrée à la plateforme Routage:
en fonction du type de message en fonction de la charge

41 Service d’annuaire Identifier les capacités des nœuds d’un cluster
Abstraire le nœud logique du nœud physique UDP broadcast / multicast Gestion de réponses différentes

42 Nœud de calcul Moteur du cluster Sans état (Stateless)
Exécute le code serveur Sans état (Stateless) Passage à l’échelle parfaite Avec état (Statefull) Reporte le problème sur la persistance

43 Système de persistance
Système de stockage des données Dans la plupart des cas, c’est le point noir de la plateforme Le besoin de cohérence globale du système rend la parallèlisation difficile Systèmes « ACID » classiques pas adaptés A: Atomic C: Consistent I: Isolated D: Durable

44 Sharding Segmentation logique des données
Par zone géographique Par type de donnée Par probabilité d’interaction Bien un temps mais ne scale pas

45 Persistence in memory Tout est gardé en mémoire et régulièrement enregistré en base Avantages: Vitesse Inconvénients: Perte de la cohérence Duplication des données impossibles Scale au prix de la cohérence

46 Database + système de réplication
Database traditionnel type: Mysql, Postgresql, Oracle, SQL Server, … Système de réplication Master / Master : Lenteur des transactions Master / Slave : Clients spécifiques lisent les données en read-only sur les serveurs slave (+ temps de propagation) Scale un peu

47 Système NoSQL Conteneur clé/valeur distribué Avantages: Inconvénients:
BigTable, MongoDb, Voldemort, … Avantages: Scale vraiment Inconvénients: Récriture des schémas de donnée sans forme normale

48 Cohérence temporelle Valeur du temps différente pour tous les joueurs
Synchro d’horloge Lag entre action d’un client et notification server Dérive du temps Incohérence temporelle (lag négatif) Système pour cacher le lag « Sir yes sir » Animation à durée variable

49 Dead reckoning Estimer la position d’un objet à partir de sa dernière position/vitesse connue Objectif: minimiser les trajectoires erratiques Inconvénients: trajectoires irréels (sans pathfinding)

50 Résolution de conflit Serveur fait foi
Estimation de la vue erronée d’un client Prise de décision en fonction de cette vue


Télécharger ppt "Architecture Logicielle d’un jeu vidéo"

Présentations similaires


Annonces Google