Général

Document netcode : réactions et mises à jour

Mon document a suscité un nombre particulièrement impressionnant de réactions et de commentaires (je ne m’y attendais pas !). Il convient de noter que pour le moment, je n’ai remarqué aucune réaction négative dans les news comme dans les commentaires desdites news, ce qui me surprend encore plus étant donné le sujet houleux et controversé de mon document. Tout porte à croire que j’ai réussi à convaincre même les plus bornés.

Notons également que ce document a subi deux mises à jour particulièrement importantes, sur les FPS serveur et sur le calcul du ping.

Document technique sur les protocoles HL1/Source terminé

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.

Stargate TC Solo, ou comment devenir artisan

Stargate TC Solo est sorti il y a quelques jours. Je vais annoncer tout de suite le ton du billet : le système de gestion de ce mod est tellement merdique qu’on pourrait presque en rigoler. Explications.

Premièrement, on a des instructions d’installation plutôt confuses :

Installation SGM:

Ne pas changer le repertoire d'SGM à l'installation si vous
installez SGM sous WON.
Veuillez à l'installer sur le bon disque dur (si partitionné),
et dans le repertoire « sierra ».
ex: si Half life est dans D:\sierra\half-life...
Laissez le chemin d'installation qui sera D:\sierra

Lorsque que l'installation vous demandera un Half-life.gcf,
cliquez sur « annuler » et terminez l'installation.

----------------------

Ensuite pour Steam, vous pourrez installer SGM où vous voulez...
[ndlr : Sans dans le répertoire de Steam...]

Lorsque l'installation vous demandera un fichier Half-life.gcf,
vous le trouverez dans le repertoire Valve/Steam/STEAMAPPS/Half-life.gcf
=> exclusivement pour les personnes jouant avec STEAM.

Et enfin, pour lancer SGM, allez dans votre repertoire
sierra/Half-life/sgm/mm2

et double clickez sur mm2.exe
Le manager de mission se lancera et vous pourrez jouer.

Deux remarques : l’emplacement de Half-life.gcf peut être déterminé automatiquement, et ils pourraient faire un raccourci pour le mm2.exe. Mais attendez, ceci n’est qu’un détail comparé à ce qui va suivre, accrochez vous bien à votre chaise.

Je lance donc la fameuse installation. Utilisant Steam, j’installe le mod dans C:\sgm. J’attends que la rituelle barre de progression se remplisse, et je me retrouve en face de ça :

Configuration en cours... et fenêtre DOS

Woah, une fenêtre DOS, quand j’ai vu ça je me suis dit que la suite pourrait avoir quelques points communs avec le parcours du combattant. Force est de constater que c’était le cas.

Après une (très) longue attente (pendant laquelle j’ai fini par me demander si mon ordi n’était pas planté), je vois apparaître la fenêtre mentionnée dans les instructions d’installation :

Fenêtre classique de séléction de fichier

Je me suis donc mis en quête de mon Half-Life.gcf (se trouvant dans mon répertoire SteamApps). Tout en cherchant, je me suis demandé pourquoi la navigation dans les dossiers était si lente. J’ai ouvert mon gestionnaire de processus et je me suis rendu compte que le programme de « configuration » bouffait tout simplement toutes les ressources système disponibles. Impressionnant pour un programme qui ne fait rien en attendant que je lui donne son fichier.

Après avoir validé, j’attends encore très longtemps et j’arrive à la fin de l’installation avec un message très professionnel :

Installation créée par Clickteam installer

Avant de lancer le fameux mm2.exe, je prend le temps de regarder ce qu’il a foutu dans mon c:\sgm. Et là, tenez vous bien : SGM a installé une veille version de Half-Life sous WON dans le répertoire ! Nous voici donc revenus deux ans en arrière, avec une vieille interface graphique et une vieille version du jeu. Moi qui pensais ne plus jamais réinstaller WON, on l’a fait à mon insu. Ben tiens.

Mais entrons dans le vif du sujet. Je vais dans C:, puis sgm, puis sgm, puis mm2, et enfin mm2.exe (là encore, très pratique l’absence de raccourci). Je me retrouve en face de ça :

Le Mission Manager

C’est donc le fameux Mission Manager codé par fag. On remarque tout de suite les très jolis noms de missions à gauche (j’ai toujours aimé les underscores) ainsi que le fait que déplacer une fenêtre par dessus ce programme redessine la fenêtre d’une manière tellement sale que ça bouffe tout le CPU.

Jouons donc. Je clique sur jouer et qu’est ce qui s’affiche ?

UHARC

Gnein ? Visiblement, lorsqu’on lance une mission, le Mission Manager décompresse les fichiers de la map avant de la lancer. Au départ je me suis dit « mais quel intérêt ? » et j’ai fini par comprendre. Décodage.

Il y a deux informations clés sur cette photo d’écran : le fait qu’il décompresse depuis une archive s’appellant zo_idle1.wav (une archive dans un fichier .wav ???) et le fait qu’il utilise un mot de passe pour décomprimer (Using password). Le fichier zo_idle1.wav se trouve dans sgm\sound\zombie\zombie_old. J’ai fini par me rendre compte que tout ce dispositif très lourd, lent, chiant et artisanal n’avait que pour seul but d’empêcher le joueur de jouer une mission sans avoir terminé les précédentes.

