Document technique sur les protocoles HL1/Source terminé
04/08/2005 18:40:40
Suite à mon précédent document sur les protocoles d’Half-Life 1, il m’a semblé nécéssaire d’écrire un nouveau document pour décrire le protocole de Source d’une part, et le nouveau protocole d’Half-Life 1 (basé sur Source) d’autre part.
C’est désormais chose faite : document sur les protocoles d’Half-Life et Source
Je copie colle ma présentation :
Ce document est purement théorique. Il décrit les échanges entre un client et un serveur durant les opérations suivantes :
- Interrogation du serveur MASTER : lorsque vous cherchez des parties en utilisant le navigateur intégré à Steam, c’est ce serveur qui fournit la liste des serveurs de jeu en activité. En étudiant le protocole utilisé lors de cette opération, vous pouvez récupérer vous-même des listes et les utiliser à toutes fins utiles.
- Interrogation d’un serveur Half-Life 1 ou Source : le master ne renvoie que des listes d’adresses IP. Le protocole d’interrogation (query) des serveurs vous permet d’interroger un serveur de jeu en particulier et d’obtenir de lui 3 types de données : informations générales (nom, map en cours, mod, etc.), liste des joueurs sur le serveur, et CVARs publiques (règles).
- RCON : cette fonctionnalité bien connue des administrateurs de serveurs de jeu permet d’accéder à la console d’un serveur à distance afin d’y effectuer des opérations d’administration (changements de map, banissement, manipulation de CVARs…). Ce document décrit le protocole dans lequel sont encapsulées les commandes envoyées à la console ainsi que les réponses du serveur.
- Log distant : ce mécanisme proche du RCON consiste à envoyer les logs (journaux) depuis le serveur vers une machine distante, et ceci en temps réel. Extrêmemement puissante, cette fonctionnalité permet, en fonction du niveau de détail des logs, d’être notifié des fins de round aux changements de CVARs en passant par le chat, voire même des dommages infligés entre joueurs !
Bonne lecture.
mOrbide a répondu le 05/08/2005 à 12:43 #
Excellente doc
Merci.
En passant, les fortunes de NoFrag, un peu plus bas, sont terribles ^^
Bonne continuation.
Ultiny a répondu le 07/08/2005 à 21:00 #
Très beau document, il est très clair, complèt et bien détaillé.
Je vous remercie, je vais pouvoir m’attaquer à ce truc bizard qu’on appel fsockopen()
e-t172 a répondu le 07/08/2005 à 21:04 #
Ultiny, je te conseille plutôt l’extension sockets : fr2.php.net/sockets
Un peu plus compliqué de prime abord, mais tellement plus propre et plus contrôlable.
3.14 a répondu le 01/01/2008 à 19:04 #
Salut;
Merci pour cette doc tres bien faites.
Je me permet de faire un ptit ajout aprés mettre cassé la tête dessus :
Lorsque l’on veut faire la requete PLAYERS sur un serveur source (pas tester sur hl1) le code a envoyer n’est pas toujours le même c’est pour cela qu’une etape est a faire precedement pour recuperer ce code, la requete est :
0xff 0xff 0xff 0xff 0×55 0xff 0xff 0xff 0xff
et l’on recoit :
0xff 0xff 0xff 0xff 0×41 //LE CODE SUR 4 Bytes//
Si ca peut servir a qqun.
@++
e-t172 a répondu le 02/01/2008 à 20:19 #
Ah oui oui. Le challenge varie au cours des sessions. Il ne reste valable qu’un temps limité. Il faut redemander un challenge avant d’envoyer une nouvelle série de requêtes. Ce n’était probablement pas très clair dans la section sur le Challenge.
JavaNaise a répondu le 07/03/2008 à 15:13 #
Bonjour,
Bonjour, je serais aussi très intéressé par ces documents, malheureusement, les liens sont morts, alors qu’on début de l’année, il marchaient encore. Serai t-ils possibles de poster les nouveaux liens si ils existent ?
Merci
e-t172 a répondu le 07/03/2008 à 16:52 #
http://www.e-t172.net/blog/articles
Je vais modifier le billet.