FR EN ES
Naviguer dans les forums 
Trackers Ankama

DOFUS Touch et le développement

Par [Ankama]DOFUS-Touch 03 Juillet 2020 - 14:00:00

On vous a souvent dit que DOFUS Touch et DOFUS n'avaient plus grand chose en commun en matière de développement. Aujourd'hui, on vous explique tout cela un peu plus en détails !

Développement de DOFUS Touch
Cet article sera un tantinet plus technique qu'à l'accoutumée, mais devrait vous permettre, nous l'espérons, d'obtenir des réponses aux interrogations régulières autour du projet DOFUS Touch ! Nous essaierons cependant de vulgariser un maximum, pour que cela reste accessible à tous.
 

Serveur et client


Avant de commencer, il est nécessaire de saisir les deux aspects suivants, dont vous avez peut-être déjà entendu parler, au détour de certaines conversations : le développement serveur et le développement client.
 

Le développement serveur


L'environnement dit "serveur" permet de recevoir et d'envoyer les informations à l'appareil du joueur. Ses missions sont, entre autres, de vérifier la validité des actions et de gérer leurs résultats. Le serveur est aussi en charge de sauvegarder les données du jeu.
 

Le développement client


L'environnement "client" concerne tout ce que le joueur peut constater "à l’œil", comme les interfaces du jeu, les animations des monstres, etc. Ces deux aspects du développement sont liés et pour faire fonctionner DOFUS Touch, l'un et l’autre sont intimement liés. Pour faire simple : le client envoie des requêtes au serveur qui y répond.
 

Exemple concret


Roxor lance le sort Libération : le client envoie l'information au serveur, le serveur vérifie que le joueur a suffisamment de PA, qu'il est bien dans un combat et bien d'autres paramètres. Il exécute ensuite le sort, calcule qui est poussé, qui reçoit des dommages de poussée, etc. Il retourne le résultat à afficher au client (le fait que le joueur lance un sort, les dégâts, les nouveaux placements, etc.) aux joueurs présents dans le combat ainsi qu'aux spectateurs.
 

Le portage de DOFUS vers DOFUS Touch


Ce n’est un secret pour personne, la version PC DOFUS (la version 2.14 plus précisément) a servi de base pour produire la version mobile, DOFUS Touch. Ce ne fut pas une mince affaire, puisque contrairement à ce que l'on peut entendre parfois, il ne s'agit pas ici d'un simple copier/coller.

DOFUS a été développé en Flash, tandis que DOFUS Touch a dû être adapté pour un format mobile, par l'intermédiaire d'HTML5/CSS, de Javascript et de WebGL (le fameux). Afin d'illustrer cela, nous allons aborder certains aspects précis du jeu !
 

Les cartes du jeu


Plusieurs étapes ont été nécessaires afin de générer correctement les cartes du jeu exportées depuis DOFUS.

L'équipe de développement a commencé par la génération des cartes en "brut", mais sans les différents visuels, comme les décors. Cette base gère les lignes de vue ainsi que les blocages de mouvement et permet de constituer "le cadre" des cartes définitives. Le chargement des éléments visuels peut ensuite intervenir, mais doit être divisé en 3 autres étapes : le premier plan, l'environnement dans lequel évolue le joueur, puis l'arrière-plan.

Pour illustrer ces étapes, voici le premier plan et l'arrière-plan du rez-de-chaussée de la maison de Kerubim, située en [6,-16] à Astrub :
 
Premier plan DOFUS Touch
Premier plan de la carte
Arrière plan DOFUS Touch
Arrière-plan de la carte
Il reste alors à y intégrer les éléments du décor, "l'environnement dans lequel évolue le joueur" comme précisé ci-dessus, afin d'obtenir un résultat définitif :
Carte définitive DOFUS Touch
Ces différentes étapes ont été gérées par un algorithme. Afin d'alléger du mieux possible les chargements, le premier plan et l'arrière-plan sont toujours générés en un seul bloc.

