C/C++ Émulateur dofus 2.4x (CPP)

Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#1
Bonjour à tous !
J'ai eu la folle idée de développer un réel émulateur (pas seulement un prototype) en C++ pour dofus 2.4x

Mon projet est déjà entre guillemet bien avancé (Auth && World avec IPC)
J'utilise du SQL pour la database avec la lib SQLAPI++
J'utilise CAMP pour "émuler" de la réflexion en cpp, et d'autre du style crypto++ pour l'aes du ticket d'authentification.. bref !
Le projet s'appel Thanadolos et j'en suis a la pour le moment



Je cherche quelqu'un qui a du temps libre, et qui a envie de s'intéresser a des languages bas niveaux du genre pour avancer plus vite sur l'émulateur (si ta jamais fais du code même sur du C# autant te dire qu'il est inutile de me contacter, j'suis pas la pour faire le prof non plus ;P) je fais ça parce que c'est amusant et pourquoi pas réussir a faire un réel émulateur complet en C++ (du style de Noxus que j'ai fais avec Nightwolf en node.JS qu'on a du arrêter)

EDIT:
Proto builder fait (https://github.com/w0dm4n/Protocol-builder-Ankama-2.4x)
Voilà où j'en suis actuellement :


18/05:


31/05:
ORM avec reflection (chaque record lié au client est un objet unique donc ce sauvegarde automatiquement), sauvegarde multi thread pour chaque tables, chargement automatique des records. Fonction automatique pour récupérer un objet via un index et le nom du record avec optimisation des boucles via un index de modulo ( -> https://hastebin.com/ajozaqutiz.cpp )
Les sorts, les niveaux de sorts, les effects, les shortcuts
Chargement des spells sur un character, upgrade/downgrade spell level

EDIT:
Le repo est maintenant open source : https://github.com/w0dm4n/Thanadolos
 
Dernière édition:
Inscrit
20 Avril 2017
Messages
12
Reactions
0
#2
Bonjour,

Enfin un projet en C++ ça fais vraiment plaisir à voir *-*. Dommage que ça soit pas un projet communautaire. Je n'ai pas énormément d’expérience en émulation mais quelques années de C/C++ derrière moi et j'aurai aimé pouvoir faire des PR de temps en temps .

Pour le ProtocolBuilder, tu pourrais peut être t’intéresser à Bison et Flex qui sont des outils d'analyse syntaxique et d'analyse lexicale très puissants.

Je te souhaites, en tout cas, le meilleur, bon courage et j'espère que ton projet ira loin.
 
Dernière édition:
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#3
Bonjour,

Enfin un projet en C++ ça fais vraiment plaisir à voir *-*. Dommage que ça soit pas un projet communautaire. Je n'ai pas énormément d’expérience en émulation mais quelques années de C/C++ derrière moi et j'aurai aimer pouvoir faire des PR de temps en temps .

Pour le ProtocolBuilder, tu pourrais peut être t’intéresser à Bison et Flex qui sont des outils d'analyse syntaxique et d'analyse lexicale très puissants.

Je te souhaites, en tout cas, le meilleur, bon courage et j'espère que ton projet ira loin.
Hey, merci pour ton message, les projet communautaire ça part vite en couille généralement non ? x)

Je tiendrais ce poste à jour pour ceux qui sont intéressé par l'avancement.
Merci pour Bison et Flex, mais le proto builder pour le C++ n'est pas forcément obligé d’être fait dans la souffrance ahah
Autant ce faire chier le moin possible avec du php ou du js..
 
Inscrit
15 Aout 2016
Messages
20
Reactions
0
#4
Je voulais en développer un il y a quelques semaines, je cherchai des personnes motivés pour en développer un :o

Dommage, je suis parti sur un autre projet tout aussi intéressant.
Bon courage pour le développement de ton projet.
 
Inscrit
20 Avril 2017
Messages
12
Reactions
0
#5
Hey, merci pour ton message, les projet communautaire ça part vite en couille généralement non ? x)

Je tiendrais ce poste à jour pour ceux qui sont intéressé par l'avancement.
Merci pour Bison et Flex, mais le proto builder pour le C++ n'est pas forcément obligé d’être fait dans la souffrance ahah
Autant ce faire chier le moin possible avec du php ou du js..
C'est vrai que ça part vite en couille si tu donne les droits sur le répository à n'importe qui mais avec un système de pull request ça peut bien se passer. C'est un workflow ultra pratique quand tu veux que des gens puissent intégrer des modifs tout en gardant un contrôle total sur ton projet. Après ça demande plus de temps que de trouver un collaborateur c'est vrai.

