L'architecture des MMORPGs


Conclusion

Durant cet exposé, nous avons détaillé l'architecture du client et de l'infrastructure de serveurs nécessaires au déploiement d'un MMORPG. Le monde du jeu est donc distribué sur des serveurs de jeu dans une architecture centralisée. Chaque serveur administre tous les objets relatifs à une zone particulière. Les joueurs se connectent et s'authentifient, puis ils accèdent aux serveurs de jeu. Le plus de calculs possible sont dédiés aux machines clientes, qui de nos jours disposent de processeurs puissants et de beaucoup de mémoire RAM. C'est pourquoi la gestion des graphiques et de la physique du jeu est réalisée côté client, alors que tout ce qui est la gesetion des clients tout est fait au niveau du serveur.

Le design pattern Publisher/Subscriber permet de réduire la bande passante consommé dans la communication clients-serveurs grâce au concept de l'Area of Interest. On ne notifie les clients que lorsque ils ont besoin de connaître l'exécution d'un évènement. On obtient une grosse optimisation puisque tous les effets temporaires ne sont pas notifiés au clients qui ne les "observent" pas. On a également adressé les problèmes de consistence des données du jeu au moyen d'un système de verrous à 2 échelles avec les verrous accordé par un serveur distant, les verrous de régions, englobant les verrous sur les objets eux même que seul le serveur administrant l'objet est autorisé à prendre. Ainsi on peut prouver que l'ordre d'occurence des évènements est déterministe au niveau du serveur.

Enfin on a vu comment, avec cette architecture, il était simple de rendre le réseau de serveurs de jeu tolérant au pannes et aux congestions, par le mirroring et la délégation d'une partie de la zone administrée à un autre serveur. Toutefois, il est à noter que la tolérance d'un réseau aux pannes est un sujet qui mériterait un exposé à part entière, les solutions présentés ici ne sont pas suffisantes pour garantir une résistance aux pannes, toutefois elles constituent des premières mesures qui sont simple à implémenter.

Aujourd'hui, les concepteurs de jeux semblent orienter leurs recherches sur des architectures plus distribuées avec l'introduction de P2P dans les processus du jeux. Ils espèrent réduire d'un facteur 2 le nombre de messages échangés en moyenne entre les clients et les serveurs et donc considérablement diminuer la bande passante nécessaire. Toutefois, la sécurité de ces échanges serait bien plus complexe par la nature même du P2P.


Références

A Distributed Architecture for MMORPG
Architecture for a Massively Multiplayer Online Role Playing Game Engine
Article Wikipédia: les MMORPGs