Oui, vous avez bien lu. Fag a compressé dans le format le plus obscur qu’on aie pu trouver (afin de donner le plus de mal à un cracker de mot de passe pour l’archive) dans un fichier avec une fausse extension et un nom anodin lui même mélangé aux fichiers du jeu et protégé par mot de passe. Et tout ça pour quoi ? Pour éviter que l’on triche sur un mod SOLO ! C’est à se pisser dessus de rire. Mais attendez, c’est même pas fini.

A la fin de la décompression, on me demande ça :

On me demande ma clé CD

Ce message m’est familier et il est tout à fait normal qu’il s’affiche vu qu’il a installé Half-Life WON sans entrer la clé dans le registre. En revanche, quelqu’un de moins expérimenté se demandera probablement depuis quand SGM est vendu en boîte.

Je vais chercher ma boîte d’Half-Life, j’entre ma clé et je presse OK. Je vois le « chargement » caractéristique de Half-Life WON (ça me rappelle de vieux souvenirs) et je me détends, soulagé et étonné que tout cet artisanat arrive à fonctionner. Mais là, c’est le drame :

On me demande ma clé CD

Forcément, avec une daube pareille, ça ne pouvait marcher correctement. C’est comme réparer une voiture avec du Scotch : ça marche, mais ça tient jamais bien longtemps.

J’ai regardé ce qui n’allait pas et j’ai constaté que le répertoire Valve, censé contenir les fichiers de base à tout mod, était quasiment vide. J’en ai déduit que le dispositif à l’installation censé extraire les fichiers d’Half-Life à partir du GCF de Steam a échoué. J’ai testé en réinstallant après avoir fermé Steam, même résultat.

J’ai donc utilisé GCFScape pour extraire manuellement ces fichiers. (quelqu’un de moins experimenté n’aurait donc pas pu jouer) Après cela, le mod a enfin daigné fonctionner correctement. La première image que j’ai vue était un Daniel Jackson qui avait la même voix que les scientifiques de Half-Life et qui se comportait exactement pareil. Trop c’est trop, j’ai quitté le jeu et supprimé cette merde.

L'artisanat. Première entreprise de France.

Mais ce n’est toujours pas fini !

Eh oui, après avoir désinstallé le jeu, vous vous demandez bien ce qui a pu encore m’arriver. Mais malheureusement, force est de constater que ce programme agit comme Tchernobyl : ça pète, ça pue et ça laisse des traces. Voici pourquoi.

Afin de me changer les idées et de jouer à un VRAI mod, je lance HLSW et je choisis un serveur Natural Selection. Pendant le chargement, il se met à télécharger… ns_eclipse. ns_eclipse ? C’est une map officielle déjà incluse dans le jeu ! Intrigué, je me rends dans mon répertoire de maps NS et là, horreur et stupéfaction :

Plus de maps !

Mais où sont donc passés tous les .bsp ?? Après vérification, j’ai vu ce qu’on pourra désormais baptiser le summum de la merde. Tenez vous bien, l’installation de SGM a supprimé toutes mes maps NS qui n’ont rien à voir avec Stargate ! Comment fag a-t-il fait pour réussir cette prouesse technique, je n’en sais rien, mais son Mission Manager se rapprocherait plus d’un virus que d’une interface de jeu.

Et voilà comment un mod prometteur se transforme en véritable merdier.

Au passage, visiblement l’équipe solo Stargate TC s’est rendue compte de l’énorme bourde qu’ils avaient faite et est en train de sortir une version du mod sans Mission Manager. Qu’ils fassent vite.

Protocole Skype : crypté et fermé

Après avoir consulté et admiré le complexe protocole de MSN Messenger (coder une méga-classe client en PHP fait partie de mes nombreux projets, peut-être la verrez-vous pointer le bout de son nez), j’ai été pris de curiosité et j’ai été voir le protocole de Skype.

Je dois dire que j’ai été un brin déçu : le document n’explique que de façon générale le fonctionnement du réseau Skype (avec des nodes et des supernodes, comme KaZaA) et la manière dont il arrive à se connecter malgré un NAT ou un pare-feu. Les seuls messages décrits sont les messages de login.

Explications à cela : tout le protocole Skype post-login est crypté en AES (utilisé entre autres par le gouvernement américain). Du coup, impossible de savoir ce que les machines se disent et encore moins d’espérer coder un client Skype tierce partie.

Seul côté positif de l’histoire : au moins, on est sûr que nos conversations sont très bien sécurisées.

MSN.com aux standards : une lueur d’espoir ?

MSN et MSN Search sont passés tableless (sans tableaux).

Doit-on y voir une lueur d’espoir pour un meilleur support des CSS dans Internet Explorer 7 ?

Ne crions pas victoire trop vite : les différentes branches de la multinationale sont parfois contradictoires… regardez IE pour Mac et son support des standards excellent, et à l’opposé la version Windows qui est tout le contraire ! Le passage aux normes du portail de l’entreprise est encourageant mais ne veut finalement pas dire grand chose vis à vis d’une éventuelle conformité de IE7.

Néanmoins, il est amusant de se dire que les développeurs Web de MSN ont dû pas mal en chier pour que leurs pages soient compatibles avec leur propre navigateur !