C'est vraiment drôle toutes les personnes que je connais qui ont déjà utilisé Flex ou Bison ne veulent plus en refaire ni même en attendre parler, je comprends pas :D
Je partais dans l'optique que tu voulais tout en faire en CPP mais c'est vrai qu'au final tu t'éviterai bien des souffrances
 
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#6
Je voulais en développer un il y a quelques semaines, je cherchai des personnes motivés pour en développer un :o

Dommage, je suis parti sur un autre projet tout aussi intéressant.
Bon courage pour le développement de ton projet.
Merci, yep je sais tu m'avais demandé y'a un moment, on peux en discuter sur Skype si tu veux :)
 

Mixi

Magouilleur
Inscrit
15 Février 2015
Messages
6
Reactions
0
#8
Enfin un projet en C++ !
Ça faisais longtemps que j'en avais pas vu un concret (Depuis alex logistik)
Bon courage pour ce projet, cette fois te le fait pas voler par Alpa
Hâte de voir l'avancement de celui-ci et si tu le continueras belle et bien:)
 
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#9
Enfin un projet en C++ !
Ça faisais longtemps que j'en avais pas vu un concret (Depuis alex logistik)
Bon courage pour ce projet, cette fois te le fait pas voler par Alpa
Hâte de voir l'avancement de celui-ci et si tu le continueras belle et bien:)
Ne t'en fait pas pour ce kikoo.. et btw il ma rien volé c'est Kikas a qui j'ai laissé des accès en pensant qu'il était quelqu'un de confiance, c'était une erreur ^_^
 
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#10
Je suis toujours à la recherche d'un développeur pour m'épauler, n'hésitez pas a me contacter ! :)
 
Inscrit
26 Février 2016
Messages
82
Reactions
0
#11
Quels sont les raisons qui t'ont poussé à le développer en C++ ?
 
Inscrit
22 Octobre 2011
Messages
34
Reactions
0
#12
Pourquoi tu mets pas tout en open source? C'est le fait que tant de projets soient fermés que l'émulation Dofus est en mauvaise santé.
 
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#14
Pourquoi tu mets pas tout en open source? C'est le fait que tant de projets soient fermés que l'émulation Dofus est en mauvaise santé.
Je vois pas l'utilité de le share en open source, surtout que j'aimerais à terme, ouvrir un projet avec
 
Inscrit
22 Octobre 2011
Messages
34
Reactions
0
#15
Bah l'utilité elle est claire, d'ailleurs il y a une explication dans mon message. Mais à part ça, je sais pas par exemple ça permet à n'importe qui de t'aider (plutôt que de venir demander ici l'aide de quelqu'un qui a du "temps libre", car précisément il y a peu de gens qualifiés qui ont du temps libre, par contre des gens qualifiés qui ont un peu de temps pour deux trois trucs ça il y en a), plus de gens qui ont accès à ton code = plus de gens pour détecter des bugs et des failles, et aussi simplement plus de gens sur qui s'appuyer pour prendre des décisions techniques, car tu aurais beau être le meilleur développeur C++ du monde, il y aura toujours des gens pour proposer des idées nouvelles ou pour te faire part de problèmes techniques liés à des choix de design auxquels tu n'aurais pas pensé. Enfin bref tous les bénéfices connus et éprouvés de l'open source.

Et ça n'empêche pas d'ouvrir un projet avec. Si tu crois que tu vas gagner plus d'argent sans partager qu'en partageant, tu te trompes.

