24 подписчика

Время загрузки GTA 5 уменьшено на 70% пользователь нашёл способ сократить время

Интернет-пользователь с ником T0ST нашел способ сократить время загрузки онлайн-режима GTA V почти на 70 процентов. Он также объяснил на своем сайте, почему загрузка GTA Online занимает так много времени.

 Вкратце

 Интернет-пользователь с ником T0ST нашел причину долгой загрузки в GTA Online.

 Виновником был некорректный код, который выполнял ненужные действия, связанные с предметами в игре.

 За счет устранения этой ошибки загрузка сетевого режима была уменьшена с 6 минут до 110 секунд.

 Хотя с момента премьеры Grand Theft Auto V прошло почти 8 лет, включенная в нее GTA Online по-прежнему очень популярна, а для издателя Take-Two она все еще оставалась золотой. Однако сетевой режим Rockstar Games также известен своим очень долгим временем загрузки, до 10 минут. Эта проблема присутствовала в игре с самого начала, но только сейчас один из пользователей интернета, скрываясь под псевдонимом T0ST, решил не только посмотреть на нее, но и по возможности устранить ее.

 В конце концов это сработало. T0ST, используя компьютер среднего размера, сократил время онлайн-загрузки почти на 70 процентов. Все это с помощью небольших изменений в неисправном игровом коде. Вот подробный отчет о том, как ему это удалось.

 

 Загрузка в Интернете занимает несколько минут.

 Поиск виноватых

 T0ST сначала решил сравнить время загрузки двух доступных игровых режимов. Для этого он использовал свой компьютер, состоящий в основном из процессора AMD FX-8350, 16 гигабайт оперативной памяти, бюджетного SSD-накопителя и видеокарты Nvidia GeForce GTX 1070. Загрузка сюжетной кампании заняла около 70 секунд. До 6 минут для запуска онлайн-режима (оба раза отсчитывались с момента появления логотипа Rockstar при отключенном меню «Пуск»).

 Программист хотел узнать, что именно происходит с компьютером при загрузке сетевого режима. Для этого он снова начал загружать GTA Online, но на этот раз запустил встроенный в Windows диспетчер задач. Через минуту он заметил, что загрузка ЦП выросла с 25% до более 60%. Причем в игре использовалось только одно ядро ​​из восьми доступных. Остальные компоненты практически не работали почти пять минут. T0ST пришел к выводу, что проблема в коде игры ...

 

 Использование процессора при загрузке GTA Online на компьютере среднего размера. Источник: Nee.lv (сайт T0ST)

 Сизифов труд

 ... и он был абсолютно прав, потому что виновником был файл размером всего 10 мегабайт с расширением .json. Он содержит список всех предметов, доступных для покупки в игре (тех, которые можно приобрести за виртуальные деньги, а не за счет микротранзакций), и их улучшений. Их около 63 тысяч. Проблема в том, что когда игра загружает этот файл, она его анализирует. И повторяется ровно столько раз, сколько есть предметов.

 Кроме того, у всех вещей есть свой «хеш», то есть уникальный код, позволяющий их идентифицировать. Каждый раз, когда анализ элемента завершен, он помещается в список и сравнивается с теми, которые уже есть в списке. Это сделано для того, чтобы избежать дублирования предметов. Изначально список пуст, но со временем он заполняется всеми 63 000 вещей, и все приходится сравнивать друг с другом. T0ST подсчитал, что всего исполнено почти 2 миллиарда акций. Мало того, поскольку каждый элемент имеет уникальный «хеш», вся работа становится сизифовской.

 Прохождение

 T0ST создал собственный код, который перезаписал две неисправные игровые функции. Он сократил количество выполняемых синтаксических анализов до одного и отключил проверку на наличие повторяющихся элементов. Решение первой проблемы сократило время загрузки до 4,5 минут, а в сочетании со вторым прохождением до 110 секунд. Создатель поделился своей работой на GitHub, и вы можете скачать ее здесь. Однако T0ST не гарантирует, что решение будет работать на других компьютерах, особенно на компьютерах с верхней полки (разница может быть незаметной), и предупреждает, что добавление этого кода может привести к блокировке учетной записи.

 Разработчик надеется, что Rockstar рассмотрит эту ошибку и выпустит официальный патч, поскольку он считает, что один человек может исправить это за день.