Броненосец

Настоящий Мужской Ресурс

Интернет-пользователь сократил время загрузки GTA Online почти на 70%.

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

Интернет-пользователь сократил время загрузки GTA Online почти на 70%. о_0

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

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

Интернет-пользователь сократил время загрузки GTA Online почти на 70%. о_0

В поисках виновника

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

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

Интернет-пользователь сократил время загрузки GTA Online почти на 70%. о_0

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

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

Решение

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

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

Оставить комментарий

Ваш электронный адрес не будет опубликован.

Вы можете использовать такие HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>