Café avec les développeurs : World of Warcraft Classic
par Blizzard Entertainment le June 15th à 7:00pm

Salutations ! Le développement de World of Warcraft Classic est en cours, et nous sommes heureux de vous en dire plus sur les défis que nous devons relever et les solutions que nous avons imaginées. Comme nous l’avons dit lors de la dernière BlizzCon, restaurer le jeu classique n’est pas aussi simple qu’il n’y paraît, et nous tenons à prendre le temps de bien faire les choses : cela implique d’analyser les différentes versions du jeu, ainsi qu’une panoplie de données et de nombres, sans oublier d’examiner minutieusement chaque changement apporté au jeu au fil du temps. Soyez-en certains, l’équipe travaille d’arrache-pied pour faire de World of Warcraft Classic une réalité, et nous avons suffisamment progressé dans le développement pour vous en dire plus sur nos avancées.


World of Warcraft Classic : premier prototype

La première décision (et sans doute la plus importante) que nous avons prise a été de sélectionner la version du jeu qui allait nous servir de base. Comme beaucoup d’entre vous l’ont fait remarquer, la période classique s’est étalée sur deux années et a vu de nombreux changements. C’est à cette époque que les champs de bataille ont fait leur apparition, et de nombreux donjons et raids emblématiques ont eu droit à leurs propres mises à jour. Après mûre réflexion, nous avons opté pour la mise à jour 1.12 : Tambours de guerre, qui représente la version la plus complète de l’expérience classique.

Nous avions notre point de départ. Nous avons ensuite fait le point sur le contenu du code source et les ressources disponibles, ce qui a nécessité d’étudier en détail la base de données de développement originale. Après avoir assemblé les pièces du puzzle, nous avons pu reconstruire une version interne de la mise à jour 1.12. L’équipe a pu créer des personnages, faire des quêtes basiques, gagner des niveaux et mourir à de nombreuses reprises (pour les besoins des tests, bien sûr).

Nos premiers essais ont mis au jour quelques problèmes (prévisibles) : le jeu plantait parfois, ne reconnaissait pas nos cartes graphiques modernes et était incompatible avec le système de connexion actuel. Cette première version n’était pas non plus compatible avec nos systèmes de sécurité modernes, ni avec nos mesures anti-triche. World of Warcraft Classic avait encore un long chemin à faire avant d’atteindre la qualité typique des productions Blizzard et apporter une expérience satisfaisante aux joueurs. Nous vivons pour ces défis, et l’équipe d’ingénierie de World of Warcraft Classic a progressé à pas de géant.


En avant toute : deuxième prototype

World of Warcraft est un jeu bâti sur les données : le code de base est flexible et son fonctionnement est régi par des informations contenues dans des bases de données. Les quêtes, les monstres, les objets et les règles qui régissent leurs interactions sont définis par les concepteurs et les artistes sous forme de données.

Nous nous sommes alors demandé s’il serait possible d’offrir une expérience authentique en prenant le code moderne du jeu, avec ses améliorations et ses évolutions internes, et en l’utilisant pour gérer les données de la mise à jour 1.12. Bien que contre-intuitive, cette idée pouvait nous permettre d’incorporer des systèmes classiques comme le bonheur des familiers, les compétences d’arme, les talents classiques et ainsi de suite, tandis que les fonctionnalités plus récentes, comme les combats de mascottes, la recherche de groupe et les hauts faits n’existeraient tout simplement pas. Après des semaines de recherche et développement, d’expérimentation et de prototypes, nous étions certains de pouvoir donner vie au contenu classique de World of Warcraft sans sacrifier les heures de développement apportées au jeu ces 13 dernières années.

Si nos premiers essais nous ont permis de définir l’expérience que nous souhaitions apporter à nos joueurs, c’est en réalisant le deuxième prototype que nous avons déterminé comment concrétiser cette expérience. En partant d’une architecture moderne, bénéficiant des dernières améliorations de stabilité et de sécurité, nous avons pu identifier le travail restant pour restaurer l’expérience classique authentique. La moindre différence de fonctionnement entre la version de développement et l’expérience originale peut être cataloguée et corrigée, tandis que nous bâtissons sur des fondations stables et solides.


