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

Les jeux persistants massivement Multijoueurs : problèmes techniques

Présentations similaires


Présentation au sujet: "Les jeux persistants massivement Multijoueurs : problèmes techniques"— Transcription de la présentation:

1 Les jeux persistants massivement Multijoueurs : problèmes techniques
Vincent Roudaut MASTER M2 ESTC/CAM

2 Introduction 15 % du trafic mondial d'internet 2004, en évolution
Un simulation interactive multiparticipants sur internet : soulève de multiples problèmes Particularité : le jeu dure plusieurs années sans interruption Les serveurs sont souvent arrêtés. Le lag est important We propose the use of structural reflection as an approach that not only addresses these requirements but also offers added value in the form of providing a framework for scalability, persistence and responsiveness that is itself flexible, maintainable and extensible. (De reflection framework) Scalability: ability to continue functioning satisfactorily as the system’s execution context changes in size or volume in order to meet diverse needs. · Persistence: capacity to remain active even when some/all user sessions have terminated. · Responsiveness: capability of responding to user demands within a prescribed time frame guaranteeing sustained support for high levels of interaction between many users. · Flexibility: ability to satisfy differing system constraints and user needs with fluctuations in the system’s execution environment. · Maintainability: the ease with which the game application can be modified to correct faults, improve performance, or other attributes. · Extensibility: the ease with which the platform can be altered to increase the system’s functional capacity. The main focus of research on VR and networked game platforms has been on the first three capabilities and, as a result, a number of techniques both at the platform and the application level have emerged: · To improve scalability, existing published works propose a wide range of world partitioning approaches from static coarse-grained partitions [2] and interest management (perception-based) approaches in Virtual Society [6] to information aggregation depending on level of details. · To address persistence requirements, some service platforms such as Continuum [4] implement mastership transfer within peer-to-peer architectures. Others have centralised databases that regularly maintain versions of object states. · To provide support for responsiveness, researchers have attempted to implement fully distributed architectures together with multicast grouping of clients, e.g. DIVE [2].

3 Requisit du MMORPG Qualité de la simulation Robustesse
Interactive et fluide (immersion) Cohérence du jeu Robustesse Adaptation à des conditions non déterministes Intensité de la couche de persistance Confiance à livrer un monde à des joueurs Consistence ? Aussi l’ubiquité : accéder a l’appli de partout (cybercafé, ..) Latency is defined by the response time between an action and the materialization of its effect on all players’ machines. With First-Person Shooter games it must be less than 100 milliseconds. For Real-Time Strategy games it can be as high as 500 milliseconds as long as the jitter (the variance of the latency over time) is low (Smed et al. 2001). Now with mobile phone networks such as GPRS, observed latency is around 1 second (Nokia 2004).

4 Problématique Temps réel distribué Réseau BDD Architectures machines
Conception logicielle Sécurité / Authentification Horloges de lamport + architecture de BDD

5 Simulation temps réel Consistence 1 Actions d’un joueur client serveur
2 Résultat de la simulation Une simulation discrète : Calcul pour chaque Frame aligné sur un temps commun La cohérence spatiale Synchronisation Le temps et la réalité spatiale de la simulation sont partagés. Types de synchronisation : Les methodes pessimistes (issues du militaire), qui garantissent une consistence parfaite, ne sont pas adaptées au monde du jeu, plus réactif : alogritheme « Lockstep » Les méthodes plus adaptées, dites optimistes, consistent a avancer a priori dans la simulation, quitte a réparer les erreurs par la suite. Une de ces méthode s’est distinguée : les « trailing states », qui consistent a stocker sur une fenêtre glissante les différents état du jeu, pour pouvoir revenir a un état antérieur en cas de mauvaise anticipation (Cronin et al. 2002) . Lockstep synchronization [17], used in military simulations, is by far the simplest technique available to ensure consistency. No member is allowed to advance its simulation clock until all other members have acknowledged that they are done with computation for the current time period. This takes the rst approach to providing a global ordering of events: preventing out of order events from even being generated. In this system, it is impossible for inconsistencies to occur since no member performs calculations until it is sure it has the exact same informa- tion as everyone else The second approach to ensuring consistency is to detect and correct any dierences in states. Optimistic algorithms execute events before they know for sure that no earlier events could arrive, and then repair inconsistencies when they are wrong. This class of algorithms is far better suited for interactive situations. It is worth looking at several examples of existing optimistic algorithms and their shortcomings when used with games like Quake before describing TSS. For example in Trailing State Synchronization (TSS), each machine keeps several states of the whole game. If an inconsistency is detected TSS switched the game from the leading state to one of the trailing states (Cronin et al. 2002). Titre initial : Synchronisation et cohérence globale Expliquer la différence en consistence et cohérence

6 Latences Performances Architectures Centralisées Distribuées
Minimiser la latence et le traffic réseau : Prédiction d’état Design de protocole Architectures Centralisées Distribuées Dead reckonning : Design de protocole : Distinction de classes de commande, strictement consistentes ou non. Pb = minimiser les rollbacks , couteux en temps. Architectures serveur en miroir : a priori la meilleure solution pour le MMORPG Modèle distribués: framework PING mais pour un nombre plus restraint (DEA C.Brunette)

