Devblog : Point sur les Modules

Annoncés en même temps que la refonte graphique de la version 2.0, les modules ont longtemps fait rêver les joueurs. Ces ajouts, qu'ils soient officiels ou pas, permettent de personnaliser son client de jeu selon ses envies.

C'est donc une grande nouvelle d'apprendre qu'ils vont bientôt entrer en phase de Bêta-test fermé, et que les codeurs vont pouvoir se lancer dans l'aventure des modules Dofus ! Changer les couleurs de l'interface ? Introduire des données de combat avancées en temps réel ? Beaucoup de choses seront permises, la seule limitation sera la créativité des programmeurs ! Et les CGU, bien entendu. Rendez-vous donc en compagnie de Simsoft pour un article très attendu du Devblog !

Lorsque nous avons conçu DOFUS 2.0, nous avons voulu laisser la possibilité aux joueurs de créer leurs propres interfaces et ainsi d'ajouter de nouvelles fonctionnalités au jeu. Nous avions abordé le sujet avant même la sortie de DOFUS 2.0 dans un précédent billet mais depuis lors, nous n'avons pas réellement donné de nouvelle de l'évolution de ce système.

Pour rappel, DOFUS se base sur un système de Modules externes pour l'affichage et la gestion de toutes les interfaces du jeu. Ce système de Modules est donc déjà utilisé depuis longtemps en interne et a fait ses preuves.

On veut des exemples !

Voici une liste de Modules qui pourraient être créés par des joueurs :

  • Afficher des informations supplémentaires en combat :
    • Estimation des dégâts moyens, maxi ou mini pour chaque sort/arme en fonction de ses propres caractéristiques et des résistances de la cible ;
    • Estimation des cooldowns ennemis
    • Estimation des résistances fixes, etc.
  • Gestion d'une liste de courses pour la réalisation d'une recette.
  • Statistiques avancées (meilleur DPS du combat, kama/XP gagné par minute, etc.)

Pourquoi attendre pour sortir ce système ?

La première raison est que les joueurs ne peuvent pas accorder la même confiance à un Module développé par Ankama et un Module développé par un joueur. En effet qu'est-ce qui garantit qu'un Module ne va pas supprimer l'ensemble de votre inventaire ou encore tenter d'accéder à des fichiers de votre ordinateur ? Nous nous devions de trouver des solutions adaptées aux nombreux problèmes de sécurité que pose l'exécution de code tiers au sein du client officiel.

La deuxième raison à cette attente est que nous n'avions pas la possibilité de mettre à disposition de façon simple une documentation détaillée des API.

Sécurité

L'un des points bloquants est la distribution des Modules. Laisser les joueurs créer leurs propres sites de référencement et de distribution de Modules encouragerait probablement certaines personnes peu scrupuleuses à créer des sites de Phishing, par exemple. D'autre part, la multiplication des plateformes de référencement de Modules n'améliore pas l'accessibilité de ces derniers pour les joueurs.

L'installation des Modules se fera donc directement en jeu via une interface dédiée. Les Modules seront ainsi hébergés par Ankama et il ne sera pas possible d'installer des Modules autrement que depuis notre plateforme.

Au moment où vous activez le Module, DOFUS vous expliquera quelles interactions le Module utilise, un peu comme lorsque vous installez une application sur Android. Vous saurez ainsi si le Module peut supprimer un objet, envoyer un message privé, etc.

Pour éviter la création de bot via notre système, certaines actions ne peuvent pas être automatisées et nécessitent une intervention du joueur (clique sur un bouton ou utilisation d'un raccourci clavier) pour pouvoir être utilisées : c'est le cas par exemple pour lancer un sort ou pour valider un échange.

Pour une meilleure maîtrise, nous avons également mis en place une demande de confirmation avant l'exécution de certaines actions irréversibles (suppression d'un objet, validation d'un échange, passage de tour en combat, etc.). La confirmation pourra être mise en mémoire si le joueur le désire en cochant simplement une case dans la fenêtre de confirmation. Cas particulier : on vous demandera toujours une confirmation dans le cas de la suppression d'un objet.

Enfin, dernier point concernant la sécurité : l'accès au réseau et aux fichiers locaux. Nous avons fait le choix d'interdire les interactions avec internet et le réseau. Il aurait été très intéressant de pouvoir communiquer avec un serveur web pour récupérer des informations ou en envoyer (mise à jour automatique des données du Modules par exemple, datamining, ...) mais cela poserait le problème de transmission d'informations personnelles sans l'accord du joueur. Cependant, les Modules auront la possibilité de communiquer avec les applications locales (serveur web local via requête HTTP ou via socket) qui auront été prévues pour. Il sera donc théoriquement possible de communiquer avec internet mais uniquement via une application tierce installée consciemment par le joueur. Au moment de l'installation du Module, il sera également précisé si le Module peut ou pas communiquer avec les applications locales.

Dans le même ordre il n'est pas possible de lire un fichier en dehors du répertoire de DOFUS.

Documentation et outils

Nous fournissons aux développeurs de Modules un SDK comprenant :

  • Une documentation listant l'ensemble des API disponibles
  • Un Module d'exemple avec son code source
  • Un tutorial pour créer un Module de A à Z (se basant sur le Module d'exemple)
  • Un moyen via FlashDevelop de créer en un clic un projet de type Module DOFUS et de pouvoir le compiler très simplement.

Mécépourki ?

La création des Modules, ce n'est pas pour les Iops ! Créer un Module nécessite des notions de programmation en ActionScript 3. Cependant toute personne ayant des bases en JavaScript ou tout autre langage orienté objet devrait pouvoir retrouver ses marques rapidement. Nous n'apporterons aucune documentation sur le langage en lui-même : de nombreux sites communautaires proposent des tutoriaux et des documentations sur le sujet.

Mécépoukan ?

Comme l'a laissé entendre Sylfaen via Twitter hier, nous allons lancer un bêta-test réservé à un nombre restreint de développeurs dans les jours à venir. Cependant nous n'annonçons aucune date de sortie d'une bêta publique ou version finale. Nous prévoyons de longs mois de bêta-test, le temps de peaufiner notre système, de déceler les failles et d'améliorer l'accessibilité et la documentation.

Comment participer ?

Dans un premier temps, le bêta-test fermé est réservé aux développeurs. Mais toi qui lis ces lignes, tu fais peut-être partie de cette espèce unique que sont les développeurs ActionScript ?

Le code suivant indique un email auquel vous pouvez envoyer une demande de participation, en indiquant vos motivations et au moins une idée de Module que vous aimeriez concevoir. Merci d'indiquer également votre pseudo Ankama (celui du Forum, /whois...).

var key : String = "Je veux participer";
var data : Array = "40,47,17,65,72,77,26,18,16,28,69,85,17,10,16,85,22,10,19,28,25,19,31,19,92,17,29,31".split(",");
var baKey : ByteArray = new ByteArray;
baKey.writeUTFBytes(key);
var decodedBa : ByteArray = new ByteArray;
for(var i : uint = 0; i < data.length; ++i)
{
  baKey.position = (baKey.length - 1) % i;
  decodedBa.writeByte(int(data[i]) ^ baKey.readByte());
}

decodedBa.position = 0;
var email : String = decodedBa.readUTFBytes(decodedBa.bytesAvailable);
trace(email);

Note : Si vous réussissez à trouver l'email, merci de le garder pour vous. Tout message le dévoilant sur le forum officiel sera modéré.

Source : http://devblog.dofus.com/fr/billets/461259-point-modules.html

Réactions (646)

Afficher sur le forum