Les exploits : un véritable exploit

Laissez-moi me présenter : je suis Ben Elliott, un ingénieur logiciel de l'équipe chargée des fonctionnalités de MTG Arena. Si vous êtes comme moi, vous êtes le genre de joueur à se lasser de faire tout le temps la même chose. Peut-être préférez-vous alterner les formats. Peut-être variez-vous les plaisirs en participant à des événements en rotation. Peut-être construisez-vous un deck dans l'unique but de tourmenter Sparky de manière de plus en plus créative.
En d'autres termes, peut-être êtes-vous le type de joueur qui aime avoir plusieurs objectifs.
MTG Arena aspire depuis longtemps à encourager l'exploration, et plusieurs des systèmes du jeu ont été conçus précisément dans cette optique. L'expérience dédiée aux nouveaux joueurs en est un exemple frappant. MTG Arena essaie de faciliter vos premiers pas dans le mastodonte que représente Magic: The Gathering : une couleur, un deck à la fois, jusqu'à ce que vous vous sentiez assez à l'aise pour affronter d'autres joueurs humains. À ce stade, après avoir acquis un peu plus d'expérience, nous vous conseillons de poursuivre votre exploration avec les quêtes quotidiennes. Il est peu probable que vous puissiez terminer les quêtes quotidiennes avec le sempiternel même deck chaque jour (mais encore une fois, si vous êtes comme moi, vous pourriez vous piquer au jeu de créer un deck unique capable à lui seul d'accomplir la majorité des quêtes quotidiennes). Par conséquent, vous vous retrouvez à envisager des techniques, des stratégies et des cartes auxquelles vous n'auriez jamais prêté attention sinon.
Bien entendu, l'expérience dédiée aux nouveaux joueurs et les quêtes quotidiennes ont leurs limites (et vous voyez sûrement où je veux en venir). Depuis les débuts de MTG Arena, les joueurs réclament un système d'exploits avec un grand E. Une manière d'explorer, d'essayer de nouvelles choses, de faire preuve de créativité pour, au final, profiter d'un joli badge scintillant qui témoigne de son haut fait. Et il se trouve que les concepteurs et développeurs de MTG Arena se penchent depuis presque aussi longtemps sur la question des exploits. Ils ont réfléchi aux avantages et aux écueils, aux défis techniques et, bien entendu, ils ont envisagé de glorieux exploits uniques à la difficulté relevée. Et avec la sortie d'Aetherdrift, nous sommes ravis d'annoncer que la fonctionnalité des exploits est enfin lancée !
Mais le chemin pour en arriver là n'a pas été de tout repos.
Nous nous sommes dit que vous aimeriez jeter un œil aux coulisses du développement. Alors sans plus attendre, voici toute l'histoire !
Travail préparatoire et prototypes
Même si nous discutions des exploits depuis une éternité, l'équipe des fonctionnalités de MTG Arena n'a commencé à travailler dessus qu'à partir du printemps 2024.
Notre équipe a débuté par une phase de conception initiale, où elle a à la fois établi les objectifs de haut niveau d'une telle fonctionnalité et créé une liste initiale des exploits que nous voulions (pour l'anecdote, la liste d'origine en comportait 126). Certaines facettes clés du projet se sont assez vite dégagées :
- L'engagement : les exploits devaient être amusants à obtenir et motiver les joueurs dans leur aventure Magic.
- La diversité : il devait y avoir des exploits pour tous types de joueurs, mettant en avant tout ce que MTG Arena propose.
- La flexibilité : l'équipe voulait être en mesure d'ajouter, d'ajuster et de retirer certains exploits sans nuire aux autres, ainsi qu'assurer un contrôle complet aux concepteurs chargés de les créer.
Nos concepteurs ont accordé un intérêt particulier à l'échelle de la fonctionnalité ; en ayant les yeux plus gros que le ventre, ne risquions-nous pas de réduire nos chances de réaliser un tel exploit ?
En parallèle, nous avons aussi commencé à prototyper différentes façons de présenter les exploits aux joueurs. Nous avons fait une maquette de l'interface, discuté des compromis, et expérimenté en utilisant notre client du jeu de manières jusqu'à présent inédites.
Un exemple parlant : des notifications doivent s'afficher à chaque fois que vous obtenez un exploit. Nous devions nous assurer qu'elles puissent apparaître sur n'importe quel écran sans que ce soit distrayant, tout en permettant au joueur d'être mis au courant quand il accomplit quelque chose de grandiose. Les concepteurs UX ont prototypé plusieurs apparences pour ces notifications, mais surtout, ils ont dû décider de l'endroit où elles apparaîtraient sur l'écran (Nous nous sommes accordés sur le coin supérieur droit de l'écran, en évitant un temps d'animation trop long).

C'est pendant cette étape de prototypage que nous avons décidé d'organiser les exploits en groupes, pour qu'ils soient thématiques et faciles à trouver dans une liste en expansion permanente. Il nous a donc aussi fallu réfléchir à la façon de les organiser. L'apparence de ces groupes a évolué à plusieurs reprises au fil des prototypes et du développement, chaque itération apportant une amélioration sur nos tentatives précédentes. C'est lors de ce processus itératif que nous avons évoqué l'affichage d'un exploit « favori » en cours dans le suivi des quêtes quotidiennes de la page d'accueil, une idée que nous avons jugée pratique. Même si cet ajout n'était pas prévu initialement, il démontre l'un des avantages à enchaîner plusieurs phases de prototypage collaboratif. Nous avons pu découvrir des choses que nous ne savions pas que nous voulions, et nous avons dû trouver des moyens d'implémenter de nouvelles fonctionnalités au sein d'une fonctionnalité déjà nouvelle sans avoir les yeux plus gros que le ventre.

Les ingénieurs ont aussi commencé à réfléchir à des manières fluides d'incorporer les exploits à nos systèmes existants. Nous avons réutilisé certaines des techniques développées lors de l'amélioration de l'expérience dédiée aux nouveaux joueurs afin de disposer d'un moyen uniforme de créer les exploits. Nous avons également amélioré la prise en charge afin de satisfaire certaines des nouvelles exigences qu'impliquaient certains exploits. Nous tenions aussi à nous assurer que la fonctionnalité marche à grande échelle, une restriction souvent oubliée pour les jeux comme MTG Arena, surtout quand on a l'habitude de travailler sur des projets plus petits et/ou indépendants. Dans un jeu comptant des milliers et des milliers de joueurs, disponible sur toute une variété d'appareils et de systèmes d'exploitation dans le monde entier, quel impact aurait le lancement des exploits sur les performances ? Il s'agissait d'un des points prioritaires dont nous avons tenu compte dès le début afin de minimiser le plus possible l'impact sur les serveurs et les performances du jeu.
Enfin, même si c'était l'équipe chargée des fonctionnalités qui était principalement impliquée dans la mise au point des exploits, une collaboration importante entre les équipes s'imposait. La plupart des exploits ont lieu lors de parties de Magic, et nous tenions à écrire des exploits qui s'intéressent autant aux règles de Magic que les cartes elles-mêmes.
Nous avons commencé à concevoir l'architecture de ces exploits avec notre équipe des extensions, en partant du principe que les exploits liés au jeu auraient des exigences techniques fondamentalement uniques par rapport aux autres exploits non liés aux matchs. Nous avons aussi collaboré avec notre équipe chargée du contenu afin de nous assurer que tous les nouveaux exploits créés seraient viables, y compris le nouveau type de cosmétiques qui accompagne la fonctionnalité (à savoir les titres !). Ceux qui ont déjà créé un système d'exploits savent qu'ils impliquent toutes les facettes d'un jeu. Pour MTG Arena, cela signifie tout : les interactions lors d'une partie, l'ouverture de boosters, la construction de decks, les parties dans des formats différents, et la liste est longue.
Les logiciels les plus faciles à créer et entretenir sont ceux dont les éléments complexes n'ont pas à se soucier de ce que font les autres éléments complexes. Une fonctionnalité comme les exploits rit au nez de cet idéal ; elle se soucie de tout.
Cette phase nous a occupés jusqu'à l'été 2024, à la fin duquel nous disposions de plusieurs pièces du puzzle qui fonctionnaient indépendamment. Nous avions une page de exploits rudimentaire (qui employait toutefois des paramètres fictifs en lieu et place de vraies données des exploits), certains exploits étaient implémentés sur le serveur (mais sans pour autant être prêts à afficher sur le client), et nous avions de nombreux petits travaux en cours et éléments intermédiaires qui aideraient à unir le tout (comme une page pour afficher et sélectionner des titres).
Une odyssée estivale
Au début de l'été, une grande partie de l'équipe chargée des fonctionnalités a cessé de travailler sur les exploits.
Une petite explication s'impose (ou pas, selon à quel point vous vous souvenez de l'année passée) : 2024 était une année unique pour MTG Arena, marquée par l'arrivée d'extensions complexes et de haute volée comme Horizons du Modern 3. Nous disposions d'occasions uniques de mettre au point des fonctionnalités pour accompagner ce genre d'extensions. En même temps, nous avons observé que le travail sur certains exploits bloquait quant à la façon de développer de façon efficace et viable des exploits en match (un casse-tête bien plus difficile à résoudre que celui des exploits hors match). Notre solution a été la suivante :
- Charger une partie de l'équipe de s'occuper des éléments les plus délicats des exploits de match, et
- Demander au reste de l'équipe chargée des fonctionnalités de passer du temps sur les fonctionnalités non liées aux exploits.
Les membres de l'équipe des fonctionnalités qui travaillaient sur autre chose que les exploits sont parvenus à mettre au point des fonctionnalités intéressantes. Nous avons ajouté la possibilité de vendre des decks préconstruits dans la Boutique, et un certain bazar (anciennement la Tanière d'horizon de la grenouille psychique) a fait ses débuts. À tout moment, environ la moitié de l'équipe chargée des fonctionnalités travaille sur de petites fonctionnalités, des améliorations de la qualité de vie et des corrections de bugs. Rassurez-vous, cette partie de l'équipe avait de quoi faire !
Pendant ce temps, l'implémentation des exploits en match commençait vraiment à prendre forme. L'équipe a choisi d'implémenter les exploits en match dans la langue des capacités de Magic : The Gathering. Lorsqu'un joueur arrive dans une partie, nous vérifions quels exploits pourraient être concernés par cette partie, et nous indiquons au moteur des règles de charger cet exploit en tant qu'élément semblable à une capacité (remarque : il ne s'agit pas de véritables capacités afin d'éviter que les exploits eux-mêmes interagissent au cours d'un match avec d'autres effets qui s'intéressent aux capacités... Oui, c'est quelque chose dont nous avons dû tenir compte en implémentant le système de cette façon). Lorsque des circonstances déclenchent un exploit ou la progression d'un exploit, le jeu l'enregistre. Le signal d'exploit actualise la progression des exploits des joueurs de façon semblable aux statistiques pour les quêtes quotidiennes. Afin que les concepteurs puissent réutiliser les mêmes signaux d'exploit et créer des exploits plus facilement, nous avons aussi ajouté la possibilité pour les déclenchements d'exploits de recevoir des paramètres : des parties du texte de règle que nous pouvons ajouter ou retirer en cas de besoin pour créer des modèles de déclenchement.
Prenons par exemple l'exploit « Croissance et force », qui nécessite de « Lancer 250 sorts d'elfe ou d'hydre pendant des parties ». Voici le texte de règles du déclenchement de cet exploit :
À chaque fois que vous lancez un sort {Paramètre_Sous-type 1} ou un sort {Paramètre_Sous-type 2}, {ActualiserExploit}.
Pour notre exemple, nous remplaçons les Paramètres_Sous-type N par les sous-types elfe et hydre, respectivement. Ces super nouveaux mots-clés, Paramètre_Sous-type N et ActualiserExploit ne font pas vraiment partie du langage de Magic: The Gathering. Mais le principal, c'est qu'ils existent sous forme d'éléments que le moteur du jeu comprend. Le moteur du jeu peut désormais charger ces déclenchements d'exploits correctement et les vérifier en même temps que tous les autres déclenchements et états de jeu habituels. Cette façon de procéder offre en prime un avantage : le moteur des règles prend aussi en compte les cartes qui correspondant à ces paramètres de manières spécifiques aux règles. Par exemple, un changelin peut faire progresser l'exploit « Croissance et force » parce qu'il a tous les types de créature (elfe et hydre inclus).
À la fin de l'été, la technologie des exploits en match avait bien progressé, Horizons du Modern 3 était sorti et nous étions prêts à reprendre avec entrain notre travail sur les exploits.
Dernière ligne droite
Pendant la fin de l'été et l'automne, nous nous sommes consacrés à l'intégration combinée de nos éléments disparates de la fonctionnalité, à l'implémentation des exploits restants et au peaufinage de l'IU/UX de la fonctionnalité. Nous avons répartis nos exploits en deux « ensembles » : un pour les exploits de base plutôt généraux et un autre pour les exploits liés à chacune des couleurs de Magic. Nous avons commencé à finaliser les visuels, les icônes et le texte pour nos nombreux exploits. Nous avons vérifié que chaque écran fonctionnait pour les appareils mobiles et les différentes configurations. Nous avons ajouté des outils d'assurance qualité pour faciliter le test d'exploits spécifiques. À l'époque, nous espérions que la fonctionnalité serait prête pour le lancement de Fondations de Magic: The Gathering et, en nous basant purement sur la quantité de travail restante, cet objectif nous semblait atteignable.
Même si les ingénieurs étaient raisonnablement optimistes, nous devions savoir si la fonctionnalité marcherait correctement avec une importante quantité simultanée de joueurs. Alors, nous avons fait une simulation. Nous avons créé un groupe de « joueurs » automatisés qui agissaient à peu près comme de vrais joueurs, nous avons activé les exploits, et nous avons observé ce qui se déroulait. Heureusement, tout s'est très bien passé ! Les serveurs ont tenu comme prévu.
Pourtant, au fil du temps, en poursuivant le développement et les tests, nous avons senti qu'il manquait quelque chose. Nous trouvions que la fonctionnalité tendait plus vers le « correct » que vers l'« excellent ». La majeure partie des éléments de la fonctionnalité ne nécessitaient pas un simple peaufinage. Il leur en fallait un de toute urgence. Nous refusions de renoncer à certains des exploits les plus créatifs que nous avions mis au point sous prétexte qu'ils risquaient de pâtir des imperfections restantes du système. Nous refusions de lancer la fonctionnalité sans son option précédemment évoquée de suivi d'exploit favori dans le suivi de quêtes ! Cette idée était géniale ! Et nous avons continué à trouver des bugs qui, sans être rédhibitoires pour autant, nous faisaient un peu tiquer. Nous tenions à nous assurer que l'assurance qualité disposerait d'assez de temps pour tout tester ! Et parmi les valeurs importantes que défend l'équipe MTG Arena, il y en a une qui lui tient à cœur : pas de crunch.
Alors que l'échéance de Fondations de Magic: The Gathering approchait, nous devions prendre une décision. Au final, même si nous nous accordions sur le fait que nous pouvions sortir la fonctionnalité avec Fondations de Magic: The Gathering, nous avons décidé de lui accorder tout l'amour qu'elle méritait, ce qui impliquait de la sortir plus tard qu'initialement prévu. Étant donné l'approche des fêtes de fin d'année et le calendrier de sorties, nous avons décalé la mise en place de la fonctionnalité pour une autre sortie majeure : Aetherdrift. Heureusement, nous avions conçu la fonctionnalité, comme toutes nos autres fonctionnalités, de façon à ce qu'elle soit facilement adaptable à une sortie ultérieure (ce qui est toujours judicieux dans le secteur des logiciels), et nous avons effectué les incantations requises pour procéder au décalage.
Les semaines suivantes, nous avons été confortés dans notre choix. Nous avons continué de déceler des bugs, des failles et des problèmes d'expérience utilisateur dans la fonctionnalité. L'implémentation anticipée des exploits aurait pu marcher d'un point de vue technique, mais cette fonctionnalité n'aurait pas été à la hauteur de nos standards ni de ceux de nos joueurs. Ce délai supplémentaire nous a permis d'éliminer ces bugs et d'apporter pas mal d'ajustements indispensables. Les exploits eux-mêmes ont changé dans le client pour plus de lisibilité et ont même eu droit à de super animations de retournement. Nous avons modifié les notifications d'exploits pour leur donner plus d'allure. La fonctionnalité ne s'est pas simplement bonifiée, elle s'est perfectionnée, comme l'avait prévu l'équipe.