L'apprentissage, les perfs et pour le fun
Bon à savoir: on ne développe pas une application en C++ pour les perfs, sauf si c'est une application vraiment critique (style pour envoyer une fusée sur Mars) ou pour une démonstration de force disons, mais dans ces deux cas il vaut mieux être vraiment calé en optimisations bas niveau, ce qui n'est probablement pas ton cas vu que tu cites "l'apprentissage". D'ailleurs je ne connais pas ton niveau réel en C++ mais si c'est vraiment pour "l'apprentissage", ne t'attend pas à faire un truc exceptionnel (surtout niveau perfs haha). Et c'est alors un intérêt supplémentaire pour toi de développer en open source.
 
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#16
Bah l'utilité elle est claire, d'ailleurs il y a une explication dans mon message. Mais à part ça, je sais pas par exemple ça permet à n'importe qui de t'aider (plutôt que de venir demander ici l'aide de quelqu'un qui a du "temps libre", car précisément il y a peu de gens qualifiés qui ont du temps libre, par contre des gens qualifiés qui ont un peu de temps pour deux trois trucs ça il y en a), plus de gens qui ont accès à ton code = plus de gens pour détecter des bugs et des failles, et aussi simplement plus de gens sur qui s'appuyer pour prendre des décisions techniques, car tu aurais beau être le meilleur développeur C++ du monde, il y aura toujours des gens pour proposer des idées nouvelles ou pour te faire part de problèmes techniques liés à des choix de design auxquels tu n'aurais pas pensé. Enfin bref tous les bénéfices connus et éprouvés de l'open source.

Et ça n'empêche pas d'ouvrir un projet avec. Si tu crois que tu vas gagner plus d'argent sans partager qu'en partageant, tu te trompes.


Bon à savoir: on ne développe pas une application en C++ pour les perfs, sauf si c'est une application vraiment critique (style pour envoyer une fusée sur Mars) ou pour une démonstration de force disons, mais dans ces deux cas il vaut mieux être vraiment calé en optimisations bas niveau, ce qui n'est probablement pas ton cas vu que tu cites "l'apprentissage". D'ailleurs je ne connais pas ton niveau réel en C++ mais si c'est vraiment pour "l'apprentissage", ne t'attend pas à faire un truc exceptionnel (surtout niveau perfs haha). Et c'est alors un intérêt supplémentaire pour toi de développer en open source.
Premièrement, si l'émulateur se développe bien, évidemment que le fait qu'il soit open source ne va pas m'aider a gagner plus d'argent vu que je n'aurais déjà plus l'exclusivité, j'ai assez d’expérience dans le domaine des serveurs privées pour le savoir.
Sinon oui c'est bien pour trouver des idées nouvelles ect mais vu le nombre de gens qui font du c++ à mon avis dans l'émulation dofus ou du moin, savent en faire correctement ça va plus partir en leech qu'autre chose, je préfère trouver quelque mecs avec qui faire le projet ensemble
Sinon pour les perfs je t'invite à t'informer, en regardant de simple benchmark sur des tests algorithmiques ou récursif par exemple, ou même pour la mémoire que tu consomme, ou même rien que le fait d'être bien plus proche de la machine que du temps de passer par la couche d'un framework, et ce n'est pas parce que j'utilise le terme apprentissage que mon projet ne peut pas être propre et quand tu me dis "il vaut mieux être vraiment calé en optimisations bas niveau" ou "(style pour envoyer une fusée sur Mars) ou pour une démonstration de force disons" tu me fais penser à ces gens qui savent tous mais en faite pas grand chose en même temps, et oui on en apprend tout les jours !
Je fais du C depuis 2 ans et je pense pouvoir m'en sortir, et non il n'y a pas besoin "d'être calé en optimisations bas niveau" déjà mais en premier lieu de savoir gérer correctement la mémoire, sinon c'est pas si plus compliqué en soit.
 
Inscrit
22 Octobre 2011
Messages
34
Reactions
0
#17
Non mais j'ai jamais dit que le C++ n'était pas performant. Je dis qu'aujourd'hui, avec les machines qu'on a en 2017, sauf si tu veux écrire des applications critiques, tu n'as pas besoin d'utiliser du C++ POUR les performances (autrement dit c'est un mauvais argument d'utilisation de ce langage, sauf cas très précis cités dans mon message). Et justement le fait d'être plus proche de la machine comme tu dis sans en connaître le fonctionnement interne t'empêchera d'avoir des bonnes perfs: c'est à toi de te poser des questions sur les cache miss, les allocations, l'utilisation d'une vtable etc, et si tu fais ça mal, crois moi que n'importe quel framework haut niveau t'explosera niveau performances (car eux ont été écrits par des gens extrêmement compétents dans le domaine de l'optimisation bas niveau). Les performances du C++ ne se mesurent pas que sur des benchmarks purement algorithmiques (où évidemment il est roi avec le C et quelques autres langages): tu ne passes pas ton temps à écrire toi-même des algorithmes n'est-ce pas? Les performances du C++ se mesurent, comme n'importe quel autre langage, sur des applications réelles. Et tu serais étonné de voir que beaucoup de langages qui ne sont pas "proches de la machine" s'en sortent extrêmement bien, voire mieux en partie pour les raisons sus-citées, et dans tous les cas la différence n'est pas assez significative pour devoir faire du C++ "pour les performances".
Et n'oublions pas le principal défaut de ce langage (malheureusement hérité du C) qui est la sécurité et les nombreuses sources de bugs subtils que tu ne connais sûrement pas encore, défaut évité par n'importe quel autre langage moderne.

