For a long time, GTA5 players have been plagued by the unusually slow loading speed of the game. Although the game has been on sale for more than seven years, the player community has more or less upgraded the equipment configuration, and the speed of reading the offline story mode has also been shortened to 1-2 minutes.
However, GTAOL in the online mode does not seem to be affected by the increase in player configuration, and it has not received any optimization from the R star in the past seven years. From entering the game to see the huge LOGO of the R star, to successfully entering the online mode to gain control of the character, this process still takes several minutes.
Before visiting Los Santos, staying in Los Santos to “see the clouds” has become the daily life of every GTAOL player.
Everyone is a cloud player
According to a secret vote of 271 participants initiated by Reddit 7 months ago, only a few players with high-end configuration PCs or next-generation consoles can enter GTAOL within 3 minutes, while players who do not enjoy this experience Occupies 81.2%.
Players have also tried to find the reason for the extremely slow loading speed of GTAOL. Some people attribute the problem of slow loading to GTAOL’s P2P battle system, which forces players with different network environments to interconnect, and data synchronization is difficult, resulting in slow loading. It is also believed that the reading speed of the hard disk will affect the speed of reading the model from the game file, which in turn affects the loading speed.
In addition, there is a kind of metaphysics that is popular in the player community, that is, entering the story mode first and then entering the online mode, which is a few seconds faster than directly entering the online mode from the main menu.
However, this kind of metaphysics is not as real as the patch recently released by T0ST. He just cracked and rewrote the program code, which shortened the loading time of GTAOL by nearly 70%.
T0ST picked up GTAOL again last month, his old computer configuration is not high, it takes about 6 minutes to read the online mode. T0ST was unable to understand why the reading time of an online game with a history of seven years was still so long, so it started the research based on the results of the Internet search and the personal computer.
T0ST first opened the task manager of GTA5 and Win10 at the same time. The task manager shows that when GTAOL enters the reading screen, the computer’s hard disk occupancy rate is completely negligible; the network occupancy rate was very high at first, and then dropped to a low level after two minutes.
It is worth noting that the CPU occupancy rate has remained high in these few minutes, always staying at around 60%-70%, and only one of the eight core processors of the CPU is continuously operating.
The CPU single-core performance used by T0ST is not excellent, so the speed of reading GTAOL is significantly behind the same configuration; but this cannot explain the unusually high CPU usage during game reading. Since it was impossible for him to get the source code from the R star, he had to proceed to disassemble it himself, find the file that exhausted the CPU performance, and decipher part of the code in the file that was not strictly encrypted.
This CPU-consuming file is responsible for importing a 10MB JSON file. The file records all the items that players can buy in the game-vehicles, facilities, and weapons. There are about 63,000 items in total.
T0ST found that the efficiency of importing files and items into game code is extremely low. First, every time the code parses an item in the JSON document, it recalculates the number of characters in the document, which requires 63,000 calculations.
Secondly, after the code analyzes an item, it needs to read the relevant data of the item. Every item has data linked to it, such as the price of the item, the speed of a car, the attributes of a weapon, and so on. There is a one-to-one correspondence between the item and the item data through the hash algorithm. This specific value is like the ID number of the item, which is convenient for code query.
In order to prevent duplication of “ID number”, resulting in file conflicts and game errors, before each game imports an item and its data, the code will routinely check the algorithm values of all other items to avoid duplication. This check must be repeated 63000 Times.
T0ST math, GTAOL’s reading work requires a total of about 1984531500 calculations, which is indeed a lot of work for the CPU.
However, tens of thousands of repeated calculations of document characters are meaningless in themselves, and the algorithm values corresponding to the article and article data are unique after T0ST verification, and there will be no repetition at all. Therefore, in these nearly 200 million calculations, Most calculations are wasting electricity.
So T0ST wrote two patches by himself. In response to the first problem, T0ST created a cache. When the R star code tries to calculate the number of characters in a document, it will read the data in the cache, reducing the number of calculations from 63,000 to only one time for reading the cache. The second problem is better solved. T0ST allows the code to skip the step of checking the algorithm value and directly saves hundreds of millions of calculations.
With these two patches, the reading speed of GTAOL on the T0ST computer has been shortened to 1 minute and 50 seconds, an increase of 69.4%.
The problem that the R Star team has not solved for seven years, T0ST solved it in less than a day. On February 28, T0ST published a blog to record his test results, and released the patch and source code for players to download.
However, he also pointed out that the optimization effect of the patch on different computers must be different. In addition, the use of patches may trigger the game’s anti-cheat mechanism, which may lead to account bans.
In view of the fact that Star R is indifferent to GTAOL’s modification and cracking of files, T0ST can only hope that Star R will let it go after seeing relevant reports, perfect the code that has never been modified in the game, and make “seeing the cloud simulator” history.