![[Image Introuvable]](https://camo.githubusercontent.com/258cbea198149beb7f0ffaae9782e5df2d3b2d6e7f038a426d5983c04e5be4b3/68747470733a2f2f692e6962622e636f2f35783859735a432f6664706e312e706e67)
Bonjour/Bonsoir,
Aujourd'hui je partage un de mes récents travaux, j'avais entamé le développement d'un émulateur à l'état de total PoC pour me faire kiffer la semaine quand j'avais envie de dev 2h un soir. Mais je n'ai plus l'envie de m'y consacrer d'avantages pour le moment, peux être dans l'avenir ?
Qui sait ... si la motivation de faire un serveur privé me reprends, mais seul c'est compliqué de rester motivé.
L'émulateur ne permet pas d'ouvrir de serveur en l'état, le Auth et le World ne sont pas connectés entre eux, j'ai une branch en local qui contient l'ajout de multi game et l'utilisation de micro service avec Orleans (https://github.com/dotnet/orleans ).
Il faudrait que je trouve la motivation de la terminer, je le partage juste pour aidez certains qui veulent se lancer où même regarder.
L'émulateur est en .NET CORE 3.1 si ma mémoire est bonne, pour la dernière version du client Dofus Touch si vous avez besoin d'aide pour patcher votre client je peux vous drop le miens c'est un client Lindo avec la source du jeu patché.
La base de données se génère automatiquement normalement, vous aurez juste à changer la connections à vos base de données dans les containers:
Bolgrot/Bolgrot.Server.Auth/Container.cs et Bolgrot/Bolgrot.Server.Game/Container.cs avec votre base.
Si il manque des choses demander moi en MP ou sur Discord j'updaterais le post, ou même le git.
Je conseille pour le coup d'avoir deux base de données différentes.
Listing des technos:
- DI / IOC avec la lib Autofac
- NLog pour toutes la parties de log
- ORM avec la lib ServiceStack.OrmLite, il était prévu que je fasse pas mal d'audit sur les tables afin d'historiser énormément de chose donc le travail est peux être en chantier ou manque de réflexion
- EmbedIO pour la partie WebSocket et HTTP
- Symfony pour le scraping d'assets
- et certainement d'autres que j'oublie ...
En termes de fonctionnalités:
- Connexion via un compté créée dans la base de donnée (beaucoup de choses non faite ici)
- Sélection du serveur de Jeu
- Création d'un personnage
- Sélection d'un personnage
- Entrer en jeu
- Déplacement du personnage sur la carte (manque la verif), avec changement de map
- Début du spawn des PNJ si ma mémoire est bonne
- Et j'en oublie probablement
Attention:
- Le Auth et le Game ne sont pas reliés (le fix est dans une branch local).
- L'account dans le game est en dur si ma mémoire est bonne (le fix est dans une branch local).
- Aucune synchro avec les clients multiples c'est à dire si vous connectez deux clients sur la même map aucun ne se verra et ne pourra interagir
- Pas mal de vérifications manquantes, car l'émulateur visait simplement à un usage local pour me faire kiffer à dev les soirs.
- Du code probablement non opti à quelques endroits ou mal réfléchi je codais à une fréquence de 2h par semaine toutes les 2 semaines, donc beaucoup de parties bâclés.
Les sources: https://github.com/gateaubleu/Bolgrot
Quelques Screenshots:
Sélection du serveur de jeu:
![[Image Introuvable]](https://camo.githubusercontent.com/ac92db5d0aa1fd20d5b4dfdbb719b756b666ebc16799c7a34c56543ac413c3c2/68747470733a2f2f692e6962622e636f2f37526a634e62372f696d6167652e706e67)
Sélection du personnage:
![[Image Introuvable]](https://camo.githubusercontent.com/02f44cd37313f7052ea34c4a37c554ceda5562e69f381f69a04b920dc565fef2/68747470733a2f2f692e6962622e636f2f625077346653522f696d6167652e706e67)
Arrivé en jeu:
![[Image Introuvable]](https://camo.githubusercontent.com/bd4a3f8d9f5b3e15c277273b79455d538021dddb5f7336a72b6532f4b2ad6c1a/68747470733a2f2f692e6962622e636f2f4a515a386d444d2f696d6167652e706e67)
Spawn PNJ:
![[Image Introuvable]](https://images-ext-2.discordapp.net/external/A0UyAT5wqDaHv1ahasH-jRF44V2mJ9GE7a4hobn9THQ/https/media.discordapp.net/attachments/642251626920411136/751954455427022878/unknown.png)
Bien cordialement, et bon code :)