Pour aller plus loin

Alors, comment l’équipe s’y prend-t-elle pour recréer l’expérience classique avec la technologie moderne ? Commençons par catégoriser les différents types de données que contient World of Warcraft :

  • Bases de données : les informations qu’elles contiennent sont presque toujours représentées par des nombres. La quantité de points de vie d’une créature, la force procurée par un objet, le moment ou le lieu où apparaissent certaines créatures sont autant d’exemples de valeurs stockées dans nos bases de données. Nous pouvons également y stocker les règles qui régissent les relations et les interactions entre les différentes données.
  • Données de fichiers : il s’agit souvent de données très denses, comme des modèles 3D, des textures, des animations ou des terrains. Notre interface est construite à partir de fichiers XML et LUA. La plupart des fichiers graphiques n’utilisent pas le format de sortie des logiciels de création. Nous optimisons les fichiers graphiques d’origine pour faciliter leur lecture et leur gestion par le jeu.
  • Scripts LUA : certaines fonctions sont gérées par des scripts LUA écrits par nos concepteurs pour définir aisément des comportements spécifiques côté serveur ne nécessitant pas de connaissances approfondies en ingénierie.

L’évolution de l’ingénierie

L’un des défis que nous devons relever réside dans le format des données classiques : celles-ci utilisent le format d’origine, utilisé au lancement de World of Warcraft, mais celui-ci a considérablement changé avec le temps. Il nous reste encore beaucoup de travail pour rendre le client de jeu moderne compatible avec les données classiques.

Par exemple, à l’origine, les sorts ne pouvaient effectuer que trois actions sur la cible. Voilà à quoi ressemblaient nos tableaux :

ID

Nom

Effet 1

Effet 2

Effet 3

Aura 1

Aura 2

Dégâts d’effet 1

Dégâts d’aura 1

Dégâts d’aura 2

1

Boule de feu

Inflige des dégâts

Applique une aura

Rien

Rien

Inflige des dégâts périodiques

30

Rien

3

2

Eclair de givre

Inflige des dégâts

Applique une aura

Rien

Rien

Ralentissement

20

Rien

Rien

Comme vous pouvez le voir, de nombreuses cellules indiquent « Rien ». Au fil des années, nous avons amélioré la conception de nos données et normalisé la plus grande partie de nos bases de données. Aujourd’hui, ces mêmes données seraient séparées comme suit :

Nom du tableau : sorts

ID

Nom

1

Boule de feu

2

Eclair de givre

Nom du tableau : effets des sorts

ID

ID du sort

Effet

Dégâts

1

1

Dégâts

30

2

2

Dégâts

25

Nom du tableau : aura des sorts

ID

ID du sort

Aura

Dégâts

1

1

Inflige des dégâts périodiques

3

2

2

Ralentissement

Rien

Ce format a l’avantage de gâcher beaucoup moins d’espace et de ne plus limiter les sorts à trois effets. Toutefois, avant d’utiliser des bases de données, nous allons devoir convertir les anciennes données dans ce nouveau format. Cela ne se limite pas au sort : presque tous les systèmes du jeu (objets, créatures, personnages-joueurs, points d’apparition, IA, etc.) ont vu la structure de leurs bases de données évoluer au fil des années.


Et après ?

À terme, tout ce travail nous permettra de recréer une expérience classique authentique sur une plateforme bien plus stable et optimisée, ce qui contribuera à éviter les problèmes de latence et de stabilité. Cette modernisation apportera également des améliorations comme des systèmes anti-triche et anti-robots, l’intégration de Blizzard Battle.net et de l’assistance clientèle, et toute autre fonctionnalité pertinente pour vous offrir une expérience optimale.

Nous avons hâte de relever les défis à venir et de partager notre passion pour le jeu classique ; chaque vérification de code, chaque conversion de donnée nous rapproche de World of Warcraft Classic pour vous offrir l’expérience authentique que vous attendez tant (tout comme nous). Merci de nous accompagner dans cette aventure.

Chargement des commentaires...

Une erreur est survenue lors du chargement des commentaires.