Les jeux persistants massivement Multijoueurs : problèmes techniques

Slides:



Advertisements
Présentations similaires
Tourisme et Metaverses
Advertisements

L’Essentiel sur… La sécurité de la VoIP
Vers le multimédia mobile de nouvelle génération MASTER ESTC/CAM CNAM Vincent Roudaut/Rachid Fahdi.
Le monde i-mode Epreuve Oral – 16/03/05 Master STIC / CAM API et environnement de développement Bakogiannis Anastasios ( )
Botnet, défense en profondeur
Gabriel Antoniu IRISA / INRIA Rennes
A NETWORK-AWARE DISTRIBUTED STORAGE CACHE FOR DATA INTENSIVE ENVIRONMENTS Brian L. TIERNEY, Jason LEE, Brian CROWLEY, Mason HOLDING Computing Sciences.
Le"cartable électronique"®
La machine virtuelle virtuelle utopie et/ou réalité ?
Les routeurs actifs permettent d'exécuter du code à la volée. On peut ainsi optimiser fortement les protocoles de communication et ajouter plus rapidement.
Le Grid Computing Par Frédéric ARLHAC & Jérôme MATTERA.
DUDIN Aymeric MARINO Andrès
CLUSTERING Grappe d'ordinateurs.
Nicolas Galliot M2SIR David Raspilaire
ISP/ASP ISP ASP Conclusion DESS Réseaux 2000/2001
TCS – CCNA École Duhamel Année
PLAN du COURS Introduction Structure des Systèmes Informatiques
Jeux vidéo sur mobiles Module : Développement d’applications mobiles Enseignant : Sébastien CHOPLIN Cédric Montillot Djilali Maghraoui Master MIAGE OSIE.
Les jeux persistants massivement Multijoueurs : problèmes techniques Vincent Roudaut MASTER M2 ESTC/CAM
jeux à réalité augmentée, exemple de pacMan
Personnages virtuels intelligents et expressifs
Jean-François Deverge, Sébastien Monnet



1 ACI DADDI - Réunion de lancement IRISA - Projet ADEPT Michel Hurfin Jean-Pierre Le Narzul Frédéric Tronel 23 mai 2005.
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
NFE 107 : Urbanisation et architecture des systèmes d'information
Nouvel outil pédagogique dédié à la formation à la maintenance
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
30/03/2017 Formation Plan 1.
Chaire UNESCO - Calcul numérique intensif
Introduction Les solutions de sécurité
Le protocole FTP.
L'équilibrage de charge Utilisation, principe et solutions
Services fournis par le SI et technologies associées
Développement d’application web
Krowten Emagyp Jeu réseau à interaction en temps réel.
Framework Play 2.0 Démonstration du proof of concept
Réseau de stockage étendu
Notre Accompagnement pour Votre Offre de Cloud
Commutation de niveau 5 Guillaume CASSIN Charles DESMOULINS 24 Mars 2001.
LEGO – Rennes, 18 Septembre 2006 Un outil de monitoring pour le déploiement dynamique de JuxMem Loïc Cudennec IRISA / INRIA, PARIS project-team Stage de.
Windows Server Virtualization
- La commutation de niveau 5- - La commutation de niveau 5 - Option RIO 2003 – FP04 Fabien DAGOMMER Fernando LUIS.
GDS – Paris, 13 Octobre 2006 Un outil de monitoring pour le déploiement dynamique de JuxMem Loïc Cudennec IRISA / INRIA, PARIS project-team Stage de M2RI.
Partage de mémoire à très grande échelle sur des réseaux pair-à-pair
8INF856 Programmation sur architectures parallèles
AFPA CRETEIL 1-1 Windows NT Environnement Windows NT Chapitre 1.
Paramètres significatifs dans le processus de modélisation de la disponibilité Rennes le 24 mars 2004 Ahmed Bouabdallah, Nora Cuppens-Boulahia et Frédéric.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Contrôle de topologie orienté mesures de performances Master 2 COSY 2004/2005 1/30Septembre 2005 Contrôle de Topologie Orienté Mesures de Performances.
Heatbeat au LAL Marec erwan Charbonnel Jaclin.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Un état de l’art sur les logiciels de détection de collision
1Auteur : Oleg LODYGENSKY XtremWeb-HEP Atelier Opérations France Grille Lyon – Villeurbanne 13 et 14 octobre.
GDS : Grid Data Service Gabriel Antoniu IRISA / INRIA Rennes Réunion de lancement du projet GDS de l’ACI Masses de Données 22 septembre 2003.
Stock Overflow Fantastic 6.
Résumé CHEP 2010 Distributed processing and analysis Grid and cloud middleware Thèmes : 1.
Positionnement : Outil de supervision et d’administration spécialiste Les management packs de l’éditeur et la base de connaissance embarquée Rapidité.
Les différents modèles d’architecture technique
Introduction aux solutions Microsoft pour le HPC.
COMPARAISON ENTRE GNUTELLA ET FREENET
Réalisé par : Grégory CORDIER Promotion : RIE03 UE : Management Social & Humain Réalisé par : Grégory CORDIER Promotion : RIE03 UE : Management Social.
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
Introduction aux outils de supervision
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
ITII - Option Réseaux Roland DEPEYRE
M2.22 Réseaux et Services sur réseaux
Les Mondes Virtuels : Au delà des jeux vidéo © Samuel CRUZ-LARA Samuel CRUZ-LARA IUT Nancy-Charlemagne / LORIA (UMR 7503) CNRS.
Transcription de la présentation:

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

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 http://www.acm.org/sigs/sigcomm/sigcomm2004/workshop_papers/net603-okanda.pdf 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].

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

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

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

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)

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

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.

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.

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

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

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)

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

bibliographie http://www.gamasutra.com/ http://www.mondespersistants.com http://www.mmogchart.com/ http://www.nevrax.org http://www.blizzard.fr/wow_new/faq/faq_realms.shtml 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

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

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.

Session réseau Echange classique client/serveur

Mode de replication BDD 2 approches virtualisation

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

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

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

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