Commentaires : GTA Online : un modder réduit massivement les temps de chargement, de 6 à moins de 2 minutes

GTA Online est connu pour ses longs temps de chargement, même avec un SSD. Un moddeur a trouvé la source du problème et sa solution.

1 « J'aime »

Pourquoi ne pas en parler sur un Twitter en nommant Rockstar, et s’il y a assez de RT ça aura peut-être du poids ? Ou alors ils s’en battent les c***lles vu qu’ils se font assez de pognon à l’heure qu’il est ? xD

1 « J'aime »

Le post original du gars qui a trouvé le problème a 4 jours.
A quoi vous attendiez vous exactement ? Qu’ils sortent un hotfix en urgence alors que le problème perdure depuis des années ? On ne parle pas d’une faille critique de sécurité. Y a pas une telle urgence non plus.
Je n’ai pas vraiment de doutes sur le fait que R* va fixer le problème suite à la parution des divers articles à ce sujet, pas besoin de les spammer.

Ils foutent déjà rien contre les « modder » Qui détruisent tout un serveur. Donc le temps de chargement faut pas rêvé.

1 « J'aime »

C’est clair que si l’on compare la différence de temps de chargement entre GTA Online et Red Dead Redemption 2 Online, c’est la jour et la nuit
Alors ; ok ; les deux jeux ne sont pas de la même époque, mais quand même.
Concernant cette DLL a mettre à la racine du jeu, je suis sûr que Rockstar détecterai cette modification comme un hack et il y aurai un ban temporaire ou définitif du compte.
En effet, la seule solution serait de re-tweeter un Tweet à ce sujet et en taggant le compte de Rockstar Games ; et encore…

Reste encore à savoir, si ce process est normal/voulu pour une raison connue de rockstar ou non.

Le jeu lit en effet un par un les 63 000 objets achetables dans le jeu, listés dans un document texte. Une fois cela fait, il compte ensuite chaque caractère présent dans ce même fichier, ce qui requière donc une activité plus importante que nécessaire pour le processeur.

C’est surtout la façon dont le fichier json est parsé qui est très lente : utilisation de scanf pour lire chaque valeur; or sscanf appelle strlen pour calculer la longueur restante du contenu du fichier. Un fichier de N charactère est parcouru N*N/2 fois. Ici la taille de ce fichier est 10 mega-octets ou environ 10 millions. Avec la mise au carré, c’est « normal » que ce code mal écrit soit très lent.

… [le jeu] associe à chacun de ces objets une sorte d’empreinte numérique et vérifie ensuite la valeur de ces empreintes pour les objets mis en magasin contre celle des objets déjà présents sur ce dernier. Un processus aussi fastidieux que complexe qui mène in fine à des temps de chargement anormalement longs

Ce n’est pas un processus fastidieux si bien fait : il suffit d’avoir un set des hash déjà insérés, ce qui donne des vérifications très rapide. Mais là, pour chaque nouvel objet, le code de Rockstar parcoure tout le tableau des objets déjà lus et les comparent. Pour N objets, il y a N*N/2 comparaisons; ce qui est une approche débilement lente.

3 « J'aime »

Merci mon homonyme pour ces précisions très intéressantes !

Au mieux une tape dans le dos de Rockstar, « c’est bien tu bosses bénévolement pour nous qui nous faisons des c… en or » ou sinon il aura droit à un e-mail d’avocat pour atteinte à la propriété intellectuelle s’il diffuse son correctif

Le correctif est déjà librement accessible.
L’atteinte à la propriété intellectuelle ne me semble pas applicable : il n’a pas eu accès à leur code source, il a juste utilisé des outils standard de débugage.

6 minutes de chargement !!
Au bout de 30 secondes, je trouve ca deja long…

comprends pas que se soit toujours les moddeurs qui fassent le boulot et gratuit. heureusement GTA est bien uniquement en solo comme RDR2. SOLO !

1 « J'aime »

Si il met 6 minutes pour charger le jeu, c’est avec son finisseur d’accès qu’il doit voir , Rockstar n’y est pour rien
Ou son PC est en carton ?

Ca me gave rien qu’avec les poignées de secondes de « Recherche d’extension » systématique au démarrage des derniers assassin’s creed (odyssey, valhalla… ) alors des minutes…
Cela ajoute du contenu 1 fois par semestre mais cela te bloque a chaque lancement du jeu, cela me semble aussi un peu mal foutu.

C’est la raison pour laquelle moi et mes amis on a arrêtés GTA Online à l’époque. C’est dommage, il il y a plein de contenu, mais quand tu es 3 dans une partie et que les braquage se font a 4 et que le quatrième est un joueur lambda qui déconnecte direct quand la partie se lance (partie qui a déjà mis 20 min à trouver un quatrième joueur et 10 minutes à se lancer) et que du coup t’es obligé de te retaper un chargement pour quitter la partie, retrouver, un joueur, recharger… bref au bout de deux fois tu lâches l’affaire et tu changes de jeu…

1 « J'aime »

Non, c’est bien du code mal écrit qui tourne à 100% sur un coeur de CPU pendant plusieurs minutes. Voir mon explication au dessus. Le réseau et le GPU restent eux à 0% d’utilisation.

Oui c’est ca, même avec une RTX 3060, un i7, 64 Go de RAM et la meilleure connexion Fibre que Orange peut offrir dans ce pays, c’est la même chose, on est face à du code bidon, mal écrit qui bourrine tout simplement le processeur (CPU). Quand à RockStar, ban des joueurs, car ils ont amélioré le jeu en le moddant, c’est ridicule, du coup, poubelle le jeu. :wink:

Le pire, c’est qu’avec des HashSets, la complexité pour rechercher l’existence de doublons est généralement O(1). Donc l’algo pour éviter les doublons sur n objets serait de complexité O(n) (au lieu de O(n²)).

Le mec a complètement zappé cette étape, mais la garder tout en la programmant correctement diviserait par 63 000 la durée de cette étape (donc quelques millisecondes plutôt que quelques minutes).

C’est pour ça que j’y est jamais joué, moi qui n’a jamais le temps et fait de petite partie, je me vois mal perdre 7min entre le tps de chargement et pour quitter le jeu. C’est vraiment de la dau**, j’ai fait le solo et j’en suis très content, dommage pour le online.

On a gagné =D