Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

essaic

 tutoriel / partage [Global] Les packets, les sockets

Messages recommandés

Bonjour,

 

Ayant vu que beaucoup de personnes ne comprenant rien au principe des packets et dirent n'importe quoi dessus j'ai décidé de faire un tuto pour expliquer ce principe. Soyez indulgent c'est seulement mon 2ème tuto.

Ici je vais uniquement développer le côté théorique de la chose.

 

Socket :

 

Avant toute chose, on va commencer par les sockets. Socket en anglais veut dire prise de courant.

 

Imaginez que vous avez 2 ordinateurs qui doivent communiquer entre eux, pour cela il faut établir une connexion entre eux grâce à une socket.

 

La socket peut donc être vue, comme un lien, un pont entre 2 programmes sur 2 ordinateurs différents.

 

Paket :

 

Une fois reliés, ces 2 programmes vont vouloir communiquer. Par exemple, sur Deaufous, lorsque vous cliquer pour vous déplacer votre "Client" (le programme avec lequel vous jouez) va dire au serveur "Eh oh il veut se déplacer à la case numéro 332, dit moi si c'est possible ou pas" sauf que les échanges d'informations ne s'écrivent évidemment pas en français, ce serait beaucoup trop long et il y a 36 milles façons de dire là même chose avec d'autre mots.

 

Votre Client Deafous va donc dire au Serveur quelque chose comme ca : Ga332 (j'invente là). Le serveur va lui comprendre ceci : ga332 = Ga & 332, Ga = se déplacer et 332 la case sur laquelle le joueur veut se déplacer.

 

Ca va ? Mais faire un packet différents pour chaque action serait trop long alors ils ont choisit quelque chose qui ressemble à ca :

Ga001332 = Ga + 001 + 322 ou Ga = Game Action (un action) 001 l'action en question (se déplacer) et 332 bin l'id de la case.

 

 

Partie Added : Le 28/3 :

 

Les dev de Deaufous ont donc "codifié" les packets. Ça veut dire qu'ils ont pas choisi au hasard ces noms et ont donné à chaque packet un structure propre qui se ressemble de packet en packet.

 

Si vous avez pas compris voilà un exemple :

 

Si on reprend nos Games Actions. En réalité il y a 3 packets :

 

GA - GameAction

GAS - GameACtionStart

GAF - GameActionFinish

 

Chacun avec évidemment des informations à cotés (comme par exemple l'id de la case) qu'on apelle des arguments ou args. Gardez toutefois en tête qu'ils s'agit d'une convention que ce sont imposées les créateurs il aurait pu aussi bien Choisir Agaga Agaga2 et Agaga3.

 

Prenons un autre exmple : les émotes.

 

Dans votre "Client" Deafous vous cliquez sur une émote. Aussitôt il enverra au Serveur "Je veux faire l'émote n°7" (sauf erreur de ma part la 7 c'est la flûte.) Et le serveur vérifiera si c'est possible. Il lui répondra : "Joue l'émote X au personnage sur la map qui a comme numéro Y".

En langage codé :

Client envoie : eU7 => eU EmoteUse et 7 l'id ou némuré de l'émote voulue.

Le serveur renvoie eUK|7

 

Ici ca se corse un peu car il renvoie "Idperso" qui correspond à l'id (au numéro) d'un perso affiché sur la map. Imaginez que ce soit votre ami qui fasse un émote sur la même map et bin vous recevrez : eUK|

 

Ca va ? vous suivez toujours ? Si non n'hésiter pas à relire on peut pas tout comprendre tout de suite.

 

PS : Les mots mit entre <> sont là pour expliquer à quoi correspond ce qui doit s'y trouver.

 

La structure Client-Serveur

 

Je vais essayer de vous expliquer cette structure du mieux possible toutefois il se peut que je ne soit pas toujours clair prière de me le dire ou si j'oublie de parler de qqchose dites le moi aussi.

 

Bon jusqu'à présent on avait 2 ordinateurs ou plustôt 2 programmes qui se parlaient d'égal à égal or ici ce n'est le cas on a un despote (Le serveur) et un "esclave" (le Client).

 

90 % des choses sont décidées par le serveur, c'est lui qui dit à votre client d'afficher un joueur sur une map, c'est lui qui vous dit si vous pouvez ou pas mettre cette objet comme arme.

Il a accès à la Base De Données (Bdd), autre concept que je n'expliquerait que peu. Dites-vous qu'il s'agit d'un énorme tableau contenant presque tout ce qu'il fait le jeu.

La liste des pnjs, la listes des items, la liste des mobs, etc.

 

Le client lui se contente d'effectuer et d'afficher ce que le serveur lui dit de faire. Évidemment c'est le joueur qui clique sur la case pour se déplacer mais c'est le serveur qui décidera si il peut ou non, si cela entraînera un action (si on se met sur un trigger) et envoie à tous les joueurs sur la map : "affiche que le perso X sur la map se déplace à la case X s'il te plaît".

 

Dans ce jeu presque toutes les actions passent par le serveur ce qui permet un contrôle presque total de chaque action et réduit fortement les possibilités de cheat (si l'ému est bien codé hein).

 

Voilà ce tuto est pas fini je le finirait bientôt en le complétant avec des explications sur Client-Serveur.

 

MODIFIABLE ET COPIABLE A CONDITION DE ME CITER.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon TUTO Bravo !

Partager ce message


Lien à poster
Partager sur d’autres sites

Partie ajoutée plus de précision sur les packets je vais bientôt rajouter la structure Client Serveur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Waaah.

Merci bien!

Partager ce message


Lien à poster
Partager sur d’autres sites

de rien dites moi si c'est clair ou pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Très utile...

Seulement pour tout le texte que tu as écris,

seule quelque personne t'on accordé un merci.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

normal étant donné que cela ne peut intéresser qu'une partie des gens visitant ce fofo.

Partager ce message


Lien à poster
Partager sur d’autres sites

Au passage si un admin/modo pouvait déplacer mon post vers la catégorie divers (une erreur lors de la création). MERCI.

Partager ce message


Lien à poster
Partager sur d’autres sites

Joli tutoriel.

Partager ce message


Lien à poster
Partager sur d’autres sites

Super tutoriels je me susi permis de le mettre dans avec mon lien de téléchargement de packet :

Contenu Masqué !

    Donnez un like à l'auteur afin de pouvoir visualiser tout le contenu.

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.