Exploit obtenu !
La version des exploit qui a fait son apparition avec Aetherdrift compte 63 exploits « de base » et 50 exploits associés à une couleur de Magic (dix pour chaque couleur), soit un total de 113. Certes, c'est un peu moins que notre liste initiale de 126, mais l'équipe a retiré quelques exploits en cours de développement parce que nous craignions qu'ils encouragent des comportements problématiques de la part des joueurs, ou parce qu'ils n'étaient simplement pas amusants à obtenir, mais pas parce que nous n'étions pas en mesure de les faire fonctionner ! D'autres ont été révisés par rapport à leur forme conceptuelle, mais presque tous les exploits initialement prévus se retrouvent dans la fonctionnalité finalisée. Nous sommes ravis de la quantité et de la variété des exploits. Ils offrent toute une plage de difficultés, d'équilibres de couleurs et de styles de jeu.
Nous avons aussi inclus des tonnes de récompenses pour les exploits : de nouveaux avatars, des émotes, des protège-cartes et même le nouveau cosmétique, les titres, une nouvelle façon de faire savoir à vos adversaires qu'il ne faut pas vous prendre à la légère.

Nous sommes très fiers du travail accompli pour vous présenter ces exploits. Comme pour toutes nos réalisations, l'équipe s'est efforcée de travailler de façon responsable, viable et consciencieuse. Il ne s'agit pas de banales listes à cocher ; ce sont des exploits artisanaux, faits main, et avec amour !
Comme toujours, l'équipe MTG Arena surveillera les retours de la communauté concernant la fonctionnalité et gommera les imperfections restantes à mesure qu'elle en trouvera. N'hésitez pas à nous contacter si vous avez des remarques, nous sommes tout ouïe !
Merci de votre attention, et bonne chasse !