Rohirrim Admin
Nombre de messages : 415 Age : 39 Localisation : Temple des Ages Fr1 Emploi : Invoqueur de catastrophes naturelles. Loisirs : Balancer des meteores a tout va! Date d'inscription : 24/03/2007
| Sujet: GW coté technologie. Ven 15 Juin - 7:54 | |
| Un joueur a recement eu l'opportunité d'interviewer certains membres du Staff de GW afin d'obtenir plus d'informations sur les technologies employées pour programmer et maintenir GW (liens vers les articles originaux : http://www.monashreport.com/2007/06/09/technology-of-guild-wars/http://www.dbms2.com/2007/06/09/the-database-technology-of-guild-wars/http://www.monashreport.com/2007/06/09/guild-wars-game-notes/ - Citation :
- La technologie de Guild Wars
Etre un analyste a ses bons côtés, parce qu'on peut avoir des discussions très intéressantes. C'est ainsi que j'ai eu l'occasion d'interviewer Mike O’Brien et Pat Wyatt, deux des fondateurs et programmeurs principaux d'ArenaNet, créateurs du MMORPG (ndt: roooh !!) Guild Wars.
Si vous jouez à ce genre de jeu, il est évident que cela va vous intéresser. Mais même si ce n'est pas le cas, vous devriez jeter un oeil. Après tout, Guild Wars est un SaaS (ndt: Software as a Service, c'est à dire la commercialisation d'une application sous forme de service en ligne) avec de beaux graphismes qui supporte aisément 100,000 utilisateurs en simultané, tout en gérant un client de plus d'un Go et ce même pour les plus petites connections par modem. Chaque utilisateur est un hacker potentiel, que ce soit pour le "fun" ou pour en retirer de l'argent réel ; même si nous n'avons pas beaucoup discuté de l'aspect sécurité. Et ArenaNet propose tout cela avec un budget relativement limité ; en effet, les frais d'abonnement s'élèvent à exactement 0€ par mois.
Note: Si vous êtes habitué aux JdR hors ligne mais pas aux MMORPG, lisez ce qui suit. La différence et que dans un MMORPG, beaucoup de joueurs jouent en même temps. Et si vous êtes habitué aux MMORPG mais pas à Guild Wars, sachez que GW est instancié. C'est-à-dire que chaque groupe, de 1 à 24 joueurs, va avoir sa propre copie du monde de jeu. Les changements dans l'environnement sont effectués par eux seuls.
Et si vous n'êtes pas habitué aux JdR du tout, je vous conseille d'arrêter de travailler si dur et de commencer à jouer.
Voici quelques détails techniques que j'ai réussi à glaner pendant cette courte demi-heure de conversation :
Le client ne fait pas grand-chose à part le côté graphique et la préparation du résultat final (dont l'encryptage).
C'est un choix de sécurité. Ils partent du principe que le client de jeu est hackable à l'infini, et donc limitent son importance à simplement pouvoir envoyer quelques informations prédéfinies.
Ils ont des serveurs "en lames" (ndr: "blade", plus d'infos ici) – au départ uniquement des IBM, maintenant plus variés. Il s'agit en général d'IBM avec bi-processeurs Xeon à 2.8 gigahertz et 2.5 gigas de RAM.
Il y a différentes catégories de serveurs. Y compris: identification/connexion, téléchargement de mises à jour du jeu, le jeu en lui-même, cache de la base de données, DBMS (ndt: gestion de bases de données), fonctions secondaires du jeu (membres de guildes, tournois...), systèmes de protection qui surveillent le reste.
Les serveurs de jeu peuvent chacun accueillir entre 2500 et 3500 utilisateurs, la restriction principale étant la quantité de mémoire adressable. (Les machines tournent sous Microsoft Windows 32-bit)
Les données liées aux personnages des joueurs prennent quelques dizaines de kilobytes.
Il y a 4,5 millions de lignes de code au total.
Leur but au niveau de la connectivité est de .0045 megabits/seconde/utilisateur, et ils sont près de l'atteindre. Il est tout à fait possible de jouer en 56k. (ceci dit, en tant que joueur je peux vous dire que vous subirez tout de même quelques lags)
La fiabilité n'est pas seulement un avantage pour les utilisateurs, c'est aussi un point important pour l'intégrité du jeu. Il existe plusieurs abus dans les MMORPGs, par exemple en faisant planter le serveur délibérément pendant une transation client-serveur. ArenaNet combat cela en mettant l'accent sur l'intégrité des transactions et plus généralement en essayant de rendre leurs serveurs de cache de bases de données très fiables. Ces serveurs restent en moyenne connectés entre 150 et 200 jours d'affilée.
*Note: la triche est très présente dans le monde des MMORPGs. Un problème majeur est l'acquisition d'argent dans le jeu par des professionnels dans des pays à bas salaires, qui le revendent ensuite pour de l'argent réel. Ces revendeurs d'or inquiètent fortement ArenaNet. - Citation :
- J'ai
la chance d'être chargé de faire des recherches sur les jeux en ligne et les mondes virtuels pour un article à venir sur Network World.
Pour ma première interview, je me suis naturellement tourné vers les chefs de projet du jeu auquel je joue : Guild Wars. Cet article met l'accent sur la technologie de bases de données. Il contient aussi une courte description de ce qu'est Guild Wars - un MMORPG (ndt: roooooh!!!) avec un aspect peu commun: le monde est instancié et non pas complètement partagé par tous les joueurs.
Commençons par quelques infos. ArenaNet (développeur de Guild Wars, maintenant filiale de NCsoft) utilise Microsoft SQL Server, surtout l'Edition Entreprise, et vient juste de passer à l'édition 2005 il y a 4 mois. Entre 1500 et 2500 transactions/seconde sont effectuées chaque jour, avec des pics à 5000. Il n'ont pas d'administrateur de bases de données à plein temps, et lorsque les développeurs ont commencé ce projet, il ne connaissaient pas le SQL. Ils n'ont eu qu'un problème majeur de SQL depuis que le jeu existe (soit plus de 2 ans), et, comme la plupart de leurs bugs, il était dû à un problème de pilote de réseau plus qu'à un réel problème dans le coeur du système.Alors, comment cela fonctionne-t-il ? Plusieurs choses liées aux bases de données ont lieu dans un MMORPG instancié.
Les personnages du jeu trouvent des objets ; par exemple, il y a des transactions d'inventaire. La plupart du temps celles-ci sont unilatérales. Les objets proviennent de nulle part et il n'y a donc pas à supprimer les objets du stock d'origine. De la même façon, ils achètent et vendent aux PNJ marchands. Un personnage porte jusqu'à 60 objets différents, chacun d'entre eux étant une combinaison de plusieurs token (nbtr: ouais voila quoi si vous comprennez vous ... ) ou attributs choisis dans une liste prédéfinie.
Les personnages évoluent. Ils gagnent en puissance. La part de carte qu'ils peuvent voir augmente. Ils vivent des événements qui modifient le jeu. Etc.
Il existe des modifications temporaires au monde de jeu lorsque les personnages explorent des zones. Celles-ci doivent être maintenues en l'état tant que ce personnage est connecté et se trouve dans cette zone. Mais puisque le jeu est instancié, elles n'ont pas besoin d'être mémorisées après cela (à quelques exceptions près).
Il y a certains systèmes secondaires qui utilisent des transactions ordinaires, tels que la fenêtre de guilde et le système de tournois. Au vu de leur mode de fonctionnement, il semblerait qu'ils suivent des schémas très simples.
Dans certains MMORPGs, l'inventaire est géré de façon évidente – chaque objet a un enregistrement qui lui est associé.
Mais Guild Wars fait les choses différement. Tout ce qui concerne un personnage se trouve dans un gros BLOB (Binary Large OBject), qui a généralement une taille de 10K à 30K. (un élément est la carte complète, ou du moins l'enregistrement des pixels découverts.) Plus précisément, il existe un BLOB par personnage et un BLOB par compte. Les BLOBs sont mis à jour au fur et à mesure que le jeu progresse, et sont sauvegardés à intervalles réguliers (quelques minutes).
En fait, s'il y a 150,000 transactions et plus par minute, et que chaque personnage génère une transaction toutes les quelques minutes, ça signifie qu'il y a environ 0,5 million de personnages en ligne en permanence, avec des pics à 1 million. Selon ce que je connais sur le gameplay, je pense que ce chiffre est 10 fois trop élevé environ. Je n'arrive pas à expliquer cette contradiction pour le moment.
Bien sûr, il n'existe quasiment pas de transaction aussi simple que de rentrer un BLOB dans une base de données.
Cependant, il y a beaucoup de BLOB qui transitent. Et donc entre le serveur de jeu et les backends de la base de données (lieu de stockage), il y a des serveurs de cache personnalisés. Les serveurs de jeu envoient des messages à propos de diverses transactions d'objets au serveurs de cache ; puis ces derniers envoient les BLOBs mis à jour à la base de données. Ces serveurs de cache sont extrêmement stables, restant opérationnels entre 150 et 200 jours d'affilée.
ArenaNet est, globalement, très réactif aux demandes des joueurs. Il y a cependant un point sur lequel ils ont déçu les joueurs : le fait de ne pas avoir introduit d'hôtel des ventes, ce que la plupart des autres créateurs de MMORPG ont été capables de faire. Même après cette interview, je ne suis pas sûr à 100% des raisons, mais je pense que ça se résume à cela – un hôtel des ventes serait de loin de système de transaction le plus complexe qu'ils ont implémenté. Et étant donné que l'inventaire n'est pas géré par enregistrement unique, ils auraient besoin de recommencer à zéro. Ceci dit, bien qu'ils ne m'aient rien dit à ce sujet, lorsqu'ils réexamineront ce problème pour GW2, je suis sûr qu'ils réaliseront que ce n'est pas aussi difficile qu'ils le pensent aujourd'hui.
En ce qui concerne l'avenir des bases de données: le fait de passer le stockage d'un joueur (coffre Xunlai) de 20 à 80 emplacements a forcé une expansion de la base de données. Il y aura probablement d'autres augmentations de la base de données, bien qu'ils ne soient pas encore entièrement décidés sur ce point. ArenaNet semble très satisfait des serveurs SQL, et ils ne vont pas réparer ce qui n'est pas cassé; de plus, ils sont situés à Bellevue. (à l'inverse, Sony Online est en train de migrer Everquest d'Oracle à Enterprise DB. J'espère pouvoir les interviewer à l'avenir) ArenaNet ne semble pas prendre en considération la technologie "memory-centric" (ndt: les données sont situées directement dans la mémoire dès le départ), bien que ce soit un choix judicieux pour le cache ; en particulier, StreamBase semble s'introduire dans le marché du jeu/des mondes virtuels (Je vous en dirai plus la dessus si les gars de StreamBase m'aident a décrocher quelques interviews).
Le 3eme article est en fait un resumé des 2 precedents: * Ne vous attendez pas a avoir un hotel des ventes (raisons données vers la fin de l'article sur les bases de données) * votre pourcentage d'exploration est reelement calculé en fonction de chaque pixel exploré par rapport au nombre total de pixels possibles (meme si 100% est atteignable avec un peu moins de pixel que ceux reelement possibles) * La gestion des instances etait moins compliquee que ce qu'ils avaient prevu on peut donc s'attendre a des ameliorations pour GW2 vu qu'ils seront plus conscient de ce que cela represente reelement. | |
|
Lazarus Admin
Nombre de messages : 58 Age : 44 Localisation : Ile de feu Emploi : Asservir les esprits Loisirs : Arênes, AvA, PvE Date d'inscription : 09/04/2007
| Sujet: Re: GW coté technologie. Ven 15 Juin - 13:44 | |
| Coucou Rohi Je ne sais pas ou tu as trouvé ces infos, mais c'était très intéressant pour moi Me usis régalé à tout lire, histoire d'avoir une idée plus précise sur l'architecture réseaux de GW. Encore merci Lazarus | |
|