Alpa#1269
Membre
- Inscrit
- 27 Février 2026
- Messages
- 206
Je bosse depuis plusieurs mois sur une implémentation complète du client Dofus 2 qui tourne dans le navigateur (et en desktop via Electron)
C'est un port technique du client, pas un serveur, mais il est conçu pour être compatible avec les serveurs Dofus 2
Je me suis dit que le projet était maintenant suffisamment mature pour en parler et faire un post dessus
## Mes motivations
Avant de rentrer dans la technique, un mot rapide sur le pourquoi.
Le projet est né de plusieurs frustrations.
La première, c'est à quel point le client Dofus 3 est bug et lent. Ma conviction personnelle, c'est qu'utiliser Unity pour un jeu comme Dofus était une mauvaise idée à la base, mais qu'en plus, a priori, le client a toujours autant de soucis, de bugs et de problèmes de performances. Je trouve ça regrettable, et j'aimerais proposer une alternative à ce qu'aurait pu être Dofus s'ils avaient fait les bons choix (rien que ça).
La deuxième frustration est liée au fait que Dofus 3 est aujourd'hui très fermé et obfusqué. Pour l'avenir des serveurs privés, partir sur du développement basé sur le client officiel ne me semble pas la bonne approche, c'est bien trop limité sur la durée. Et puis soit tu pars sur la version 3.0 de la bêta, qui avait énormément de bugs mais au moins le protocole était en clair. Soit tu te bases sur la version récente, mais dump tout le protocole est un enfer, et au final tu te retrouveras toujours avec quelques bugs chiants et des problèmes de performances
Du coup, l'idée c'est de proposer quelque chose qui colle vraiment à ce qu'on attend en 2026 :
- Aucune installation lourde. Tu ouvres ton navigateur et tu joues, ou tu prends la version Electron si tu préfères un vrai exécutable
- Des interfaces repensées, et surtout la possibilité d'en ajouter de nouvelles spécifiques au serveur (events custom, outils communautaires, etc..) sans devoir bricoler autour d'un client compilé
- Une cible cross-plateforme plus large : Windows, Mac, Linux, et potentiellement mobile à terme, sans avoir à maintenir trois builds différents
- Ajouter énormément de petits QoL (quality of life) qu'Ankama ne prend pas le temps de faire, CF:
- Plus de fluidité (on peut faire tourner plusieurs centaines de joueurs sur une même map à + de 100 FPS), moins de lag, moins de chargements à rallonge, pas de fuite de mémoire (enfin... pour l'instant). On ne dépend ni de Flash ni des limites du moteur officiel, toute la logique est "visible", rien de bloated, c'est écrit en WebGL (et WebGPU) pur, donc rien de caché à part l'abstraction que cause JavaScript de base
Au-delà du serveur, je trouve ça intéressant pour la communauté Dofus en général : montrer qu'on peut faire tourner Dofus 2 proprement sur des technos modernes, sans dépendre de Flash ni d'Unity
## Les interfaces
Le projet utilise React, ce qui permet d'avoir une grande liberté et beaucoup de simplicité sur la composition des UI
À la base, j'avais commencé à vibe coder des UI, mais c'était très limité et honnêtement pas très beau. J'ai donc pensé à une autre approche : vu qu'Ankama utilise un tool Figma → Unity, je me suis dit qu'il était sans doute possible de récupérer cet output et de faire un Unity → HTML/CSS
J'ai donc écrit un tool capable d'extraire les fichiers USS / UXML et les textures utilisées, ainsi qu'un converter qui me génère des fichiers TSX complets, ce qui me permet d'avoir un rendu quasiment 1:1 avec ce qui se fait sur le client officiel
Voici par exemple l'affichage en jeu actuel :
[Connectez-vous pour voir ce lien]
[Connectez-vous pour voir ce lien]
C'est un port technique du client, pas un serveur, mais il est conçu pour être compatible avec les serveurs Dofus 2
Je me suis dit que le projet était maintenant suffisamment mature pour en parler et faire un post dessus
## Mes motivations
Avant de rentrer dans la technique, un mot rapide sur le pourquoi.
Le projet est né de plusieurs frustrations.
La première, c'est à quel point le client Dofus 3 est bug et lent. Ma conviction personnelle, c'est qu'utiliser Unity pour un jeu comme Dofus était une mauvaise idée à la base, mais qu'en plus, a priori, le client a toujours autant de soucis, de bugs et de problèmes de performances. Je trouve ça regrettable, et j'aimerais proposer une alternative à ce qu'aurait pu être Dofus s'ils avaient fait les bons choix (rien que ça).
La deuxième frustration est liée au fait que Dofus 3 est aujourd'hui très fermé et obfusqué. Pour l'avenir des serveurs privés, partir sur du développement basé sur le client officiel ne me semble pas la bonne approche, c'est bien trop limité sur la durée. Et puis soit tu pars sur la version 3.0 de la bêta, qui avait énormément de bugs mais au moins le protocole était en clair. Soit tu te bases sur la version récente, mais dump tout le protocole est un enfer, et au final tu te retrouveras toujours avec quelques bugs chiants et des problèmes de performances
Du coup, l'idée c'est de proposer quelque chose qui colle vraiment à ce qu'on attend en 2026 :
- Aucune installation lourde. Tu ouvres ton navigateur et tu joues, ou tu prends la version Electron si tu préfères un vrai exécutable
- Des interfaces repensées, et surtout la possibilité d'en ajouter de nouvelles spécifiques au serveur (events custom, outils communautaires, etc..) sans devoir bricoler autour d'un client compilé
- Une cible cross-plateforme plus large : Windows, Mac, Linux, et potentiellement mobile à terme, sans avoir à maintenir trois builds différents
- Ajouter énormément de petits QoL (quality of life) qu'Ankama ne prend pas le temps de faire, CF:
Au-delà du serveur, je trouve ça intéressant pour la communauté Dofus en général : montrer qu'on peut faire tourner Dofus 2 proprement sur des technos modernes, sans dépendre de Flash ni d'Unity
## Les interfaces
Le projet utilise React, ce qui permet d'avoir une grande liberté et beaucoup de simplicité sur la composition des UI
À la base, j'avais commencé à vibe coder des UI, mais c'était très limité et honnêtement pas très beau. J'ai donc pensé à une autre approche : vu qu'Ankama utilise un tool Figma → Unity, je me suis dit qu'il était sans doute possible de récupérer cet output et de faire un Unity → HTML/CSS
J'ai donc écrit un tool capable d'extraire les fichiers USS / UXML et les textures utilisées, ainsi qu'un converter qui me génère des fichiers TSX complets, ce qui me permet d'avoir un rendu quasiment 1:1 avec ce qui se fait sur le client officiel
Voici par exemple l'affichage en jeu actuel :
[Connectez-vous pour voir ce lien]
[Connectez-vous pour voir ce lien]