Thursday, October 20, 2011

[dota2] billet 5

Bon, pas de partie pour aujourd'hui, ni même depuis quelques jours. Je suis allé faire des photos, donc j'ai pas pu jouer, ensuite j'avais d'autres trucs à faire, donc pas pu jouer non plus...

Je vais plutôt parler d'un des problèmes persistants de dota 1.

Le problème des leavers dans les parties publiques.


Par leavers, (venant "To Leave" qui veut dire quitter en anglais), on entend une personne qui quitte la partie avant qu'elle ne soit terminée. Dota se joue à 5 contre 5. Un 'leaver' vas typiquement ruiner l'équilibre des forces en présence, ne laissant généralement pas d'autres options que de recommencer la partie...

Je parle du 'leaver' au sens large, y compris lorsque l'action de quitter n'est pas intentionnelle: le pc qui redémarre sauvagement suite ou non à une coupure de courant, la déconnexion (sauvage) par le fournisseur d'accès à Internet, l'écran bleu de Windows etc.

l'écran de Dota 1 qu'on avait
quand on se faisait déconnecté d'une partie...
Pour le cas non intentionnel, on peut dire que Dota 2 a résolu la majeure partie du problème: le jeu gère la déconnexion, à l'inverse de dota 1, et il est possible de se reconnecter à la partie en cas de déconnexion, de la même manière si le pc crashe la personne va disposer de plusieurs minutes pour se reconnecter à la partie. 


Lorsque l'action est intentionnelle, je dois dire que pour l'instant on ne sait pas très bien ce qu'a prévu de faire Valve. Quand Dota était un mod de Wacraft III, Blizzard ne s'intéressait que peu aux parties personnalisées: en Ladder, le fait de quitter consistait à déclarer la plupart du temps l'adversaire comme gagnant. Il était même courant et accepté de quitter quand on constatait qu'on allait perdre afin de permettre de jouer plus rapidement une autre partie. Les parties à 5 vs 5 sont un peu une exception et un cas non prévu par Blizzard, on peut supposer qu'ils n'ont jamais chercher à corriger le problème à la source.


Pour dota 1, Il existe ou a existé plusieurs systèmes de League, qui tentent ou ont tentées toutes plus ou moins de lutter contre les 'leavers': certaines se basaient sur l'utilisation d'un score, d'autres sur l'utilisation d'avertissement et d'exclusion d'un cercle fermé de joueurs, voir des deux...
bannière de Dota-League,
un site permettant l'organisation de parties de Dota 1.

Pour prendre un exemple concret, Dota-League, un site web organisant des parties de dota 1, pénalise une personne qui quitte la partie de deux manières:
  • en lui mettant -10 à son score, obligeant le joueur à jouer en moyenne 5 autres parties pour rattraper le score perdu.
  • Dans le cas d'une action est intentionnelle, la personne peut aussi prendre des points de pénalité, chaque points de pénalité se traduisant potentiellement en 2 jours de bannissement de Dota-League. 
La contrepartie est que les joueurs fautifs vont alors tenter de créer plusieurs comptes pour pouvoir éviter ces bans, ce qui est évidemment interdit par le dit site et pas forcément évident à détecter...
Capture d'écran du logiciel wc3Banlist qui était utilisé
pour détecter les leavers et ne plus jouer avec eux...

Il a existé un système de Banlist, permettant de bannir des joueurs de manière temporaire, l'effet de cette Banlist était discutable pour diverses raisons, l'une d'elle étant qu'on ne pouvait bannir les clefs CD de Warcraft III mais seulement les nicknames utilisés par les joueurs et qu'un joueur bannit n'avait qu'à en changer pour éviter un ban... L'utilisation d'une Banlist a toutefois été rendu possible par le développement d'un client spécifique, indépendant du jeu, wc3Banlist, son utilisation permettait de savoir ce qui se passait dans la partie de manière plus ou moins sure.
Capture d'écran de dw3gParser, un parser de replay spécialisé pour Dota 1.

Pour faire fonctionner ces leagues externes, les replays (enregistrement de partie) étaient aussi utilisés. On pouvait utiliser divers parsers pour savoir ce qui s'était passé dans la partie sans avoir à la regarder complètement. Le développement des Parsers a été rendu possible en bonne partie grâce au travail d’observation et de reverse engineering de Nagger et Blue, qui ont compilé ce qu'ils ont noté sur ce format inconnu dans deux fichiers. w3g_format.txt et w3g_actions.txt. Le premier fichier contenant des informations sur le format général des replays, le second sur les actions spécifiques des joueurs.  Il convient de noter que le développement de parsers spécifiques à Dota 1 s'est déroulé car il y existait un besoin véritable de pouvoir vérifier rapidement ce qui s'était passé dans une partie sans avoir à la regarder avec le client du jeu. Au niveau de Dota2, je suis assez confiant qu'Icefrog a clairement compris la nécessité de pouvoir informer les joueurs sur le contenu d'une partie sans avoir à la regarder avec l'interface du jeu. Il avait d'ailleurs augmenter la précision de ce qu'on pouvait analyser par l'ajout de hacks au sein de Dota 1, permettant à des parsers d'extraire très facilement les événements liés à la partie. Au final, peu importe que cette fonctionnalité soit fournie par des parseurs ou par des logs de jeu, localisés sur les serveurs de Valve, je pense qu'elle sera présente et utilisable, vu qu'on peut déjà consulter les logs de jeu durant une partie...

Mon opinion est tout système de sanction pour être efficace doit être implémenté le plus proche possible de la source, ou du moins, doit laisser le moins possible de chance aux fraudes sur l'identification de la personne fautive. De la même manière, on peut tenter de réduire le risque en n'incitant pas les joueurs à quitter les parties.
Le héros Panthéon de League of Legend.
Note: je pense qu'il doit courir vite vu la taille de ses orteils.

On en a l'illustration dans League of Legends: la personne qui quitte et tente de rejoindre une autre partie va rejoindre la partie qu'elle vient de quitter. C'est une manière simple mais élégante de corriger une partie du problème. Une autre manière est de donner un niveau artificiel aux joueurs et de faire en sorte que les joueurs de même niveaux jouent ensemble. Les joueurs prompt à quitter des parties se retrouveront alors avec un niveau plus faible que les autres et ne pénaliseront plus les autres, de manière statistique.

Un autre point illustré par League of Legends: les joueurs ne sont plus les hôtes des parties: Il arrivait dans Dota 1 que des joueurs en déconnecte d'autre pour pouvoir 'gagner', cela n'était possible que parce que les parties customisées étaient hébergées par les joueurs. Dota 2 tout comme LoL semble s'orienter vers des hébergements de partie dédiés. Ce sera au final une bonne chose: fini les problèmes de connexions et de lag avec des joueurs situés en Allemagne ou en Russie, fini les suspicions de 'Drop hack.'

Il me semble évident qu'Icefrog est conscient du problème des leavers intentionnels, et qu'il va tenter d'implémenter les diverses possibilités qui s'offre pour résoudre ce problème. Reste à savoir comment cela se concrétisera et si les solutions fonctionneront ou non.

No comments:

Post a Comment