7 Infrastructure Architecture serveur dédiée Persistance
Distribution de charge Différentes actuces jeu-serveur Tolérence au pannes Persistance Réplication Disponibilité et charge : Cluster Middlewares : Terraplay, WISH Trucs de serveurs : - 1 région, 1 serveur (everquest model) Sharding : copie du monde dans plusieurs serveurs (mais non communicantes) Replication ... Gaspille des ressources, pb de tolérance aux fautes ? Changement de région souple, par recoupement spatial Subdivision dynamique ...compliqué... (gameOne sun article ) Tolérance aux pannes : 1 checkpoint ttes les 15 minutes Persistance challenge : ne sauvegarde que les données du perso .. Tout jeu multijoueur s’appuie sur une base de données. C’est pourquoi nous souhaitions investiguer les besoins de gestion de données persistantes (complexité des données, volumétrie, modes et fréquence d’accès, sécurité et confidentialité…), analyser les différentes architectures logiques de gestion des données (solution centralisée versus répartie, partition versus réplication, données sur les mobiles…) et enfin évaluer des solutions clusters (a priori à même de résoudre les problèmes de montée en charge de jeux ayant une forte progression du nombre d’utilisateurs). Vu les faibles retours des professionnels du jeu (cf. section 2.1), nous nous sommes concentrés sur l’étude des solutions clusters. Après une étude bibliographique des solutions BD en clusters, nous nous sommes intéressés à l’architecture logique des données (proposition d’architectures basées sur C-JDBC adaptées à l’architecture 2 niveaux évoquée à la section 3.1.3) avant d’évaluer C-JDBC sur un benchmark web (TPCW) avec 4 noeuds Postgresql sur un réseau local : si C-JDBC s’est révélé facile à intégrer dans une application et avoir un overhead faible, nos résultats expérimentaux ont été au final peu encourageants (pas de gain observé pour le cluster versus une seule machine) [7]. Les principales perspectives envisagées consistent en de nouvelles expérimentations pour augmenter le nombre de noeuds, utiliser un vrai cluster (liens rapides) et augmenter à la fois la taille de la BD et le nombre d’utilisateurs (Doc MEGA_Synthese.pdf) WISH : inspiré de CORBA mais adapté aux jeux There are two levels of functionalities in a communication middleware: On one hand, the “intermediation level” which takes care of the management of game communities, forums, high score storage, and on the other hand, the “middleware level” responsible for the communications between modules during game play. Both levels are standardized by the Open Mobile Alliance (OMA 2003, OMA 2004). Some companies (e.g. Terraplay (Terraplay 2004)) propose products taking care of those levels. Nevertheless they are not OMA-compliant. Moreover their cost is not compatible with budgets of small developer studios (a mobile game budget is about 100 k$ (Nokia 2003a)).

8 Exemple Architecture Butterfly (Intel) : OS = linux
CPU = multiprocesseurs Inteconnexion type grid (Globus toolkit). Séparation des taches et interconnexion Schema de principe de la grille The gateway servers translate the data objects and communications protocols to forms that are understood by the user’s platform and routes player connections to game servers. The daemon controllers are dedicated artificial intelligence servers that drive the activities of non-player characters (NPCs). NPCs are game elements not directly controlled by player actions. They are essentially privileged clients that act like players and interact directly with the grid’s gateway servers. The game servers are responsible for running games within the grid. They manage the game as it is defined by the game rules and logic, the objects and attributes that comprise the game environment, and objects that represent the players themselves as they are involved in game play. The intelligence that determines when players are shifted to new servers resides on both the game and gateway servers. When a game server becomes overused or fails, it sends a controlling message to the gateway servers. The gateway servers are ultimately responsible for redirecting players to a new game server. The database server stores the persistent information required to define the worlds and objects, and maintain game play over time. The network protocol stack is a thin reliability layer on UDP that connects edge devices to the gateways, which transparently relay on to the correct server. NPS is also used for real-time game play across server boundaries. A multicast communication link connects game servers that are participating in the same game. These servers are fully meshed during real-time game play. The utility computing layer is the lowest level of the infrastructure, monitoring the performance of the hardware and redirecting resources as required.

