Télécharger la présentation
Publié parFabrice Laurent Laporte Modifié depuis plus de 8 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.