Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online

По его словам, проблема скрывалась в неоптимальной обработке нескольких файлов.

Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online

О своём небольшом проекте рассказал пользователь под ником t0st, который в свободное время занимается реверс-инжинрингом. По словам программиста, его не устраивали загрузки в GTA Online, которые могли занимать около шести минут, в то время как для одиночного режима требуется чуть больше минуты.

t0st показал результаты одного из опросов на Reddit, которые подтверждают, что проблема долгих загрузок в Online довольно распространённая среди игроков.

Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online

Чтобы найти проблемный участок, t0st использовал профилировщик Luke Stackwalker, а затем запустил дизассемблер с целью углубиться в файлы игры.

Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online

Разработчик выяснил, что игра обращается к файлу JSON с 63 тысячами записей и размером около 10 МБ, что не так много, но неоптимальная обработка такого количества данных всё равно замедляет загрузки в GTA Online. Однако это лишь одна из причин, которую выявил t0st.

Судя по всему, сам файл содержит список всех возможных предметов и улучшений, которые можно купить в игре. Как уточняет автор, это предметы, покупаемые за игровые деньги, которые напрямую не связаны с микротранзакциями Shark Cards.

Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online

Вторая проблема заключалась в том, что после завершения разбора JSON игра проверяет уникальность каждого из 63 тысяч его элементов, сравнивая со всеми остальными, что в сумме даёт почти два миллиарда операций сравнения.

Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online

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

В конечном счёте разработчику удалось сократить время загрузок с шести минут до 1 минуты и 50 секунд.

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

Материал дополнен редакцией
932932
278 комментариев

Комментарий недоступен

522

Сразу иск

470

На гитхабе стоит пометка, что это для экспериментов только, а то могут забанить

4

а ты думал почему гта в топах продаж

1

он отключает проверку на целостность, так что репорта не будет, если только в игре не вшита дублирующая

Интересно самих рокстаров не смущает что их игра настолько долго грузится

73

они в нее не играют, с чего это должно их смущать

456