Le problème, avec les «explications» données par Blizzard, c’est que c’est tellement pauvre, vulgarisé, qu’au final on n’a même pas la moindre notion du fonctionnement de leur machin.
Quand tu les écoute, t’as l’impression d’avoir Dora l’exploratrice qui te fait un cours de physique quantique
Serveurs, déjà, ça veut plus dire grand chose.
Le temps de machines isolées est bel et bien fini, depuis longtemps.
Sur les systèmes modernes, les baies sont segmentées, les processus sont plus ou moins indépendants et y a probablement des systèmes de supervision à haute disponibilité, un peu ce qu’on trouve sur des systèmes erlang ou elixir, avec du let it crash, et des micro services dans tous les sens.
Et tous ces services peuvent bosser dans leur coin, même isolés physiquement, d’une baie à l’autre, comme des abeilles dans une ruche.
Donc l’entité serveur ne veut plus rien dire.
Si on parle de royaumes, on avait vu passer des census parlant de 60k joueurs sur le même royaume.
Ces 60k joueurs sont tous regroupés sur la même BDD, du moins table (liée ou segmentées, osef, on va pas compliquer) avec une dénomination commune, xyz-Auberdine, abc-Finkle etc.
Le truc, c’est qu’on sait pertinemment qu’on ne peut pas balancer ces 60k zozos dans le même «monde», c’est pas possible.
Même en admettant que ça tienne le choc, ce serait injouable.
Donc, on passe sur un système de layers, de couches, d’instances du monde.
Et ces layers deviennent alors la représentation la plus proche de ce qu’on appelait avant serveur, un truc à taille humaine aux alentours de 5k joueurs.
Et malgré tous leurs efforts, ils ne pourront pas faire sauter les layers sans une diminution importante de la population, même avec du respawn dynamique et tout le toutim.
Et, un peu comme je disais sur le post avant, sachant que c’est pas non plus magique, et qu’une certaine cohérence au niveau du système, et de la répartition des population, veut que les layers soient dispatchés de manière souple et progressive (smooth balancing), pour des raisons de perf d’une part, mais également de cohérence ingame (ce serait idiot de chainer les layers comme des wagonnets au parc Disney, quand le 1er est plein, on charge le suivant) ben tu as obligatoirement des temps impartis à l’équilibrage des joueurs.
Et c’est pour ça que même si la capacité serveur (physique, les baies) est loin d’être atteinte, ben il faut un certain temps pour que les joueurs soient répartis.
Et ça, ça se fait plus ou moins naturellement au gré des déplacements des joueurs, car même si les continents du jeu donnent l’impression d’être d’un seul tenant du nord au sud, ben ils sont subdivisés en chunks multiples, et le système de supervision peut profiter d’un changement de chunk d’un joueur pour le faire basculer sur un autre layer.
Mais y a des problèmes supplémentaires qui s’ajoutent.
Les groupes formés, par souci de cohérence encore, ne doivent pas être séparés (en théorie, et ce que leur saleté de sharding sur retail n’a jamais été fichu de faire correctement).
Un groupe qui sort d’une instance (donjon), ou qui prend un TP de mage, etc, peut être changé de layer de manière relativement transparente.
Mais tout ça, ça prend du temps, tu peux pas prendre les joueurs au pif et dire : bon, toi, tu vas sur l’autre layer … parce que
Sinon, coucou, tu pop au milieu d’un pack de mobs alors que 2 sec avant, tout était clean.
Tant qu’il y aura des layers, aux heures d’affluence, il y aura potentiellement des files d’attente, parce que le balancing n’est pas magique et instantané.
Tout ça, c’est de la théorie, basée sur des modèles qu’on connait, comme en téléphonie par exemple, des trucs incroyablement complexes qui doivent avoir une très haute disponibilité, ne pas crash, et répartir des flux en permanence (erlang a été créé pour ça d’ailleurs je crois, pour la téléphonie), mais bon, le bousin à Blizzard, on sait pas comment il marche
Mais bon ça m’étonnerait que ce soit bien plus complexe que ça.