Bonjour à tous, comme vous avez pu le remarquer avec ce titre explicite, je reviens un peu poser un problème bien connu qui dure depuis maintenant bien trop longtemps sans avoir ni solution viable ni information (non l’option pour le BL automatique des joueurs d’autre langue via la petite case à cocher n’est pas une solution à mes yeux).
Comme vous le savez, depuis le super (ahem) pack de fonctionnalités de septembre 2014, Arenanet a décidé d’altérer son jeu pour y le faire fonctionner avec un système de mégaserveur. Les travers du système sont bien connus de tous, mais histoire d’être exhaustif et pour les plus fainéants qui ne veulent pas relire les gros pavés sur le sujet, en voici les principaux :
- Regroupement de joueurs avec un système très opaque, souvent capricieux, et sans aucun contrôle du joueur sur ce dernier
- Exploitation des mécaniques d’instances de ces cartes multiples pour accéder aux récompenses d’un méta événement de carte (plus ou moins solutionné avec le système de participation)
- Mélange des joueurs quels que soit leurs préférences linguistiques alors qu’historiquement, il existait des serveurs avec des langues officiellement marquées, avec tous les comportements qui en ont découlé
Et je vous épargnerai les histoires sur les timers d’événements de WB, les événements intercartes, les points de passages contestés, etc.
Nous sommes aujourd’hui en 2017. Une extension est sortie, la seconde ne devrait plus tarder à être annoncée officiellement, et depuis pas grand chose n’a changé sur ce système. Alors plutôt que taper encore une fois sur le concept de mégaserveurs (je l’ai déjà fait a plusieurs reprises sur ce forum, ça n’a semble-t-il pas changé grand chose), je vais faire quelques suggestions pour le rendre un peu moins pourri à défaut d’être bon.
La perfection n’existe pas
Oui, j’aime bien enfoncer les portes ouvertes. Mais c’est surtout vrai quand on parle d’êtres humains. Or les joueurs sont des êtres humains : ils peuvent parfois être rationnels, parfois ne pas l’être, et on ne peut pas déterminer avec certitude ce qu’ils veulent à un instant T. Or le système actuel de mégaserveur est basé sur le principe de pouvoir déterminer et anticiper les attentes d’un joueur.
Un programme ne pourra jamais se substituer aux attentes premières d’un utilisateur. De ce fait, il est impératif de laisser à l’utilisateur une possibilité de personnaliser ses attentes et de rectifier lorsque ces dernières ne sont pas satisfaites.
De ce fait, il me semble vraiment important de commencer, avec déjà 3 ans de retard, à se pencher sur une interface permettant aux joueurs de paramétrer leurs préférences et de changer d’instance de carte (avec un CD, bien sûr).
Paramétrer ses préférences
Parce que nous n’avons pas tous les mêmes attentes, ou que nos attentes peuvent changer d’une fois sur l’autre, il y a besoin de pouvoir paramétrer nos préférences. Mais ces préférences auront donc des impacts aussi côté serveur, puisqu’il faudra gérer certains “flags” lors de l’ouverture des instances de carte.
Dans ces préférences, il est possible donc de
- Privilégier la langue (ne vous met que sur une instance avec votre “tag” de langue -que vous pourrez paramétrer à côté et qui ne correspond pas forcément à celle de votre client)
- Privilégier la population (vous mettra vers les instances avec la plus forte population)
- Privilégier les faibles avancements (vous mettra sur les instances avec les achèvement de carte les plus petits, pour ceux qui veulent faire un méta événement de A à Z, comme pour la gueule du dragon)
En terme de fonctionnement, le serveur commence par créer des instances de carte internationales où il placera naturellement les gens qui ont paramétré “privilégier la population” et ceux qui auront choisi “privilégier la langue” si (et SEULEMENT si) aucune instance dans la langue voulue n’est disponible.
Lorsqu’une nouvelle instance de la carte doit être ouverte, le serveur regarde avant tout les tags linguistiques des personnes dans les cartes internationales (du moins parmi les personnes qui n’ont pas dit “non” si on leur a déjà proposé de rejoindre une instance de carte avec leur langue). Si ce nombre est suffisant, il ouvre alors une instance de la carte avec un “tag” de langue. Tous les joueurs qui ont choisi “privilégier la langue” reçoivent alors la fameuse notification l’invitant à changer d’instance, comme lorsqu’une instance ferme, afin de rejoindre.
Tous les joueurs qui ont choisi ce paramètre seront alors placés sur une instance qui possède un flag linguistique à partir du moment où il en existe au moins une, les autres paramètres de guilde, d’amis et de serveur d’origine ne s’appliquent qu’après (on peut néanmoins garder le paramètre de groupe comme prioritaire). Un joueur ne peut rejoindre une instance linguistique que s’il l’a paramétré (indépendamment de s’il a choisit “privilégier la langue” ou “privilégier la population”). Lorsqu’un serveur avec un tag de langue est suffisamment peuplé, les joueurs qui ont choisi “privilégier la population” y sont également ajoutés en priorité lorsque leur flag de langue correspond.
Pour résumer : chaque joueur choisi une langue (indépendamment de celle du client, ce qui permet aussi aux joueurs d’autres pays d’avoir leur propre regroupement). Dès que suffisamment de joueurs avec cette langue se présentent sur une même carte et se trouvent sur une carte internationale, la prochaine instance de la carte qui est générée par le serveur est “marquée” avec une langue. Les cartes de serveurs qui sont marquées avec une langue ne peuvent être rejointe QUE par des joueurs avec la même langue paramétrée.
Interface de sélection
Maintenant que nous avons vu comment gérer la répartition linguistique des cartes, voyons maintenant comment donner la main au joueur pour corriger les erreurs. Par exemple, j’ai été mis dans FR1 parce que j’ai mis que je privilégiait la population et que ma guilde s’y trouve, mais j’ai des amis sur FR2 que je veux rejoindre.
Il faut donc déjà pouvoir avoir la liste des instances disponibles, avec leurs tags de langue (FR1, par exemple), et avoir en face une visualisation rapide de sa population (faible, normal, bondé, complet), le nombre d’amis présents sur cette instance (avec le détail en infobulle, ce serait pas mal), et le nombre de gens parmi les guildes de notre compte. Et bien sûr, un bouton “rejoindre” ou “dans la file” si l’instance est complète. Ça ne me semble vraiment pas être la mer à boire de coder cette fonctionnalité.
Ces deux éléments sont à mon sens indispensables si on veut espérer perdurer sur un système de mégaserveurs potable. Voilà, merci à ceux qui auront lu ce pavé jusqu’au bout (pas beaucoup à mon avis :P)
que ceux même qui sont les plus difficiles à contenter en toute autre chose,
n’ont point coutume d’en désirer plus qu’ils en ont. » – Descartes