OGC : Protocole & fonctionnement
jeudi 8 avril 2004, par Bech ()
Principe de fonctionnement / utilisation
Le serveur OGC enregistre une liste de partie de jeu en cours / en attente de joueur sur internet. Il permet aux jeux d’enregistrer des parties ou d’obtenir une liste de partie.
Connexion au serveur
Vous devez donc utiliser un socket UDP pour vous connecter au serveur. Celui-ci est configuré par défaut sur le port 11111. Le numéro de port pour le client doit être le 11100, mais en réalité le serveur retourne ses réponses sur le port utilisé par la connexion.
Un serveur OGC de test est disponible sur : "x.yz.to:111111"
Les échanges avec le serveur se font sous forme d’une chaine de caractères. Cette chaine est au format suivant :
COMMANDE ’ :’ Param1 #9 param2 #9 ...
(La commande est suivie de deux points, les paramètres sont séparés par des tabulations)
Héberger une partie de jeu
Pour indiquer au serveur une partie de jeu disponible sur le net, vous devez lui transmettre les informations à l’aide de la commande GAME. Cette même commande est utilisée pour mettre à jour les informations sur la partie. Vous devez donc renvoyer toutes les informations quand le nombre de joueurs change par exemple.
Une fois la partie engagée, vous pouvez la faire disparaitre de la liste en envoyant la commande QUIT.
Rejoindre une partie
Après une connexion au serveur, vous devez lui demander la liste des partie disponible à l’aide de la commande LISTGAMES. Le serveur vous retourne alors cette liste et continuera de vous envoyer les modifications jusqu’a l’envoi de la commande LISTQUIT.
Exemple :
LISTGAMES:MonJeu
[...]
LISTQUIT:
Liste des commandes
GAME :
| Paramètre | Description |
|---|---|
| Game | Nom du jeu |
| Version | Version du jeu |
| NetName | Nom de la partie |
| NetType | Type de protocol réseau (TCP4,TCP6,UDP4,UDP6) |
| CurPlayers | Nombre de joueurs connectés |
| MaxPlayers | Nombre de joueurs max. |
| Status | Etat de la partie / message |
Cette commande permet d’ajouter ou de modifier une partie de jeu sur le serveur. Pour le status, le serveur ne prend en compte que les 6 premiers caractères. Ce champ permet de stocker des informations propre au jeu sur la partie.
QUIT :
Indique au serveur d’enlever la partie de jeu dans la liste.
LISTGAMES :
| Paramètre | Description |
|---|---|
| Game | Nom du jeu |
Permet d’obtenir la liste des parties disponible pour un type de jeu.
LISTALL :
Permet de demander au serveur d’envoyer la liste complète des parties de jeux en cours, sans faire de selection sur un type de jeu.
LISTQUIT :
Indique au serveur que le client ne doit plus recevoir d’information sur les changements dans la liste complète des parties disponible. Permet de quitter le mode de LISTGAMES ou LISTALL.
Réponses du serveur
ENTRY :
| Paramètre | Description |
|---|---|
| IDNum | Numéro/id de la partie de jeu |
| Host | Adresse IP de la machine qui héberge la partie |
| Port | Numéro de port du socket sur la machine qui héberge la partie |
| Game | Nom du jeu |
| Version | Version du jeu |
| NetType | Type de protocol réseau (TCP4,TCP6,UDP4,UDP6) |
| NetName | Nom de la partie |
| Status | Etat de la partie / message |
| CurPlayers | Nombre de joueurs connectés |
| MaxPlayers | Nombre de joueurs max. |
Le serveur transmet les nouvelles parties (ou les parties modifiées) par le biais de cette commande.
DELENTRY :
| Paramètre | Description |
|---|---|
| IDNum | Numéro/id de la partie de jeu |
Indique la suppression d’une partie de jeu de la liste du serveur. Le seul paramètre transmis est l’IDNum de la partie.
Ex : DELENTRY:16