Tous les éléments visuels ont dû être retravaillés afin d'être adaptés à DOFUS Touch. En effet, ces éléments sont adaptés pour du Flash sur PC (format .swf) mais ont dû être passés en .jpg ou .png pour la version mobile. Pour la petite histoire, le même procédé a été utilisé pour les monstres et les objets du jeu.

Les cartes sont toujours au format 4:3, car c'est ce qui fonctionnait le mieux pour du mobile. Et quoi qu'il en soit, le 16:9 n'était pas encore terminé sur DOFUS à cette époque !
 

Les interfaces


À l'instar des cartes, les interfaces conceptionnées pour Flash (ActionScript) sur la version PC ont dû être retravaillées pour DOFUS Touch. L'équipe de développement a ainsi repris la logique des sources Flash et tout transposé en HTML5/CSS et Javascript.

Toutes les interfaces ont été retouchées, sans exception. Avec son lot de problèmes, puisque Javascript n'a pas les mêmes logiques que Flash.

De plus, la manière de récupérer les messages du serveur est différente.
 

Mais ce n'est pas tout !


Ces exemples représentent une infime partie du travail d'adaptation qui a dû être réalisé ou qui, parfois, doit encore l’être. Pour citer un dernier exemple, c'est le cas lorsque nous décidons de reprendre le visuel d'une panoplie existante sur DOFUS. Notre équipe doit obligatoirement la retravailler depuis le format Flash, afin de l'adapter à DOFUS Touch.
 

Qu'en est-il aujourd'hui ?


Vous l'aurez compris, la version PC a dû être entièrement retouchée afin d'être adaptée à un format mobile et de donner naissance à DOFUS Touch. Aujourd'hui encore, les développements des deux versions n'ont plus rien en commun et chacun a ses propres impératifs.
 

Les cartes


Concernant les cartes du jeu, très peu d'entre elles sont reprises directement depuis DOFUS et c'est notre Level Designer [Maewin] qui réalise celles-ci de A à Z.

Pour obtenir un aperçu de ce travail, une vidéo sur la création d'une carte de la zone du Mont Nésélite est disponible !
 

Quoi qu'il en soit, le format des cartes a évolué entre DOFUS et DOFUS Touch et il ne serait pas possible de reprendre les cartes de DOFUS (et vice versa) sans devoir les convertir. Ce fait est aussi valable pour bien d'autres composantes du jeu.
 

Le développement serveur


Si l'origine de DOFUS Touch reprend les mêmes bases serveur que la version 2.14 de DOFUS, ils ont aujourd'hui beaucoup divergé. L'un de nos développeurs serveur, [Bob], nous l'explique par l'intermédiaire d'une métaphore !
 
" C'est comme construire deux maisons d'un seul étage, à l'identique. Puis chaque architecte prendrait des libertés en fonction de la demande des clients et des spécificités techniques qui en découleraient, afin de construire un second, puis un troisième étage à chacune des maisons. Il ne suffit plus alors de dire " Reprenons le toit d'une des maisons pour l'autre maison " ; il faut s'adapter afin d'éviter les fuites d'eau ou l'effondrement du toit ! "
En des termes un peu plus techniques, il n'est pas possible de simplement "copier/coller" ce que l'on aimerait voir dans le jeu. Les fondations pour supporter de nouvelles fonctionnalités ne sont parfois pas présentes ou encore incompatibles avec certaines décisions prisent sur DOFUS Touch. Certaines fonctionnalités ont des embranchements complexes de prérequis, notamment au niveau des technologies utilisées et de l'organisation du code qui ne sont pas forcément visibles par les joueurs.

Pour illustrer, on pourrait imaginer que pour DOFUS Touch on représente un joueur par une seule entité appelée "joueur", mais que pour DOFUS, on aurait découpé cette entité en plusieurs petites, différentes, pour que cela soit plus facile à gérer. Comme "informations sociales du joueur", "caractéristiques du joueur", "banque du joueur", etc. Le résultat de cela serait que côté DOFUS Touch, afin d'obtenir l'information concernant la guilde du joueur, nous aurions "joueur --> fonction qui récupère la guilde", tandis que côté DOFUS, nous aurions "joueur --> récupérer les infos sociales du joueur --> récupérer la guilde". Et ces différences deviennent de plus en plus nombreuses au fil du temps.

