Jump to content
×
×
  • Create New...
  • 0

Un émulateur ?


Calypso
 Share

Question

  • Retraité

Salut tout le monde,

 

J'viens vers vous pour avoir plus d'information concernant les émulateurs (pour ceux qui ont l'habitude de bosser hors Metin).

Ça concerne les émulateurs, j'aimerais savoir comme ça marche ?

 

Ce que je veux dire par là, si par exemple les sources d'un jeu sont publiés (prenons exemple avec AK), il faut bien créer un émulateur pour le faire fonctionner ?

Mais comment ça se passe pour la liaison Emulateur --> Sources ?

A quoi sert l'émulateur (me donné pas la définition je la connais) du moment que l'on a les sources ?

 

C'est toutes ces petites questions que je me pose et que j'aimerais bien y connaitre la réponse.

Merci d'avance à ceux qui prendront le temps d'y répondre :)

Link to comment
Share on other sites

  • Answers 5
  • Created
  • Last Reply

Top Posters For This Question

Popular Days

Top Posters For This Question

5 answers to this question

Recommended Posts

  • 0
  • Retraité

Ce que je veux dire par là, si par exemple les sources d'un jeu sont publiés (prenons exemple avec AK), il faut bien créer un émulateur pour le faire fonctionner ?

Il faut bien différencier client et serveur. Le fait qu'un éditeur partage les sources de son jeux ne suffit pas pour pouvoir émuler ce jeux; nous avons le client, mais il manque le principal : le serveur avec lequel le client communiquera, qu'on doit alors coder nous même à part si la société (lel) partage le sien. Mais ce n'est a ce moment là plus un émulateur, mais bien le serveur authentique.

 

 

Mais comment ça se passe pour la liaison Emulateur --> Sources ?

A quoi sert l'émulateur (me donné pas la définition je la connais) du moment que l'on a les sources ?

Comme je viens de le dire, il y a le client et le serveur.

Ce que tu appelles 'Sources' peut donc désigner le code source du client comme celui de l'émulateur. Mais je suppose que tu fais allusion à celui du client : la liaison se fait alors par l'établissement d'une connexion (socket) généralement en TCP entre les le client et le serveur. Une fois la socket 'mise en place', les 2 partis communiquent à l'aide de paquets, plus simplement des messages. C'est alors à chaque jeux ou application réseau en général de fixer son propre protocole afin de déterminer la structure des messages échangés.

Par exemple, les 4 premiers octets de tous les paquets envoyés par le serveur contiendront le numéro de l'action à exécuter (opcode/operation code) ; le client saura alors quoi faire avec cette première information.

 

Notons qu'il n'est pas nécessaire d'avoir le code source d'un jeux pour l'émuler : l'important est de connaître la structure détaillée des paquets en question obligatoirement connue du client, ce qui peut se faire par l'étude du code source mais aussi par le sniffing puis l'étude des paquets transitant entre le client et le serveur officiel : c'est tout de suite plus compliqué et fastidieux à faire. Il faut aussi pouvoir modifier l'adresse du serveur distant, chose généralement configurable dans un fichier config de l'application.

 

EDIT : Bien que la majorité des jeux utilisent une architecture Client-Serveur, certains peuvent aussi utiliser une architecture Peer-to-Peer ; il n'y a alors plus de serveur & l'ensemble du fonctionnement de l'application est accessible par l'utilisateur (en tout cas physiquement en sa possession).

Link to comment
Share on other sites

  • 0
  • Retraité

Merci pour ta réponse, tu m'as éclaircis.

 

Si je comprend bien ce que tu as dit, si la société publie le code source, il faut coder le serveur Auth pour l'interaction Client - Serveur ? Donc si on code le server Auth, peut-on dire que nous avons coder un émulateur ?

Concernant les OpCodes, je vois un peu de quoi tu parles.

En gros si on arrive à avoir tous les OpCodes détaillés côté client, on peut faire le côté serveur ?

Link to comment
Share on other sites

  • 0
  • Retraité

Merci pour ta réponse, tu m'as éclaircis.

 

Si je comprend bien ce que tu as dit, si la société publie le code source, il faut coder le serveur Auth pour l'interaction Client - Serveur ? Donc si on code le server Auth, peut-on dire que nous avons coder un émulateur ?

Concernant les OpCodes, je vois un peu de quoi tu parles.

En gros si on arrive à avoir tous les OpCodes détaillés côté client, on peut faire le côté serveur ?

 

Comme je l'ai dit, il n'y a pas forcément besoin du code source du client. Après en pratique, pour décrypter le mot de passe sans aucun doute crypté par le client sans avoir accès à l'algorithme, je vois difficilement comment c'est possible. Mais même si la société  n'a pas partagé son code source, il est bien entendu possible de l'obtenir par décompilation, en espérant que x sécurité comme une obfuscation ne rend pas le code source trop illisible.

 

Et donc oui, faire un émulateur est ni plus ni moins que coder un serveur qui 'émulera' (simulera) du mieux qu'il peut le serveur officiel.

En dehors des opcodes, il est impératif de connaître la structure des paquets de A à Z :

structure du header (contenant entre autres l'opcode) qui peut éventuellement varier suivant s'il est envoyé par le serveur ou client, mais aussi savoir comment sont délimités les paquets : taille du paquet est-elle renseignée dans le header, ou existe-t-il un ou plusieurs caractères délimitant chaque paquet ? ...

Link to comment
Share on other sites

  • 0
  • Retraité

Nicky m'a expliqué par Skype et j'ai réussi à comprendre en prenant l'exemple de metin.

 

( Serveur sur Metin c'est: Auth + DB + GAME)

Toute façon, j'ai proposé de faire un tutoriel là dessus, pourquoi pas :P

Merci à lui

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share



  • Flux d'Activité

    1. 1

      Antares2.to | modern Old-/Middleschool | START 07.10.22 | International Server

    2. 0

      Projet Genesis

    3. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    4. 0

      Metin2 Champions - Accès anticipé

    5. 0

      Barbok

    6. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.