что делать если гта 5 не запускается в epic games
Почему не запускается ГТА 5 через Epic Games лаунчер?
У вас не запускается ГТА 5 через Epic Games? Особенно часто с этой проблемой сталкиваются пользователи, получившие бесплатную игру на раздаче от разработчика. Но иногда трудности возникают и у других. Давайте разберемся, откуда растут ноги у этой ошибки и попробуем исправить ее вместе.
Первые шаги
Вы следуете привычному алгоритму – заходите в программу запуска и кликаете на иконку игры в библиотеке. Но здесь вас поджидают неприятные новости, так как GTA 5 в Epic Games не запускается? На экране появляется ошибка «Не удается подключиться к игровой библиотеке Rockstar Games. Если проблема повторится, пожалуйста, свяжитесь со службой поддержки…».
Никому не понравится такой ход событий, ведь мы настроились поиграть в любимую игру. Первое, что нужно сделать, если ГТА 5 не запускается через Эпик Геймс – убедиться, что вы работаете с нормальным интернет-подключением:
Проверьте требования
С интернетом все в порядке? Теперь обратимся к системным требованиям – частенько пользователи с маломощными ПК пытаются запустить контент, который достаточно много просит. Поэтому ГТА 5 через Epic Games не запускается. Сразу проверяйте, соответствует ли ваше устройство параметрам игрушки.
Другие варианты решения
Проверили наличие стабильного подключения и соответствие устройства системным требованиями, ног GTA 5 не запускается через Epic Games? Переходим к другим способам решения.
Как правило, активация нужной опции помогает решить проблему, когда Epic Games не видит GTA 5.
Разумеется, мы не можем оставить без внимания такой простейший метод, как перезагрузка. Возможно, вашему лаунчеру не хватает обновлений? Они будут установлены автоматически! Если ГТА 5 не запускается в Эпик Геймс, просто закройте программу запуска (можно даже перезапустить компьютер). Через пару минут откройте ее снова и повторите попытку.
Ничего не получилось и ГТА 5 через Epic Games не запускается? Попробуем переустановить лаунчер Рокстар – это несложно, просто следуйте нашей инструкции:
Не переживайте, сама игра не удалится! Чтобы не потерять важную информацию, ни в коем случае не ставьте галочку в поле «Удалять игровые данные». Пока GTA 5 в Epic Games не запускается – но мы близки к успешному разрешению проблемы!
Важно: лучше не менять классический путь установки, иначе ГТА 5 через Epic Games не запустится.
Мы почти закончили – скоро вы не будете жаловаться на то, что ГТА 5 не запускается в Эпик Геймс:
Даже самые классные сервисы могут работать с перебоями, от багов не застрахован никто – поэтому порой Epic Games не видит установленную ГТА 5. Это не страшно, ведь вы познакомились с множеством способов решения этой проблемы и сможете самостоятельно справиться с возникающей ошибкой.
Причины ошибки отключенного сервера Epic Games и что делать, мониторинг GTA 5
«ГТА 5» существует за счет удаленных серверов. Именно они отвечают за работу проекта в сети. В стандартном режиме загрузка и подключение к ним занимают максимум пару минут. Однако нередко игрок видит на экране сообщение о том, что сервер Epic Games игры «GTA 5» или сервер Rockstar Games отключен. Ожидание и перезагрузка ПК не спасают ситуацию, а что еще сделать, чтобы решить проблему — не ясно.
Если проблема имеет массовый характер
Ошибка эта распространенная и возникает на устройствах пользователей по всему миру, что говорит о недоработках самих создателей. Вообще, несмотря на относительную «старость» игры, а вышла она, напомним, аж в 2015 году, проект «Рокстар» до сих пор «радует» фанатов багами, зависаниями и выкидываниями с серверов без каких-то пояснений.
Когда игра выдает нам «великолепное»: «сервер Эпик Геймс ГТА 5 недоступен» – остается только гадать, что не так. Причем это никак не зависит от языка, который использует геймер, или его устройства. Зачастую в нагрузку не работают еще и Гейм Store и Social Club. Так что даже нельзя узнать, как обстоять дела у прочих игроков из твоей банды.
На самом деле, причин отказа серверов может быть масса:
Помимо прочего, сервера могут не функционировать из-за элементарных технических работ на них, очистки или другой деятельности разработчиков. Об этом они сообщают заранее, вывешивая предупреждение на официальном сайте.
Проверка статусов серверов Rockstar Games
Чтобы определиться с типом проблемы, то есть исходит она изнутри – с самого сервера, или снаружи – от игрока, нужно проверить статус ресурсов. Мониторинг новостей по теме и Твиттера компании Rockstar (https://twitter.com/rockstarsupport) могут пролить ясность на «умерший сервер».
Если никаких страшных сообщений там нет, то идем дальше. Проверяем состояние серверов компании на сегодня через сайты:
В идеале все пункты под картинкой сервера должны гореть зеленым. Это значит, что он доступен пользователям на любых устройствах (PC, PS4, Xbox One, PS3, Xbox 360). Если что-то не работает, то остается только ждать. Да, банально, но это единственный выход. Если с сервером все ОК, но игра по-прежнему пишет «Вход не выполнен», то, очевидно — проблема на стороне игрока.
Запуск программы с правами Администратора
Пресловутое окно «Время обработки запроса истекло» иногда вылезает из-за недостаточной подкрепительной базы игры. Проще говоря, ПК думает, что ее пытается запустить не правовой пользователь, а кто-то со стороны. Открытие игры с позиции Администратора повышает ее права. Действие помогает избежать «возмущений» антивируса и облегчит путь соединения с сервером. Чтобы это сделать, нужно:
Применение VPN
Очень спасает ситуацию изменение IP-адреса через сервис VPN. Особенно если игрок схлопотал бан, и теперь регулярно лицезреет на экране «Игровые сервисы Rockstar сейчас недоступны».
VPN-инструменты встраиваются в браузер и перекидывают соединение на промежуточную точку в другом регионе или стране. Сейчас в сети достаточно вариантов VPN. Можно скачать как платную, так и бесплатную версию: NordVPN, Hide.me, CyberGhost VPN, ExpressVPN.
Использование другой точки Wi-Fi
Этот способ также позволяет сменить IP-адрес. Хорош тем, что можно просто пойти в другое место, и ничего дополнительно не устанавливать на ПК. В данный момент способ считается одним из самых действенных, чтобы устранить ошибку с неработающим сервером.
Отключение антивируса и брандмауэра
Оба этих системных товарища на ПК частенько «ругаются» на неугодные им программы и соединения. Почему? А кто их знает. В один момент «ГТА 5» не вызывает у них подозрений, а в другой – они наотрез отказываются соединять вас с нужным сервером.
Отключение обоих решит проблему, но сильно понизит безопасность компьютера в целом. Без защиты серфинг по сети — рисковое занятие.
Как отключить антивирус:
Как отключить брандмауэр:
После проделанных манипуляций попробуйте вновь зайти на сервер «Рокстар», обновив страницу.
Снижение нагрузки на систему компьютера
Не секрет, что «ГТА 5 Онлайн» — это «тяжелая» игра. Она основательно нагружает видеокарту и процессор. Поэтому лучше предварительно отключить все ненужные программы, различные «оптимизаторы ОС» и прочую ерунду. (Кроме CCleaner и DISM ++, они-то как раз полезны).
Проверьте текущие процессы в Диспетчере задач:
Проверьте свой ПК на наличие программных неполадок. Часто их причиной служит деятельность стороннего софта:
После данных манипуляций перезагрузите ПК и вновь зайдите в игру.
Создание учетной записи латиницей
Если учетная запись, под которой вы входите в игру, написана кириллицей, то даже переименование не поможет. Проверенное решение — создать новую учетку, используя только латиницу. Кроме того, в пути установки игры «ГТА» также не должно встречаться кириллических символов. Если они есть, то переустановите программу с правильным написанием.
Проверка системного времени
Некоторые ПК грешат тем, что на них сбиваются настройки системного времени и часовой пояс. Странный баг, который непостижимым образом влияет на работоспособность серверов игры «ГТА».
Чтобы поменять дату и время, нужно:
Проверьте соответствие даты, времени и часового пояса фактическим. И попробуйте вновь зайти на сервер.
Изменение настроек ДНС
Сервера ДНС иногда закрыты от случайных пользователей, можно это исправить, изменив настройки публичности от компании Гугл.
Технические неполадки
Порой проблема лежит на поверхности и очевидна до безобразия. Что еще можно предпринять, когда сервер игры недоступен:
Что делать если гта 5 не запускается в epic games
Удалите и установите. Вот так. Или ждите. Сейчас вроде всё улеглось. Уже даже есть поддержка известных мультиплееров. Так что пользуйтесь. Приятной игры.
После начала раздачи Grand Theft Auto V в магазине Epic Games Store онлайн-сервисы компании Rockstar Games испытывали проблемы в течение нескольких дней. Об этом разработчики сообщили в твиттере.
Проблемы были не у Rockstar, а у EG
я просто заходил в рокстар лаунчер, и там снизу в настройках где-то нади кнопку проверить игры, или что- то такое нажми, падажи чуть, и всё, запускай игру мне помогло
Проблемы с антивирусом
Следующий ответ на вопрос, почему не запускается ГТА 5 через Стим – блокировка приложения антивирусом или брандмауэром. Единственный способ узнать – отключить защитное ПО на несколько минут.
Если все получилось, вход выполняется – нужно открыть настройки вашего антивируса/ брандмауэра и временно отключить работу программы. Или добавить игровый клиент в список исключений, чтобы больше проблема, когда не запускается GTA 5 в Стиме, не поднималась.
Что делать, если ГТА 5 не запускается через Rockstar Games Launcher?
Купили новую игру, предвкушаете приятные минуты, но ГТА 5 не запускается через Rockstar Games Launcher, что бы вы не делали? Неприятная ситуация – пора искать решение проблемы. Ведь поиграть очень хочется!
Причина 1: Проблема с компьютером
Тем, у кого предыдущие способы не сработали, нужно копать более глубоко. GTA V может не запускаться по двум причинам: проблема в компьютере или в сервисах, которые предоставляют доступ к игре. Рассмотрим первую из них.
Вариант 1: Проверка соответствия системным требованиям
Когда GTA V при первом же запуске не работает, есть вероятность, что характеристики компьютера не соответствуют рекомендуемым. Системные требования игры приведены на следующем скриншоте (их также можно посмотреть на странице в Epic Games). О том, как узнать характеристики своего ПК, можно прочитать в других наших статьях по ссылкам ниже. Комплектующие, слабее даже минимальных требований, и могут спровоцировать неполадку при открытии GTA V.
Подробнее: Просмотр характеристик компьютера в Windows 10 / Windows 8 / Windows 7
Вариант 2: Проверка локальных файлов на целостность
Проблемы с запуском игры возникают и тогда, когда один или несколько её файлов были изменены или удалены. Такое может произойти, например, из-за некорректно установленного обновления или неудачной попытки установить дополнительный контент. В таких случаях достаточно проверить целостность данных.
Начнётся проверка всех файлов GTA V. Обычно она занимает не больше 10 минут, в зависимости от скорости накопителя и интернета. После окончания проверки докачаются все недостающие файлы. Игровой прогресс при этом затронут не будет.
Название папки
Еще одна причина, по которой ГТА 5 не запускается через Rockstar Games Launcher – кириллические символы в названии папки. Вам обязательно нужно пройти весь путь установки игры и проверить названия всех директорий. Если где-то закралась хотя бы одна русская буква, проблемы неминуемы!
Просто переименуйте соответствующую папку латиницей и перезагрузите компьютер. Все будет отлично.
Вы нашли ответ на вопрос, почему не запускается ГТА 5 в Рокстар Лаунчер в нашем обзоре? Надеемся, смогли вам помочь! Пробуйте предпринять все меры, используйте разные методы, тогда все обязательно получится.
Запуск от имени администратора
Частенько пользователи жалуются на возникновение проблем с учетной записью Social Club Rockstar Games. Если вы заметили, что GTA v Steam не запускается по причине невозможности установить соединение или из-за ошибок инициализации, рекомендуем попробовать зайти от имени администратора.
Важно! Если GTA Vice City в Steam не запускается, дополнительно рекомендуем проверить место установки Social Club. По умолчанию нужно загружать приложение по следующему пути: С:\Program FilesRockstar GamesSocial Club.
Подключение к интернету и проблемы на серверах
Если ГТА 5 не загружается через Rockstar Launcher, стоит проверить подключение к интернету – слабый сигнал, сбои и разрывы сети могут привести к неприятным последствиям. Не забывайте, что игра (как и лаунчер) работает исключительно через интернет-соединение.
Что делать? Комплекс мер достаточно простой:
В любом случае, стоит обратиться в службу поддержки вашего провайдера – если ГТА 5 не заходит в Социал Клаб из-за плохого интернета, решение проблемы найдется именно в саппорте.
Следующее, что нужно знать – проверяйте статус работоспособности серверов. Откройте специальную страницу, на которой представлены все данные о плановых работах или технических трудностях и сбоях. Случаются глобальные проблемы, на которые пользователи повлиять не в силах, остается только ждать.
Причина 2: Некорректная работа Social Club
Вариант 1: Запуск службы вручную
Если служба Rockstar отключена, Social Club заработать не сможет, а значит и GTA V не запустится.
Вариант 2: Удаление локальных данных профиля
Этот метод также может помочь в некоторых случаях.
Вариант 3: Переустановка Rockstar Games Launcher
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Соответствие системным требованиям
Неприятно, когда не запускается ГТА 5 через Стим – но проблема не возникает на ровном месте, нужно искать причину возникновения ошибки. Первое, на что стоит обратить внимание – это соответствие вашего устройства системным требованиям. Частенько случается, что железо просто не потянет игру – в таком случае придется отказаться от намерения ее установить.
Системные (минимальные) требования таковы:
Не забывайте – с появлением дополнением и развитием программного кода игры системные требования могут меняться – отсюда и вопрос, почему не запускается GTA 5 Steam. Подробную информацию можно получить в службе поддержки Rockstar Games.
Почему в Epic Games Store не запускается GTA V
При условии, что это не помогло, то попробуйте перезагрузить компьютер, чтобы исключить и сбросить все ошибки, которые могли возникнуть на нем во время работы. В большинстве случаев GTA V после этого начинает запускаться.
Отключение дискретной видеокарты
Этот способ подойдет только тем, у кого не запускается ГТА 5 Стим без ошибок на компьютерах с двумя видеокартами разных производителей! Из-за конфликта ПО получаем неприятный результат – хорошо, что ошибку можно быстро устранить.
Мы нашли ответ на вопрос, почему не запускается ГТА 5 в Стиме – один из вариантов решения точно подойдет. Желаем удачи в игре!
Драйвера видеокарты
Другая причина, почему не открывается ГТА 5 в Стиме – вам не хватает нужных драйверов. Интересный факт, и AMD и Nvidia к выходу игры выпускали отдельное специальное обновление – именно поэтому не помешает поставить последнюю версию драйверов. Особенно если вы давненько не обновлялись!
Сделаем это простым классическим способом. Вы можете использовать и другие варианты, если знаете и умеете добиваться результата иначе:
Далее действуйте по инструкции на экране – очень может быть, проблема, при которой не запускается ГТА 5 в Steam, уйдет.
Очистка кэша
Что еще можно сделать, если не запускается ГТА Вайс Сити в Стим? Почистить кэш загрузки было бы не лишним – иногда трудности кроются внутри десктопного приложения.
После завершения процесса вам придется вновь войти в учетную запись пользователя! Не забывайте логин и пароль.
Нелицензионный контент
Первое, почему не запускается ГТА 5 через Rockstar Games Launcher – использование пиратской версии игры. Разумеется, если вы покупали лицензионное издание, можете пропустить эту часть обзора и читать дальше! Если же вы используете пиратскую копию – скорее всего, «ноги» у всех возникающих трудностей растут именно отсюда.
Настоятельно рекомендуем отказаться от пиратской версии и купить нормальный продукт. Если же оставляете себе нелицензионную игру, ищите решение всех проблем там, где скачали пиратскую копию.
Что делать, если не запускается ГТА 5 через Рокстар Лаунчер в таком случае – понятно. Есть и другие причины возникновения проблемы, далекие от нелицензионного контента.
ГТА 5 не запускается в Стиме: что делать?
Почему не запускается ГТА 5 в Стиме, как можно решить проблему? Отличный вопрос, на который стоит найти подробный ответ – подробную информацию можете найти ниже! Читайте, изучайте и разбирайтесь с возникшими ошибками в мгновение ока!
Запуск от имени администратора и отключение антивируса
Переходим к следующему шагу! Когда не заходит в Социал Клаб в ГТА 5 и пишет «оффлайн режим», стоит попробовать запустить приложение от имени администратора. Просто нажмите на ярлычок правой кнопкой мышки и выберите соответствующий пункт.
Запускать от имени администратора можно саму игру:
Когда ГТА 5 не запускается через лаунчер Рокстар также стоит сделать следующее – временно отключите антивирус и попробуйте запустить лаунчер с игрой. Если все хорошо работает, нужно внести приложение в список исключений антивируса. Такое случается очень часто, защитное ПО может блокировать работу самых разных сервисов.
Не запускается GTA5 БЕЗ ОШИБКИ
116 постов 369 подписчиков
Правила сообщества
1. Оскорблять участников сообщества.
2. Рекламировать что-либо.
3. Использовать орбитальную пушку!
Уважайте чужое мнение и будьте дружелюбны, добро пожаловать в наше сообщество!
Надо помочь человеку, на 2020 скоро конец, а он в 5 gta не наигрался)))
По сути:
1 впн (хз при чем тут регион но комент выше меня смутил)
2 Эпик работает в других пректах?(ну судя что ты скачал то работает)
2 дрова, обнови нормально дрова(голая винда может что забыл)
3 если сеть есть ищи проблему не в сети а в игре или системе
4 хз попробуй скачать пиратку пиратку если она заработает то проблема в эпике (да это гигов 100 но если москва то не проблема)
Чуть больше инфы надо. Другие игры работают? В комп залезал (мб чистил, пылесосил). На чём стоит (ССД или ХДД), как диск себя чувствует? Вариантов так то много, мб оперативу передернуть, либо попробовать с одной плашкой запустить, попробовать с другим ЖД или ССД, мне даже всё не перечислить.
Rockstar реализует наработки пользователя в GTA Online по улучшению времени загрузки
В начале марта пользователь сервиса Github с ником tostercx, также известный как t0st, заявил о способе значительного сокращения времени загрузки GTA Online до 70 процентов. Кроме того, tostercx с единомышленниками выпустили неофициальный патч для версии GTA Online 2215/1.53, в котором исправили две ошибки игры и собственно сократили время загрузки систем.
Энтузиаст предоставил развернутый анализ проблемы и методы её решения. Вкратце, замедление было вызвано «узким местом в одном потоке ЦП при запуске GTA Online». По оценкам tostercx, крупная команда разработчиков смогла бы решить проблему в течение суток после обнаружения.
К чести Rockstar, компания публично признала выводы tostercx и пообещала выпустить исправление в ближайшем патче: «После тщательного расследования мы можем подтвердить, что игрок t0st действительно раскрыл аспект кода игры, связанный со временем загрузки ПК-версии GTA Online, который можно улучшить. На основе этих исследований мы разработали некоторые изменения, которые будут внесены в предстоящее обновление игры».
Помимо удовлетворения от проделанной работы, tostercx получил солидное вознаграждение в размере 10 тысяч долларов США в рамках программы Bug Bounty. Обычно программа предусматривает выплаты за обнаружение проблем с безопасностью или конфиденциальностью в онлайн-играх Rockstar, но компания решила назначить награду «в качестве исключения», рассказал tostercx.
Ответ на пост «Как я сократил время загрузки GTA Online на 70%»
Rockstar Games подтвердила PC Gamer, что фанатское решение проблемы долгого времени загрузки GTA Online станет официальным в грядущем обновлении.
В начале марта пользователь Github tostercx, также известный как t0st, заявил, что он обнаружил способ сократить время загрузки GTA Online до 70 процентов. Кроме того, он также выпустил исправление.
Rockstar подтвердила, что выводы tostercx были верными и что исправление уже в пути.
Последнее обновление для GTA Online вышло на всех основных платформах. На PlayStation обновление весит 700 МБ, на Xbox – 1 ГБ и на ПК – 400 МБ.
Судя по всему, значительное увеличение времени загрузки, похоже, относится только к ПК. Пользователи консолей сообщают, что существенного улучшения показателей времени загрузки не произошло. В то время как игроки на ПК с радостью отмечают, что обновление оказалось наиболее эффективным.
t0st также сообщил, что он «получил награду в размере 10 тысяч долларов» в рамках программы Rockstar по поиску багов, которая обычно используется только для устранения серьезных проблем с безопасностью.
Как я сократил время загрузки GTA Online на 70%
GTA Online. Многопользовательская игра, печально известная медленной загрузкой. Недавно я вернулся, чтобы завершить несколько ограблений — и был потрясён, что она загружается настолько же медленно, как и в день своего выпуска, 7 лет назад.
Пришло время докопаться до сути.
Человек залез в «исходный код» игры, нашел криво работающую функцию и исправил ее, благодаря этому скорость загрузки возросла на 70%. Ссылки на dll для увеличения скорости в конце статьи.
Сначала я хотел проверить, вдруг кто-то уже решил проблему. Но нашёл только рассказы о великой сложности игры, из-за чего она так долго загружается, истории о том, что сетевая p2p-архитектура — мусор (хотя это не так), некоторые сложные способы загрузки в сюжетный режим, а потом в одиночную сессию, и ещё пару модов, чтобы скипнуть видео с логотипом R* во время загрузки. Ещё немного почитав форумы, я узнал, что можно сэкономить колоссальные 10-30 секунд, если использовать все эти способы вместе!
Тем временем на моём компе…
Загрузка сюжетного режима:
Без загрузочного меню, от логотипа R* до игрового процесса (без логина в Cоциальный Клуб.
Старый, но приличный проц: AMD FX-8350
Дешёвый SSD: KINGSTON SA400S37120G
Надо бы прикупить RAM: 2x Kingston 8192 MB (DDR3-1337) 99U5471
Нормальный GPU: NVIDIA GeForce GTX 1070
Если доверять этому опросу, проблема достаточно широко распространена, чтобы слегка раздражать более 80% игроков. Прошло уже семь лет!
Я немного поискал информацию о тех
Почему у них сюжетный режим по-прежнему загружается около минуты? (кстати, при загрузке с M.2 NVMe не учитывались видео с логотипами). Кроме того, загрузка из сюжетного режима в онлайн занимает у них всего минуту, в то время как у меня около пяти. Я знаю, что их железо гораздо лучше, но не в пять же раз.
Вооружившись таким мощным инструментом, как Диспетчер задач, я приступил к поиску узкого места.
Почти минута уходит на загрузку общих ресурсов, которые нужны и для сюжетного режима, и для онлайна (почти наравне с топовыми ПК), затем GTA в течение четырёх минут полностью нагружает одно ядро CPU, больше ничего не делая.
Использование диска? Нет! Использование сети? Есть немного, но через несколько секунд падает в основном до нуля (кроме загрузки вращающихся информационных баннеров). Использование GPU? Ноль. Память? Вообще ничего…
Что это, майнинг биткоинов или что-то такое? Чую здесь код. Очень плохой код.
На моём старом процессоре AMD восемь ядер, и он ещё молодцом, но это старая модель. Его сделали ещё тогда, когда производительность одного потока у AMD была намного ниже, чем у Intel. Наверное, это главная причина таких различий во времени загрузки.
Что странно, так это способ использования CPU. Я ожидал огромное количество операций чтения с диска или массу сетевых запросов, чтобы организовать сеансы в сети p2p. Но такое? Вероятно, здесь какая-то ошибка.
Профилировщик — отличный способ найти узкие места в CPU. Есть только одна проблема — большинство из них полагаются на инструментирование исходного кода, чтобы получить идеальную картину происходящего в процессе. А у меня нет исходного кода. Мне также не требуются идеальные показания в микросекундах, у меня узкое место на 4 минуты.
Итак, добро пожаловать в образцы стека (stack sampling). Для приложений с закрытым исходным кодом есть только такой вариант. Сбросьте стек запущенного процесса и местоположение указателя текущей инструкции, чтобы построить дерево вызовов в заданные интервалы. Затем наложите их — и получите статистику о том, что происходит. Я знаю только один профилировщик, который может проделать это под Windows. И он не обновлялся уже более десяти лет. Это Люк Stackwalker! Кто-нибудь, пожалуйста, подарите Люку немножко любви 🙂
Обычно Люк группировал бы одинаковые функции, но у меня нет отладочных символов, поэтому пришлось смотреть на соседние адреса, чтобы искать общие места. И что же мы видим? Не одно, а целых два узких места!
Вниз по кроличьей норе
Позаимствовав у моего друга совершенно законную копию стандартного дизассемблера (нет, я действительно не могу его себе позволить… когда-нибудь освою гидру), я пошёл разбирать GTA.
Выглядит совсем неправильно. Да, у большинства топовых игр есть встроенная защита от реверс-инжиниринга, чтобы защититься от пиратов, мошенников и моддеров. Не то чтобы это их когда-то останавливало…
Похоже, здесь применили какую-то обфускацию/шифрование, заменив большинство инструкций тарабарщиной. Не волнуйтесь, нужно просто сбросить память игры, пока она выполняет ту часть, на которую мы хотим посмотреть. Инструкции должны быть деобфусцированы перед запуском тем или иным способом. У меня рядом лежал Process Dump, так что я взял его, но есть много других инструментов для подобных задач.
Проблема 1: это что… strlen?!
Дальнейший разбор дампа выявил один из адресов с некоей меткой strlen, которая откуда-то берётся! Спускаясь вниз по стеку вызовов, предыдущий адрес помечен как vscan_fn, и после этого метки заканчиваются, хотя я вполне уверен, что это sscanf.
Он что-то парсит. Но что? Логический разбор займёт целую вечность, поэтому я решил сбросить некоторые образцы из запущенного процесса с помощью x64dbg. Через несколько шагов отладки выясняется, что это… JSON! Он парсит JSON. Колоссальные десять мегабайт JSON’а с записями 63 тыс. предметов.
.
<
«key»: «WP_WCT_TINT_21_t2_v9_n2»,
«price»: 45000,
«statName»: «CHAR_KIT_FM_PURCHASE20»,
«storageType»: «BITFIELD»,
«bitShift»: 7,
«bitSize»: 1,
«category»: [«CATEGORY_WEAPON_MOD»]
>,
.
Что это? Судя по некоторым ссылкам, это данные для «сетевого торгового каталога». Предполагаю, он содержит список всех возможных предметов и обновлений, которые вы можете купить в GTA Online.
Проясним некоторую путаницу: я полагаю, что это предметы, приобретаемые за игровые деньги, не связанные напрямую с микротранзакциями.
10 мегабайт? В принципе, не так уж и много. Хотя sscanf используется не самым оптимальным образом, но, конечно, это не так уж плохо? Что ж…
Да, такая процедура займёт некоторое время… Честно говоря, я понятия не имел, что большинство реализаций sscanf вызывают strlen, поэтому не могу винить разработчика, который написал это. Я бы предположил, что он просто сканировал байт за байтом и мог остановиться на NULL.
Проблема 2: давайте использовать хэш-…массив?
Оказывается, второго преступника вызывают сразу за первым. Даже в одной и той же конструкции if, как видно из этой уродливой декомпиляции:
Все метки мои, и я понятия не имею, как на самом деле называются функции/параметры.
Вторая проблема? Сразу после разбора элемента он хранится в массиве (или встроенном списке C++? не уверен). Каждая запись выглядит примерно так:
А перед сохранением? Он проверяет весь массив, сравнивая хэш каждого элемента, есть он в списке или нет. С 63 тыс. записей это примерно (n^2+n)/2 = (63000^2+63000)/2 = 1984531500, если я не ошибаюсь в расчётах. И это в основном бесполезные проверки. У вас есть уникальные хэши, почему не использовать хэш-таблицу.
Во время реверс-инжиниринга я назвал его hashmap, но это явно не_hashmap. И дальше ещё интереснее. Этот хэш-массив-список пуст перед загрузкой JSON. И все элементы в JSON уникальны! Им даже не нужно проверять, есть они в списке или нет! У них даже есть функция прямой вставки элементов! Просто используйте её! Серьёзно, ну ребята, что за фигня!?
Всё это конечно классно, но никто не воспримет меня всерьёз, пока я не напишу реальный код для ускорения загрузки, чтобы сделать кликбейтный заголовок для поста.
Проблема с JSON нетривиальная, я не могу реально заменить их парсер. Более реалистичным кажется заменить sscanf на тот, который не зависит от strlen. Но есть ещё более простой способ.
* подождать длинной строки
* «закэшировать» начало и длину
* если поступит ещё вызов в пределах диапазона строки, вернуть закэшированное значение
Что-то вроде такого:
А что касается проблемы хэш-массива, то здесь просто полностью пропускаем все проверки и вставляем элементы напрямую, поскольку мы знаем, что значения уникальны.
Полный исходный код PoC здесь.
Ну и как оно работает?
Прежнее время загрузки онлайн-режима: около 6м
Время с патчем проверки дубликатов: 4м 30с
Время с парсером JSON: 2м 50с
Время с двумя патчами вместе: 1м 50с
Да, чёрт возьми, получилось! :))
Скорее всего, это не решит всех проблем с загрузкой — в разных системах могут быть и другие узкие места, но это такая зияющая дыра, что я понятия не имею, как R* пропустила её за все эти годы.
При запуске GTA Online есть узкое место, связанное с однопоточным вычислением
Оказалось, GTA изо всех сил пытается распарсить 10-мегабайтный файл JSON
Сам парсер JSON плохо сделан/наивен и
После парсинга происходит медленная процедура удаления дублей
R*, пожалуйста, исправьте
Если информация каким-то образом дойдёт до инженеров Rockstar, то проблему можно решить в течение нескольких часов силами одного разработчика. Пожалуйста, ребята, сделайте что-нибудь с этим : Показать полностью 10