WildStar Wednesday: UI et AddOns
Cette semaine WildStar Wednesday nous annonce une très grande nouvelle puisqu'il est prévu que les joueurs puissent utiliser des addons en jeu.
Alors avant de commencer, certains d'entre vous se demandent peut-être ce qu'est une "UI" et ce qu'on entend par "AddOn".
L'UI, User Interface, c'est en français l'Interface Utilisateur, c'est à dire, tous ces éléments qui se situent entre le joueur et le jeu et avec lesquels on peut interagir. Et les AddOns dans tout ça, ce sont ces scripts qui permettent de la personnaliser.
En général, le sujet des addons dans les jeux est assez polémique puisque dans certains cas, ça a pu conduire à des abus, cependant, il est essentiel quand on parle d'addon dans un jeu de préciser trois choses:
- Ce ne sont pas des exécutables et il ne faut donc pas les confondre avec des programmes tiers.
- Il ne faut pas confondre macro et addon. Mais comme tout script, un addon peut potentiellement générer des macros dans certains cas.
- Ils sont soumis à une "API", Application Programm Interface, ce qui détermine des limites dans l'utilisation de certains codes. De ce fait, contrairement à une idée reçue, les addons ne peuvent pas étendre leur action au delà des limites qui sont fixées par cet API.
Jon Wiesman, Lead Client Engineer chez Carbine Studios nous promet que moduler l'Interface de WildStar sera particulièrement accessible pour les joueurs. En attendant, il a tenu à partager avec nous ses motivations.
Depuis 13 ans dans l'industrie du jeu vidéo, Jon Wiesman a rejoint les studios Carbine en 2007 pour travailler sur le moteur d'interface Apollo. Une bonne nouvelle pour ceux qui aiment mettre les mains dans le cambouis puisqu'Apollo fonctionne sur des scripts LUA et XML.
LUA, c'est un langage très simple à prendre en main, enfin, n'exagérons pas non plus, il est très simple en comparaison avec d'autres langages, mais demande quand même un minimum de connaissances. Nous vous proposons, à la fin de cet article de consulter un exemple de script en .lua.
Comme bon nombre de programmateurs, Jon Wiesman prend un certain plaisir à mettre en place des programmes, or il y a tout juste quelques semaines il partageait un outil pour générer des diagrammes de recoupement sur des sondages qu'il venait de mettre au point. Et comme il lui avait été demandé s'il voulait bien faire un installeur pour ce programme, il se remit au travail.
Cette histoire, sous son allure anodine, c'est un caillou qui vient de plonger dans un petit étang calme. En effet, pour mettre en place cet installeur, notre programmateur a tenu à découvrir un langage fortement orienté objet nommé Ruby. Et c'est après avoir consulté les tutoriaux de ce langage que Jon Wiesman a pris conscience de la difficulté à de trouver des informations claires et précises pour sa prise en main.
J'ai passé environ 3, 4 heures à potasser le tutorial sans jamais voir une seule ligne de code. J'ai dû télécharger la source d'un logiciel de contrôle d'un site, puis un éditeur d'un autre site. J'ai eu à enregistrer les noms d'utilisateur et mots de passe sur au moins trois sites différents. Ensuite, j'ai dû mettre en place un environnement de ligne de commande avec certaines variables. C'était fastidieux et frustrant.
Écoutez, j’apprécie la programmation. Non, pardon, Je suis FAN de la programmation. Je suis un nerd. J'aime apprendre de nouveaux langages. J'aime être confronté à un problème et concevoir un algorithme pour le résoudre. J'aime les tenants et les aboutissants de la création de formes de développement et leur gestion des événements pour amener des réponses. Ce dont je ne suis pas fan, c'est de passer des heures à bricoler des paramètres de configuration et de commutation entre les éditeurs de texte et les lignes d'invite de commande avec des portails de publication sur le Web afin d'accomplir moins que l’application lambda "Hello Word" que j'ai écrit en BASIC sur un Commodore 64 quand j'avais 12 ans. (Oui, je suis vieux.)
Et une ondulation de l'eau est née, et selon une vieille croyance, c'est comme ça que des vagues naissent. Car cette réflexion sur les outils de prise en main d'un langage de programmation, elle se rapporte exactement de la même façon sur l'apprentissage des scripts dans le cadre des addons sur des jeux vidéo.
Croyez-moi, quand on a passé des heures entières à modifier des addons dans un jeu, et qu'on a eu la folie de croire qu'on pouvait concevoir soi-même un addon en étant novice en programmation, on ne peut qu'être sensible à cette prise de conscience!
Or, le Lead Client Engineer de Carbine Studios l'a observé, seule une très petite partie des joueurs qui s'y sont essayés ont réussi à passer ce cap et à pondre quelque chose de véritablement fonctionnel. Et c'est la raison pour laquelle, Jon Wiesman fait un point d'honneur de mettre à la disposition des joueurs les outils et les documentations nécessaires pour leur offrir une réelle accessibilité.
Dans les mois à venir, nous en saurons plus sur la façon dont les joueurs pourront s'impliquer dans la programmation des addons sur Wildstar, et ça, c'est Troy Hewitt qui l'affirme. Les joueurs qui savent ce que c'est que de se plonger dans les scripts de leurs addons le savent, nous sommes impatients d'en savoir plus!
LUA, mais encore?
Ce langage de script se démarque surtout par son adaptabilité avec d'autres langages, c'est d'ailleurs pour être "embarqué" au sein d'autres applications qu'il a été conçu. Sur ce site vous pourrez en savoir davantage.
Très popularisé dans le domaine du jeu vidéo, on le retrouve entre autres dans World of Warcraft, Sim City 4 ou Garry's Mod (pour Half Life 2).
Mais passons à du concret afin de voir à quel point ce langage est simple à prendre en main quand on en connaît quelques notions. Dans cet exemple, voici en mode simplifié comment coder une "UF" (Unit Frame, soit en français, la fenêtre d'unité) correspondant à un personnage qu'on cible ((5) sur l'illustration).
On annonce à l'application (le jeu) qu'au chargement un élément associé à ce qu'on cible existe mais qu'il ne doit pas s'afficher:
self:RegisterEvent("UNIT_TARGET")
self:Hide()
Puis on lui explique ce qu'on attend lorsqu'on cible un personnage:
local _, class = UnitClass("Target");
if class == "ESPER" then
self.bg:SetVertexColor(0.00, 1, 1, self.bg:GetAlpha())
elseif class == "SPELLSINGER" then
self.bg:SetVertexColor(0.92, 0.22, 0.46, self.bg:GetAlpha())end
Avec ce code, si on cible un personnage de la classe Esper, l'UF sera bleue alors que si on cible un Spellsinger, elle sera rose.
Cet exemple est issu du wiki sur l'addon KgPanels dans la section JOL de World Of Warcraft.
*: Vous pouvez aussi consulter l'article sur WildStar Central à propos de l'UI de WildStar dont est tirée l'image dans cette actualité. Nous précisons cependant que cette interface est susceptible d'avoir évolué depuis la présentation de la démo du jeu.
Sur le même sujet :
-
30 octobre 2018
-
26 septembre 2018
-
21 septembre 2018
-
14 septembre 2018
-
6 septembre 2018
Réactions (14)
Afficher sur le forumPas de compte JeuxOnLine ?
Créer un compte