Pour donner un deuxième exemple, DOFUS pourrait utiliser un nouveau type de base de données et baser ses nouveautés sur celui-ci. Ce changement serait totalement transparent aux yeux des joueurs, le jeu resterait le même. Mais si nous désirions reprendre ces concepts, il nous faudrait l'adapter pour notre propre base de données ou alors adopter cette nouvelle base de données et changer tout notre programme en conséquence.

Ces deux thématiques sont deux exemples parmi des dizaines d'autres qui, au fil des mois, nous séparent techniquement de DOFUS et rendent de potentiels transferts de plus en plus compliqués.

Toute cette disparité entre les deux versions s'explique par de nombreuses raisons, notamment le format du jeu, ses impératifs techniques, ses ressources, mais aussi ses envies vis-à-vis du projet.
 

Le game design


Le game design est la discipline qui consiste à établir les règles du jeu. Concernant DOFUS Touch, cela revient à définir :
 
  • Comment les classes de personnages seront jouées (création de sorts, équilibrage des statistiques, etc.) ;
  • Les interactions que les joueurs pourront avoir (échanges, discussions, défis, amis, guildes, etc.) ;
  • Comment les joueurs peuvent interagir avec le jeu (combat de monstres, métiers, etc.) ;
  • Comment le jeu va réagir face aux interactions venant du joueur ;
  • Les règles de fonctionnement du Monde des 12 (utilisation du zaap, recettes des objets pour l'économie) ;
  • Les différents modes de jeu et leur fonctionnement (Alliances VS Alliances, Kolizéum, île de l'Ascension, etc.) ;
  • Comment équilibrer des équipements et définir leurs statistiques ;
  • Des trames narratives et leur écriture pour les quêtes.

Là encore, si DOFUS et DOFUS Touch avaient pour base commune la version 2.14, ils ont rapidement pris des directions différentes pour les mêmes raisons que celles expliquées ci-dessus, concernant la partie développement serveur.

À l'instar du développement serveur, chaque règle du jeu a évolué différemment au fil du temps. Il n'est donc pas toujours pertinent de penser qu'une idée exploitée dans DOFUS pourra être complètement fonctionnelle pour DOFUS Touch et vice versa.

Une refonte d'Incarnam ne sera pas réalisée de la même manière dans DOFUS Touch puis DOFUS, puisque les joueurs de chaque jeu n'ont pas exactement les mêmes comportements. Cela s'explique par le fait que les joueurs de chaque plateforme (mobile/PC) ont des profils différents.

Certaines idées peuvent toutefois rester similaires sur le fond, puisque les deux projets ont toujours le même jeu pour origine.

Concernant les trames narratives entre DOFUS Touch et DOFUS, vous trouverez un article consacré à ce sujet à cette adresse.
Krosmoz DOFUS Touch

Le format mobile


À tout cela vient s'ajouter une masse de travail non négligeable : les prérogatives de Google et d'Apple. Régulièrement, ces derniers nous demandent certaines modifications techniques et celles-ci peuvent monopoliser un ou plusieurs développeurs à temps plein, durant plusieurs jours. Il est bien entendu strictement nécessaire de suivre ces indications, au risque de voir DOFUS Touch passer indisponible dans ces boutiques !

Google et Apple sortent constamment de nouveaux systèmes d'exploitation (ou encore kit de développement logiciel, Software Development Kit (SDK)) et il est impératif de les suivre. Lorsque telle ou telle version de leur système ne fonctionne plus, il est obligatoire de migrer avec, parfois, son lot de problèmes. Par exemple, nous utilisions auparavant une webview particulière sur Android qui nous permettait de forcer le WebGL sur tous les mobiles. À la suite d'une mise à jour obligatoire, cette webview est devenue incompatible et nous a forcé à utiliser la webview Android, ce qui nous empêche désormais de forcer l'utilisation de WebGL.

Pour les lecteurs les plus aguerris, la webview d'Android se met à jour constamment et notre HTML5/CSS peut ne plus être compatible. Par exemple, dernièrement Apple a forcé le changement vers leur WK webview : soit nous devons travailler sur cette compatibilité, soit DOFUS Touch ne pourra plus être maintenu à jour.
 

Tout ceci n'est qu'une partie immergée de l'iceberg. Mais vous en savez désormais plus sur le fonctionnement technique de DOFUS Touch ainsi que sur certaines différences par rapport à la version PC de DOFUS. Nous restons à votre écoute dans les commentaires !
Première intervention Ankama

En réponse à  BiggballsGoerge

Merci ! Il s'agit d'un logiciel développé en interne.
Voir le message dans son contexte
Réactions 39
Score : 3
Wah.. Super intéressant..
0 0
Score : -7
Stylé tout ça
0 0
Score : 130
Je serais partant pour que vous metier plus souvent des articles de ce genre c'est très interressant et ca change mon regard sur le jeux
4 0
Score : 1
Vraiment cool, au passage quels sont les logiciels utilisees par Maewin pour la conception des cartes ?
0 0
Merci ! Il s'agit d'un logiciel développé en interne.
Score : -25
Une qestion jaimerais vraiment que vous repondiez si possible esque un jour vous pouvez metrre lhupermage sur dofus touch ?
0 -3
Score : 4336
Oui donc cela explique le peu de nouveaux contenu comparé a son grand frere. Ca fait des années qu'on attends de vrai mise a jour avec du vrai contenu, du vrai pvp qui était prévu pour 2019. Mais on a toujours rien a part de mauvaise décision pris de votre part concernant l'économie et les failles qui ont suivi.
1 -1
Score : 95
Adri go retourner sur ordi si tu rates (-;
0 0
Score : 1
j'aimerais bien savoir si on peut voir des nouvelles classes sur dofus touch
0 0
Score : 1
Quitte à faire une refonte, l'utilisation d'un moteur de jeu tel que Unity3D n'aurait-elle pas simplifié les développement crossplatform de certains composants ? Une base commune pour toutes les plateformes puis un développement et un packaging spécifique par plateforme et produit.
0 0
Score : 128
Intéressant donc j'imagine que Dofus touch est sur une techno hybride type react native ou cordova ?
Si l'avantage de maintenir un seul code pour Android et iOS est indiscutable le challenge technique est permanent, bravo aux devs.
0 0
Score : 81
je veux bien tout çà mais ajouter des équipements pertinents ça ne PEUX PAS être si difficile , le staff a vraiment comparé la panoplie dina topia et la panoplie roas inge ? 33% de res contre 59% , dina topia combinable avec rien du tout , même pas de dagues sacrificielles , que quelqu’un m'explique la création d' Equipements pasque a part le skin il y a quoi à faire ? ( en prenant des vielles pano qui sont sorties à l’époque )
0 0
Score : 3
Merci de nous partager un peu de vos aventures de développement, étant moi même développeur je me souviens quand j'ai commencé à jouer à dofus touch avoir vu le logo Cordova après une mise à jour, au même moment qu'une application que je faisais pour la première fois avec Cordova. Je trouve que l'approche html/css/javascript pour un jeu vidéo est très sympa et démontre que malgré tout on peut faire de belles choses avec des langages multi plateforme et les technologies web.
De mon côté WKwebview a plus été un avantage à l'époque qu'un inconvénient (meilleure gestion de la mémoire...) mais je n'avais pas votre problématique car je ne faisais pas de rendu en webGL.
Je ne sais pas si niveau performance vous avez de meilleurs résultat avec flash mais une évolution vers une solution du genre Electron sur desktop permettrait d'avoir la même stack de développement sur mobile et sur desktop tout en conservant des modules différents pour la gestion de l'interface.
Il serait intéressant de faire un dev blog ou autre sur lequel vous parleriez des problèmes que vous avez rencontrez en terme de performance, mémoire, de rendu 2D et 3D ainsi que des éventuelles technologies que vous avez pu tester de votre coté et votre avis sur l'avenir de cette solution vis à vis d'autres solutions multi plateforme plus bas niveau qu'utilisent de nombreux éditeurs de jeux.
0 0
Score : -24
après en se qui concerne android, télécharger l'apk directement sur le site web plutôt que sur l'app store ne me dérange absolument pas.

A t'on des chances de voir arriver un jour un "Ankama cloud gaming" qui permettrait de pouvoir jouer à la version dofus pc sur mobile?
0 -1
Score : 5976
Malgré tout ce beau travail effectué pour ces plate-formes tablette et smartphone, notre expérience de jeu est encore très entaché par les joueurs PC, certes il est possible de prendre beaucoup de plaisir à bas level et moyen level, en revanche à très haut level les zones ne sont toujours pas adaptés, et la difficulté nottament de frigost 3 sont toujours au niveau où elles étaient quand vous les aviez adaptés pour donner du challenge aux multi PC.
Idem pour les dofus dropable qui ne visent la aussi que ces joueur PC.

Effectivement vous faites un bon travail, avec beaucoup de personnes derrière tout ça, mais quand vous parlez de l'expérience de jeu des appareils Androïd, j'ai juste une énorme sensation de foutage de g****.
0 0
Score : 19
Votre publication ma evoquer plusieurs questions,  si il y a plusieurs chemins vers un résultat identique pourquoi pas prendre la solution la plus léger ? 
 Pourquoi pas faire un algorithm pour coder et decoder des algorithm ? 
 En gros faire un outils pour capter les informations et les enregistrer dans une base de données, en gros faire un outils qui sert a monter et a démontrer les informations de manière précise qui découpe les éléments du décor en (utilisant l'Ia) et faire un algorithm contre les bots qui vas servir a savoir si les déplacements sont généré par un ordinateurs en gros derrier tout sa un truc qui rend dofus plus autonome.  Le delire peut aller loin. 

Certes c'est compliqué se que jevoque mais ya moyen de faire du lourd. 
Ps: je revais pti de jouer sur un petit écran gg pour dofus touch qui ma fais re-découvrir le jeux d'un oeil différent. 
 
1 0
Score : 17
Si tu t’y connais et que tu sais comment réaliser ce dont tu parles, fais une candidature spontanée et tente ta chance.

On a besoin de perspectives originales pour faire évoluer ce jeu.
Et d’une meilleure communication mais ça c’est autre chose..
D’ailleurs il serait plus simple d’avoir une chaîne YouTube et de nous présenter tout ça sous forme plus ludique. Ça intéresserait beaucoup plus de joueurs que des postes forum qui ne doit pas être visité par plus de 10% de la communauté.
0 0
Score : 66
Vraiment très intéressant !
J'aimerais beaucoup voir des publications sur le comment ça marche, un peu comme les avant et arrière plan de votre article ou les notions techniques WebGL ainsi que les contraintes Apple et Google !
Des sortes de making of sur l'animation, l'optimisation, le level design etc.
Super boulot !
0 0
Score : 21
Bonjour, tres bon article au passage !
Si l un des devs pourrait apporter une precision : au sujet des bots. On constate qu il y en a plein selon certaines maps ou heure de la journee. Le serveur (une appli en tache de fond coté serveur) ne pourrait elle pas detecter les comportement de type bots et les mettre hors d usage ?
Bien a vous
1 0
Score : 136
Alors viiiite ! Copiez / collez le koli 1v1 ca uuuurge
1 -1
Score : -21
Salut tout le monde je voulait savoir quand est ce que vous aller faire une classe dédier à dofus touch parce que dofus mcdo on l’ouginak Élio trop hypermage et nous nn même pas une classe spécifique à dofus touch et sa plairais a beacoup de monde
0 -2
Réagir à ce sujet