Python Organisation projet émulateur Dofus 1.29

Hetarnam

Contributeur
Inscrit
2 Octobre 2016
Messages
87
Reactions
290
#1
Bonjour à tous !

Je viens ici parce que je suis un peu (beaucoup) perdu dans mon projet.

J'essaye de faire un émulateur 1.29 en python, sauf que je ne sais pas vraiment comment organiser tout ça.

Voici la branche dev pour que vous puissez voir : https://github.com/Hetarnam/HetwanPy/tree/dev

J'essaye de faire un système d'handle et de renvoi de packet assez modulable et indépendant (chaque packet à un "format" qui peut être un préfix ou un pattern regex, et la classe mère redirige en fonction)

Si vous avez des conseils ça serait super !
Merci d'avance, bonne jounée/soirée !
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#2
Salut,
Avant de commencer quoi que ce sois, es-tu certains que Python sois un bon choix pour coder un émulateur ?
 

Hetarnam

Contributeur
Inscrit
2 Octobre 2016
Messages
87
Reactions
290
#3
Le python est utilisable pour beaucoup de choses, il est stable, orienté objet, et plutôt propre en syntaxe, et beaucoup de modules utiles sont dessus.

Il n'est peut-être pas parfait, mais dans les meilleurs choix possibles je pense...
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#4
Je sais que c'est un langage agréable à utiliser. Mais niveau perf c'est loin d'être le top ^^ et pour un émulateur la propriété recherché c'est la perf en general.

Maintenant rien ne t'empêche de le faire pour le fun, tu apprendras beaucoup
 

Hetarnam

Contributeur
Inscrit
2 Octobre 2016
Messages
87
Reactions
290
#5
Tu conseillerais quel langage toi?
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#6
Un langage qui peut être compilé et orienté objet.
Compilé => pour la perf
OO => pour l'organisation du code

Avec ça tu as beaucoup de choix ^^.

Sinon il y a des compilateur pour python mais ça demande généralement de ré-ecrire le code. Renseigne toi :).

Et comme je l'ai dit, c'est une critique constructive à la seule condition que tu veux que ton ému sois performant.
 
Dernière édition:

Hetarnam

Contributeur
Inscrit
2 Octobre 2016
Messages
87
Reactions
290
#7
Plutôt du Java ou du cpp?
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#9
C'est presque un choix sentimental ta question mdr.
Personnellement je ne peux que te répondre C++, mais c'est absolument pas une réponse objective ^^.
 

Hetarnam

Contributeur
Inscrit
2 Octobre 2016
Messages
87
Reactions
290
#10
D'accord, et bien merci pour vos réponses !
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#11
Sur la question de l'organisation du code, en général on crée une class generique Packet qui contient tout les outils pour traiter le packet (encodage, décodage). En suite pour chaque packet du jeu on crée une class qui hérite de Packet.
Et les modules liée à la réception et à l'envoie de packet prennent respectivement en sortie et entrée un objet generique de type Packet =)
 
Inscrit
2 Juin 2016
Messages
82
Reactions
3
#12
C# me semble le meilleur choix de nos jours. C++ pour les hardcore, Java pour le crossplat. (c'est tout à fait relatif, tu peux en faire avec .Net core aussi)
 
Inscrit
25 Février 2012
Messages
178
Reactions
3
#13
Le c# commence à être crossplat aussi :p
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#15
Par rapport à ce que dit drBrook. Le C++ ce n'est pas tant pour les hardcore que cela. Le C++ est un langage très complète ce qui fait apparaître des complexités mais il y à toujours une solution et le net et rempli de solution. Il est juste un peu verbeux. Mais cela ce justifie par la multitude des possibilités de ce langage.

De plus il est bien plus crossplatforme ^^ il faut juste éviter les libs monoplatformes.
 
Inscrit
2 Juin 2016
Messages
82
Reactions
3
#16
Par rapport à ce que dit drBrook. Le C++ ce n'est pas tant pour les hardcore que cela. Le C++ est un langage très complète ce qui fait apparaître des complexités mais il y à toujours une solution et le net et rempli de solution. Il est juste un peu verbeux. Mais cela ce justifie par la multitude des possibilités de ce langage.

De plus il est bien plus crossplatforme ^^ il faut juste éviter les libs monoplatformes.
C# reste bien plus productif que le C++. En contrepartie on obtient de meilleures performances. Mais le C++ devient de plus en plus complet avec ses dernières mise à jours, c'est vrai. (C++17 ?)
 
Haut Bas