Un programador redujo los tiempos de carga de GTA Online en un 70 por ciento

Un programador redujo los tiempos de carga de GTA Online en un 70 por ciento

A programmer reduced GTA Online load times by 70 percent

Rockstar es uno de los desarrolladores de juegos más grandes del planeta y tiene algunos de los juegos más populares y rentables que existen. Uno de sus juegos más populares y rentables es GTA Online. Si bien el juego ha estado disponible durante siete años y sigue siendo muy popular. Una de las cosas de las que se quejan muchos jugadores es que el juego se carga muy lentamente, sin importar cuán poderoso sea el hardware en el que se esté jugando.

Recientemente, un programador pasó a utilizar algunas técnicas de programación creativas para reducir los tiempos de carga en un 70 por ciento. T0st estaba sentado a través de una carga de seis minutos para GTA Online en una PC de juegos de rango medio y abrió el Administrador de tareas, donde descubrió algo interesante. Después de la marca de un minuto, el programador dijo que el uso de la CPU de su computadora se disparó dramáticamente mientras que el uso del almacenamiento y la red eran prácticamente inexistentes.

T0st se dio cuenta de que eso significaba que los tiempos de carga prolongados no se debían a los servidores Rockstar ni a la lectura de datos de una unidad. Algo se estaba ejecutando directamente en el procesador que necesitaba mucha potencia de procesamiento para completarse mientras se usaba solo un hilo. Luego, T0st recurrió a una serie de herramientas de programación y depuración que llevaron a descubrir dos problemas importantes.

El primer problema importante fue que el juego estaba leyendo un archivo de texto de todos los elementos que se pueden comprar en el juego, 63,000 elementos en total. Contaba cada carácter en el archivo de texto de 10 megabytes para cada uno de los 63.000 elementos, lo que significa una gran cantidad de tiempo de procesador perdido. El otro problema fue que, en preparación para la lectura de los datos, el juego registró tanto los datos asociados con ese elemento, como su nombre, precio, categoría y estadísticas, como un hash de ese elemento que lo identificaba de forma única. Ese proceso sucedió 63.000 veces.

El tiempo de carga aumenta cada vez que se cargan más elementos en el juego. T0st estimó que el juego estaba formando casi 2 mil millones de cheques consumiendo cantidades masivas de tiempo de procesador. Para aliviar los problemas, el programador escribió código sobrescribiendo algunas de las funciones del juego para resolver el problema de lectura de elementos.

Creó un caché básico para calcular la longitud de una lista de elementos una vez que sea capaz de devolver el mismo valor sin hacer el cálculo nuevamente cada vez que el código del juego solicite la longitud. Ese truco redujo drásticamente la cantidad de veces que era necesario realizar la verificación de 63,000 a una. El código personalizado también omite la verificación de artículos duplicados, cortando casi 2 mil millones de verificaciones que no tenían que ocurrir, lo que resulta en una reducción del tiempo de carga de alrededor de seis minutos a menos de dos minutos.

0 0 votes
Puntuación de la entrada
Subscribe
Notify of
0 Comentarios
Inline Feedbacks
View all comments
A %d blogueros les gusta esto: