Le cache, une belle emmerde ?
Le cache, une belle emmerde ?


1. Le cache, qu’est-ce que c’est ?
Tout d’abord, il est important de signaler que toutes les extensions (de Vanilla à MoP, et plus tard Draenor) du jeu World of Warcraft utilisent ce système fort sympathique dit de « la mise en cache ».

Le système de mise en cache est, en fait, un système qui stocke certaines informations que le serveur envoie au client dans le but d’être sauvegardées sur votre disque dur. Pourquoi ? La raison en est simple : une fois que l’information est envoyée, et stockée, le serveur n’aura pas besoin de la renvoyer une nouvelle fois, et ladite donnée sera affichée telle qu’elle a été sauvegardée par le serveur dans votre dossier Cache, pour alléger les transactions réseaux avec le serveur de jeu. Ainsi, plus de lag¹ inutile. Ben oui, qui a envie de jouer par intermittence, de manière décalée ou par à-coups, alors que les autres n’ont rien du tout… c’est clairement chiant !

Ces données sont, techniquement, des informations qui ne changent pas. Elles regroupent des caractéristiques sur les créatures, les gameobjects, les items, les pnj, les quêtes, les textes, etc.
Comment ce système fonctionne-t-il dans la pratique ?


[Image: 140426041740709210.png]


2. Du coup, pas de souci… ?
Ce système est très intéressant pour un serveur stable, qui ne touche plus à ses bases de données. Cependant, il est hautement problématique pour les serveurs en développement. En effet, d’un système qui se veut facilitant la vie, il devient l’un des problèmes les plus récurrents de l’émulation. De fait, occupés que nous sommes, nous ne pensons que rarement à vider ce dossier Cache ! Du coup, nous pensons que les modifications apportées ont échoué, alors que… pas du tout.

Là où la mise en cache pose problème, c’est, comme je l’ai dit précédemment, lors d’un changement dans la base de données. Le client, qui a déjà enregistré la dernière fois les informations relative à une quête, par exemple, ne demandera plus au serveur de lui renvoyer ces informations-là. Mais ce que le client ne sait pas, c’est que ces informations ont changé, entre temps. Et puisqu’il ne demande rien au serveur, le serveur ne lui donnera rien spontanément. Alors, il gardera les anciennes informations.

Autre cas de figure possible, ce sont les changements de serveur. Là où un serveur aura corrigé un souci, l’autre serveur pourrait toujours l’avoir. De ce fait, lorsque vous allez sur le serveur bogué, vous sauvegardez les données boguées. Ensuite, quand vous allez sur le serveur débogué, vous constatez toujours le même souci… alors qu’il a été réglé, chez eux !


3. Vidons-le alors…
Sachez qu’effacer le dossier Cache n’aura aucune incidence néfaste sur votre jeu et pourra potentiellement résoudre certains problèmes liés à des fichiers corrompus ou périmés.

Là encore, soyez prudents ! Le dossier Cache se trouve à la racine du dossier du jeu World of Warcraft, et pas ailleurs. Ce dossier contient un sous-dossier nommé WDB, qui contient lui aussi un dossier frFR (si vous jouez en français, évidemment, sinon ce sera adapté à la langue de votre jeu). C’est dans ce dernier dossier que se trouvent les informations stockées sous l’extension .wdb. Ce sont ces fichiers-là que vous pouvez supprimer, purement et simplement.

Bien souvent, les Launchers fort bien codés vident le cache eux-mêmes, en supprimant directement le dossier Cache, sans faire trop de chichis. Dans tous les cas, si le dossier n’existe pas, il sera automatiquement créé lors de la prochaine mise en cache.

Le jeu utilise les informations mises en cache. Pour supprimer ces informations, vous devez fermer les applications ouvertes relatives à World of Warcraft (.exe, .app, enfin tu vois quoi… Big Grin).
N.B. : Ces informations sont mises en cache et sauvegardées à la fermeture de l’application WoW. À chaque fermeture de l’application, un dossier Cache sera présent, et contiendra les données mises à jour.

En règle générale, tous les dossiers nommés « Cache » sont potentiellement supprimables. Il en existe un dans le dossier Data, et il contient entre autre des textures. Lorsque vous utilisez des patchs MPQ customs dont l’auteur a touché aux textures précédentes, il vous est recommandé de supprimer aussi le sous-dossier Cache du dossier racine Data, pour les mêmes raisons explicitées ci-dessus.


4. C’est fini ?
Presque ! Certaines personnes (qui sont myopes, ou alors qui n’ont plus le dossier Cache, mais qui veulent absolument le trouver… -_- ) confondent le dossier CACHE et le dossier WTF.

Ce dossier WTF contient les données relatives à la configuration de vos comptes (vos macros, vos raccourcis clavier, etc…), mais aussi les données des Addons. Certains addons peuvent se comporter de manière très bizarre. De ce fait, vous pouvez vider le dossier WTF pour corriger les possibles bugs, mais vous perdrez vos configurations…

a. Quand faut-il normalement vider son dossier WTF ?
  • Lors d’un changement de matériel : mettons que vous changez de carte graphique, vous installez donc de nouveaux pilotes, etc… La configuration précédente sera conservée dans le dossier WTF, ce qui posera souci avec votre nouveau matériel. Dans ce cas, vous devrez supprimer le dossier Cache, WTF et Interface, qui stockent des données désormais faussées. Ces dossiers et les contenus par défaut seront alors recréés automatiquement.
    Attention : veillez à réinstaller vos Addons !
  • Lorsque vous constatez un souci d’affichage ou de configuration d’un Addon.
  • Lorsque vos performances graphiques sont nettement diminuées suite à la modification du Config.wtf (faut être sûr de soi pour chipoter à ça ! Sûr de soi, et sur de ta carte graphique surtout…)

-----------------------------------------------------------------
Notes de bas de page :
¹ Pour rappel, le lag désigne le temps nécessaire à un paquet de données pour passer de la source, le serveur, à la destination, le client, à travers un réseau. À ces paquets correspond une valeur de latence. À cause de cette latence, les temps de réponse sont parfois très rapides, parfois très lents.
Très complet et qui est très bien expliqué.

+1 rep
Ce cache .. il en a fait rager plus d'un x)

Belle explication Judo' ! Big Grin
Il faut se mettre en tête qu'à chaque modification de la DB il faut quitter le jeu et supprimer le Cache et puis voilà Smile.
Ouais je me suis fait avoir hier, a chaque fois on cherche en profondeur mais on pense pas directement aux trucs les plus cons, comme ce putin de cache :/
Très bonne explication Smile !

Après pour pas se faire avoir, on peut se développer une toute petite application console qui, au lancement supprimera le dossier cache et lancera le jeu ^^

+rep
Très bon tuto, bravo!

Retourner en haut WoW-Emu