9 Développement API standards Multiplateforme QA et Simulation IA
NeL de nevrax DirectX Multiplateforme Nécessité d’un framework Extensibilité Scripting Pluggins QA et Simulation IA a) Aspect massivement multi-joueurs Les PNJ vont être confrontés à un grand nombre de joueurs différents. Pour réagir de façon adaptée face à chacun, ils devront apprendre à catégoriser les stratégies ou les personnalités des joueurs. Ils devront aussi avoir une mémoire leur permettant de se comporter de manière spécifique vis-à-vis d'un joueur particulier, même si celui-ci ne s'est pas connecté depuis plusieurs mois. Les PNJ sont situés dans un environnement social qui, dans un MMO, est principalement défini par le comportement des joueurs (joueurs agressifs, coopératifs, indifférents, etc.). Pour interagir au mieux avec eux, ils devront être capables d'identifier le contexte social dans lequel ils se trouvent afin d'adopter un comportement adéquat. b) Monde persistant Un monde persistant étant actif 24h sur 24, il permet de faire évoluer une population de PNJ, de génération en génération. Des solutions d'apprentissage lentes tel que les algorithmes génétiques peuvent donc être envisagées. Les PNJ pourraient même combiner un apprentissage individuel durant leur "vie" et une adaptation "génétique" de l'espèce à travers les différentes générations de PNJ d'une même catégorie. c) En ligne Avoir une architecture client / serveur permet de faire tourner l'IA du jeu sur des serveurs spécifiques. On a ainsi une plus grande maîtrise sur le temps de calcul et l'espace mémoire dont on dispose. Des algorithmes coûteux en puissance ou en mémoire peuvent donc être utilisés - avec modération tout de même. En faisant un effort technologique, il serait même possible d'utiliser les ordinateurs des milliers de joueurs connectés pour faire du calcul réparti.

10 Sécurité / Tricherie Protocole Protection hardware (XBox)
Pratique de Q&A sur le code (buffer overflow,...) Cryptographie (SSL) Cheat-proof Protection hardware (XBox) Controle de cohérence serveur Détection de « bots » Sécurité dédiée sur les serveurs (firewall, détection d’intrusion..) Existe même des solutions de honey pot sur les serveurs

11 Exemple : modèle Everquest
C/S Isolation géométrique des zones joueurs par serveur Un changement de zone induit un changement de serveur, le serveur de login autorise le transfert Les limitations ne sont pas naturelles (temps d ’attente) Tjrs basé sur le concept de ROOM des MUDs ...

12 Exemple : World of Warcraft
Chaque « royaume » abrite la totalité de l’univers Architecture pour chaque « royaume » : Un serveur pour le monde Plusieurs serveurs pour les monstres et les personnages 3000 et 5000 joueur par royaume Possibilité d’ajout de nouveaux serveurs Montée en charge Ajout de modes de jeu : Role play et duels Les royaumes sont dse « shards » : duplication de l’entiereté du monde dans chaque Pb : possible perte de CPU sur une des réplique ... Ou il y a moins de monde Les serveurs sont placés géographiquement ... (pour certain jeux n’ont pas marché car pas de serveur européen)

13 Conclusion Un domaine en évolution
Middlewares dédiés, API Prise en compte de divers clients ( téléphone mobiles) L’attente du modèle distribué Moteur dans d’autres domaines sociaux (travail coopératif, enseignement à distance) Un thème de recherche

14 bibliographie http://www.gamasutra.com/
Server Architectures for Massively Multiplayer Online Games.pdf, Sun JavaOne TX, jeu massivement multijoueur, Stephane Zuckerman, Ariel Verdi (UTC) Cheat-Proofing Dead Reckoned Multiplayer Games, Eric Cronin Burton Filstrup Sugih Jamin (University of Michigan) An Ecient Synchronization Mechanism for Mirrored Game Architectures, Eric Cronin et al

15 Bibliographie (suite)
Application de l’Approche Réactive : Simulations de mondes virtuels, Frédéric Boussinot, Jean-Ferdy Susini, INRIA MEGA, 1/*/MEGA_Presentation_VF.html « Mimaze, a multiuser Game on the Internet »de Laurent Gautier et Christophe Diot, Septembre 1997, ISSN , ISRN INRIA/RR-3248—FR

16 Questions ? C'est en 1997, avec la sortie de Ultima Online (1997, ©Origins), puis en 1999, avec Everquest (1999, ©Verant Interactive) (Figure 16) et Asheron's call (1999, ©Turbine Games) (Figure 17), que les MMORPG (Massively Multi-users Online Role Playing Game) sont vraiment lancés.

17 Session réseau Echange classique client/serveur

18 Mode de replication BDD
2 approches virtualisation

19 Cheating Abus du dead reckonning
(in Cheat Proofing, Eric Cronin et al.)

20 Trailing states synchro
Un méthode dite « optimiste » Execution normale Rollback

21 Sun architecture horizontal scaling, fault-tolerance
persistence, and load balancing

22 Glossaire Cluster : interconnexion d’ordinateurs standards par LAN haut débit, qui executent de facon parallèle une application Réplication de BDD : le fait de maintenir plusieurs copies des objets en base sur plusieurs sites Latence : temps de réponse entre une action et sa matérialisation sur toute les machines joueur Cohérence spatiale : Quand on parle de cohérence spatiale, on part sur une notion de mesure physique de distance entre le « réalité » (le comportement du maître) et sa reproduction (le comportement de l’esclave) Cohérence temporelle : De la même manière que la cohérence spatiale qui nous permet d’évaluer un écart de distance, la cohérence temporelle permet d’évaluer un écart de durée (dans notre cas en nombre d’instant) qui sépare un maître et son esclave pour une position donnée Shard : a shard == a duplicate cluster, solved the fire marshal problem by duplicating entire game


Télécharger ppt "Les jeux persistants massivement Multijoueurs : problèmes techniques"

Présentations similaires


Annonces Google