Je ne suis pas en train de dire que le C++ est un mauvais langage, au contraire. C'est un langage très puissant mais qui nécessite une grande maîtrise pour être utilisé convenablement. C'est un langage qu'on utilise pour ses features et non pas pour les performances, c'est avant tout une question de goût et de confort. Donc vouloir faire d'un émulateur un projet d'apprentissage, c'est une excellente idée car en effet le meilleur moyen de se former au C++ c'est de pratiquer. Mais l'argument des performances est complètement fallacieux.

Je fais du C depuis 2 ans
: ce n'est pas un bon argument étant donné que le C++ (moderne évidemment) n'a plus beaucoup de choses en commun avec le C. D'ailleurs j'espère que tu n'as pas prévu de devoir "gérer la mémoire" justement haha.
 
Inscrit
6 Octobre 2015
Messages
38
Reactions
0
#18
Non mais j'ai jamais dit que le C++ n'était pas performant. Je dis qu'aujourd'hui, avec les machines qu'on a en 2017, sauf si tu veux écrire des applications critiques, tu n'as pas besoin d'utiliser du C++ POUR les performances (autrement dit c'est un mauvais argument d'utilisation de ce langage, sauf cas très précis cités dans mon message). Et justement le fait d'être plus proche de la machine comme tu dis sans en connaître le fonctionnement interne t'empêchera d'avoir des bonnes perfs: c'est à toi de te poser des questions sur les cache miss, les allocations, l'utilisation d'une vtable etc, et si tu fais ça mal, crois moi que n'importe quel framework haut niveau t'explosera niveau performances (car eux ont été écrits par des gens extrêmement compétents dans le domaine de l'optimisation bas niveau). Les performances du C++ ne se mesurent pas que sur des benchmarks purement algorithmiques (où évidemment il est roi avec le C et quelques autres langages): tu ne passes pas ton temps à écrire toi-même des algorithmes n'est-ce pas? Les performances du C++ se mesurent, comme n'importe quel autre langage, sur des applications réelles. Et tu serais étonné de voir que beaucoup de langages qui ne sont pas "proches de la machine" s'en sortent extrêmement bien, voire mieux en partie pour les raisons sus-citées, et dans tous les cas la différence n'est pas assez significative pour devoir faire du C++ "pour les performances".
Et n'oublions pas le principal défaut de ce langage (malheureusement hérité du C) qui est la sécurité et les nombreuses sources de bugs subtils que tu ne connais sûrement pas encore, défaut évité par n'importe quel autre langage moderne.

Je ne suis pas en train de dire que le C++ est un mauvais langage, au contraire. C'est un langage très puissant mais qui nécessite une grande maîtrise pour être utilisé convenablement. C'est un langage qu'on utilise pour ses features et non pas pour les performances, c'est avant tout une question de goût et de confort. Donc vouloir faire d'un émulateur un projet d'apprentissage, c'est une excellente idée car en effet le meilleur moyen de se former au C++ c'est de pratiquer. Mais l'argument des performances est complètement fallacieux.

: ce n'est pas un bon argument étant donné que le C++ (moderne évidemment) n'a plus beaucoup de choses en commun avec le C. D'ailleurs j'espère que tu n'as pas prévu de devoir "gérer la mémoire" justement haha.
g pa lu
 
Inscrit
22 Octobre 2011
Messages
34
Reactions
0
#19
Bonne chance pour ton émulateur alors, mais tu me surprendrais positivement si t'arrivais à en faire quoique ce soit d'intéressant.
 
Haut Bas