Энтузиасту удалось на 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, исправление недочётов должно занять не больше одного дня и для этого требуется только один программист.

Материал дополнен редакцией
55 показов
41K41K открытий
22 репоста
278 комментариев

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

Ответить

Сразу иск

Ответить

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

Ответить

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

Ответить

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

Ответить

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

Ответить

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

Ответить