Un bug Steam vieux de 10 ans
(blog.freudenjmp.com)Un problème Steam vieux de 10 ans chez Valve : tout le monde est-il trop rapide pour Valve ?
- Valve semble parfois ne pas répondre aux retours de la communauté ni aux signalements de bugs.
- Histoire d’un bug vieux de 10 ans.
tl;dr
- Plusieurs solutions populaires pour corriger le problème
No user logonde Counter-Strike, qui persiste depuis plus de 10 ans, ne traitent en réalité pas la cause profonde. - Si vous avez trouvé cet article via Google, n’essayez pas les solutions suivantes :
- réinstaller le jeu
- vérifier les fichiers du jeu
- redémarrer Steam
- redémarrer l’ordinateur
- désactiver le Wi‑Fi
Introduction
- Counter-Strike est un jeu célèbre développé par Valve.
- Counter-Strike 2 (CS2) est sorti récemment et a remplacé Counter-Strike: Global Offensive (CS:GO).
- CS2 contient de nombreux bugs, ce qui dégrade l’expérience de jeu.
- Valve n’a pas inclus CS2 dans son programme de bug bounty HackerOne et ne verse donc pas de récompense pour les signalements de bugs liés à CS2.
No user logon
- Des bugs signalés par la communauté depuis des années ne sont toujours pas corrigés et existent aussi dans CS2.
- L’erreur
No user logonsurvient aléatoirement pendant une partie. - Ce problème a été signalé à de nombreuses reprises sur différents forums ainsi que sur le forum officiel d’assistance de Valve.
- Les solutions proposées ne corrigent pas réellement le problème.
Esportal specific
- Esportal rencontre aussi ce problème depuis plusieurs années et n’est parvenu qu’à en réduire la fréquence, sans le résoudre réellement.
- Dans CS2, le problème a d’abord semblé corrigé, mais les signalements ont de nouveau augmenté durant la première semaine de janvier 2024.
The symptoms
- L’erreur
No user logonsurvient 2 à 3 minutes après qu’un joueur s’est connecté à la partie. - Cela pourrait être lié au fait que les skins n’apparaissent que plusieurs minutes après le début de la partie.
Validation of the hypothesis
- Il est très probable qu’il s’agisse d’un problème lié à l’authentification Steam.
- Le temps nécessaire pour que
STEAM USERID validatedse termine avec succès était de 2 à 3 secondes avant le 3 janvier, puis il est passé à environ 1 minute 20.
NETWORK_DISCONNECT_STEAM_LOGON
- Cela ressemble à un bug lié à l’authentification Steam.
- Un log contenant
STEAMAUTH: Client Bob received failure code 8a été observé.
Steam3 validation
- Les serveurs Steam3 sont responsables de l’authentification des utilisateurs.
- Le serveur de jeu demande aux serveurs Steam3 de vérifier la validité d’un Steam ID.
- Pendant que les serveurs Steam3 effectuent cette vérification, le joueur peut continuer à jouer, mais les skins ne sont pas attribués.
Making it trustable
- Une procédure est nécessaire pour vérifier si
CS2.exeest digne de confiance. Steam.execonnaît le compte actuellement connecté et vérifie qu’il correspond bien au Steam ID envoyé parCS2.exe.
NETWORK_DISCONNECT_LOOPSHUTDOWN
- Il existe une autre raison de déconnexion,
NETWORK_DISCONNECT_LOOPSHUTDOWN. - Cela signifie qu’une tentative de reconnexion est automatiquement déclenchée par le jeu lui-même.
Loops in the Source engine
- Le moteur Source utilise des boucles qui s’exécutent jusqu’à ce qu’un objectif précis soit atteint.
CS2.exeexécute plusieurs boucles, puis finit par lancer la bouclegame.
The disconnection
- Quand une boucle se termine, la connexion peut être coupée avec
NETWORK_DISCONNECT_LOOPSHUTDOWN.
CS2 startup procedure
- Au démarrage,
CS2.exeexécute plusieurs boucles, et la bouclelevelloadlance la vérification du Steam ID avant de basculer vers la bouclegame.
Avis de GN⁺ :
- Cet article propose une analyse approfondie du bug
No user logon, resté non résolu pendant longtemps dans la série Counter-Strike de Valve. Il aide à mieux comprendre les difficultés du développement et de la maintenance des jeux. - Le fait que Valve ne réponde pas de manière appropriée aux retours de la communauté et aux signalements de bugs souligne l’importance de la communication entre les développeurs de jeux et les utilisateurs.
- Cet article montre bien la complexité de l’ingénierie logicielle ainsi que les défis du suivi et de la résolution des bugs. Il met en avant la nécessité d’une approche systématique pour les corriger.
1 commentaires
Avis Hacker News
Le premier commentaire explique le système de ticket de session de Steam : le client du jeu demande un ticket de session aux serveurs Steam, puis le fournit au serveur du jeu pour prouver son Steam ID. Le serveur du jeu doit valider ce ticket via l’API web de Steam, et le commentaire souligne que le client CS2 semble mal gérer les cas où l’obtention du ticket de session est retardée.
Le deuxième commentaire estime que la conclusion de l’article n’est pas claire, évoque les problèmes liés à la manière dont Counter-Strike démarre, ainsi que la possibilité qu’une opération de maintenance à Washington provoque des problèmes pour des joueurs du monde entier. Il explique aussi que, comme la vérification du Steam ID constitue la dernière étape avant le lancement de la boucle du jeu, un ralentissement des serveurs pendant une maintenance peut empêcher le démarrage de la partie.
Le troisième commentaire signale comme bug le fait qu’il ne soit pas obligatoire de terminer l’authentification avant de lancer une partie multijoueur.
Le quatrième commentaire se demande si la même méthode d’investigation pourrait être utilisée pour analyser la cause des plantages inattendus du client de jeu, en mentionnant une étude sur la réduction du temps de chargement de GTA V.
Le cinquième commentaire juge le style de l’article trop exagéré et suggère d’aller plus vite à l’essentiel.
Le sixième commentaire propose d’ajouter au début de l’article un court résumé de la solution au problème.
Le septième commentaire demande si
levelloadloopne s’exécute qu’au démarrage du jeu, ou aussi lors de la connexion au serveur et du chargement de la carte.Le huitième commentaire souhaite une amélioration des performances de l’application Steam sur macOS.
Le neuvième commentaire pointe les problèmes de sécurité de Valve et mentionne que CS:GO a été exclu du périmètre pour de nouveaux signalements.
Le dernier commentaire partage une ancienne expérience de création d’un outil affichant la liste des serveurs et les scores des joueurs actifs, et soulève la possibilité que de vieux bugs existent encore.