Энтузиасту удалось на 70% сократить время загрузки в ПК-версии GTA Online Статьи редакции
По его словам, проблема скрывалась в неоптимальной обработке нескольких файлов.
О своём небольшом проекте рассказал пользователь под ником t0st, который в свободное время занимается реверс-инжинрингом. По словам программиста, его не устраивали загрузки в GTA Online, которые могли занимать около шести минут, в то время как для одиночного режима требуется чуть больше минуты.
t0st показал результаты одного из опросов на Reddit, которые подтверждают, что проблема долгих загрузок в Online довольно распространённая среди игроков.
Чтобы найти проблемный участок, t0st использовал профилировщик Luke Stackwalker, а затем запустил дизассемблер с целью углубиться в файлы игры.
Разработчик выяснил, что игра обращается к файлу JSON с 63 тысячами записей и размером около 10 МБ, что не так много, но неоптимальная обработка такого количества данных всё равно замедляет загрузки в GTA Online. Однако это лишь одна из причин, которую выявил t0st.
Судя по всему, сам файл содержит список всех возможных предметов и улучшений, которые можно купить в игре. Как уточняет автор, это предметы, покупаемые за игровые деньги, которые напрямую не связаны с микротранзакциями Shark Cards.
Вторая проблема заключалась в том, что после завершения разбора JSON игра проверяет уникальность каждого из 63 тысяч его элементов, сравнивая со всеми остальными, что в сумме даёт почти два миллиарда операций сравнения.
После выявления проблем автор изменил исходный код файлов и опубликовал их на GitHub. Он отметил, что это лишь концепт и использование исходников может привести к бану в GTA Online.
В конечном счёте разработчику удалось сократить время загрузок с шести минут до 1 минуты и 50 секунд.
Автор выразил надежду на то, что его работу заметит Rockstar — для программистов студии он кратко описал свой способ решения проблемы, который считает самым лёгким. По словам t0st, исправление недочётов должно занять не больше одного дня и для этого требуется только один программист.
Рокстар просто делают игры. Как козёл себя ведёт издатель — Take-Two
И это прекрасно, нехуй этим говном игры мазать. Субтитров достаточно.
не имеют полноценной локализации
*шутка про неполноценность наших лохализаций*
И правильно делают, что на переозвучку наложено вето
ну значит и я правильно делаю в рот ебя покупку их игр.
Была возможность погонять и 5 гта и рдр2 в геймпассе. Нормально играть мешали именно необходимость чтения субтитров одновременно с активным совершением действий в игре.
В какой раз реально убеждаюсь насколько же они долбаёбы. Пока другие могут делать моды на те же игры от беседки или ещё что, они за такое просто карают, за выложенный исходный код - иск, за другое - иск, иск на иск на иск на иск на мод, класс, что рокстары, что Take Two, что 2K Games. Если бы беседку купили рокстары, Take Two или ещё кто, то все мододелы с нексуса сидели в отдельной для них построенной тюрьме на деньги рокстаров. Всё сделают, чтобы "не было вот вот такого уот"
1. Загуглил, иски подавали только на создателей читов для сетевой игры или вроде того. За модификации для онлайна, короче.И что в этом плохого?
2.
пока другие могут делать моды на те же игры от беседки
А для гта нет? Что-то количество модов не сходится с твоими словами, их бы вообще не было если каждому иск прилетает.
3.
за выложенный исходный код - иск
Исходный код чего? Игры? За слитые исходники коммерческого продукта тебя любой правообладатель поимеет и будет прав.
4.
Если бы беседку купили рокстары, Take Two или ещё кто, то все мододелы с нексуса сидели в отдельной для них построенной тюрьме на деньги рокстаров. Всё сделают, чтобы "не было вот вот такого уот"
https://www.nexusmods.com/gta5
А тут что? Все из этих авторов модов сидят?
Исходный код чего?
Он, скорее всего, имеет ввиду это
в лицензионном соглашении написано, что реверс инжениринг запрещён
Как и почему это кого-то должно ебать?
Примитивны
В СНГ-шных реалиях без закона – никого. А в цивилизованных странах принято уважать требования правообладателя.
Я бы не называл правоторговлю в её текущем виде признаком цивилизованности. Тьфу. А "запрет" реверсинжиниринга - так и вовсе в высшей степени маразм.
челы делали дизассемблирование
А я разбирал велосипед отвёрткой и пассатижами. И чё?
Не надо пытаться создать юридическо-правовую абстракцию там, где её быть не может. Я очень "рад" за законодательство отдельных стран, которые её там создали и ей пользуются (если это вообще так), но это говорит лишь о том, что тамошние законодатели - поехавшие пидорасы, и ни о чём другом.
Компании всегда будут лоббировать через государство то, что им выгодно. Глупо их за это винить, они просто не могут работать по-другому. Пиздюлей надо навешивать государству, если оно хуеет и откликается на неадекватное лоббирование.
По-этому народу надо уже создавать свой децентрализованный гитхаб
Дело не в этом. Просто если не ты пролоббируешь - пролоббирует кто-то другой, а ты останешься в невыгодном относительно статуса кво положении. Государство надо держать в узде и минизировать - не придётся обходные пути создавать.
Как реверс инжиниринг вообще может быть связан с лицензионным соглашением?
Да и Нинка не запрещает реверс своих игр - на Гитхабе куча её игр лежит до сих пор.
Она больше запрещает ремейки и порты.
За такую хуйню иск нужно выдвигать тому кто это придумал. Я например из за этого не играл в онлайн режим, то есть потеряли потенциальную корову
На гитхабе стоит пометка, что это для экспериментов только, а то могут забанить
Интересно самих рокстаров не смущает что их игра настолько долго грузится
Я же рофлю
но, судя по финансовым отчетам и статистике Стима, долгие загрузки, читерство и другие проблемы игры никак не мешают Р* грести бабос лопатами. Как минимум одного игрока (меня) они потеряли именно из-за технических проблем, может еще сотня или тысяча дропнули игру из-за загрузок. Но остальные заносят много бабла, и даже читеры, бросающиеся мешками денег, им, видимо, не мешают зарабатывать.
Так что возвращаюсь к своему ответу - они в игру не играют. Они на ней зарабатывают.
Они же выпускают дополнения, так что без работы не сидят.
Просто используют современный подход к разработке, когда новые фичи важнее правок старых багов и уж тем более оптимизации.
Ну не знаю — я в сингле никаких дополнений не видел,)))
А должен был...
Если серьёзно, херня это всё, там не полтора землекопа работают, вполне могли за 7 лет выделить 1 прогера на эту задачу. Нет у этого никакого рабочего оправдания, лишь объяснения как мы пришли к выводу, что RS уёбки. А уж ленивые они там уёбки или "современные", не всё ли равно?,)
Последний раз я тупо зайти в рокстар клаб не мог, забил и снес игру. Так и не понял в чем была трабла.
Ну да, к дропу, только игра каким-то хуем все держит топы и растет в онлайне, хотя даже разработчикам почти похуй.
Вопрос заключается в другом. Вдруг подобные манипуляции придуманы потому что ничего иного для проверки не получается засунуть?
Скорее всего, когда запускали онлайн и предметов было меньше, никакого значительного влияния это не оказало на загрузку.
А потом, с добавлением контента этот json увеличивался и когда кто-то не задумывается над сложностью алгоритма, так и получается, что там миллиарды операций.
Но это происходило плавно, техническая тима была другим занята, поэтому вряд ли им было до этого, мне кажется.
Автор сильно удивляется примитивности природы этих ошибок и простоте в вопросе их решения, предлагая свой собственный рабочий способ.
всё просто:
- юзеры жалуются на долгие загрузки
- мы заработаем больше денег, если исправим это?
- нет
- можно забить
Так то, да. Заработают. Цель дрочилен - удержание игроков в расчёте что кто-то да задонатит. А эти загрузки реально заёбывают и отпугивают от онлайна.
А кто-то это терпит до сих пор.
Мне хватило всего 2 загрузок в первый день.
Я качал гта дольше, чем играл
Да, иногда в онлайне загрузки минут по 10 бывают, после такой паузы иногда уже просто не хочется играть. Бывало даже что просто закрывал игру тупо из-за такой вот долгой загрузки. Так что проблема явно есть и, да, они могли бы зарабатывать на игре еще больше если бы она работала быстрее. Некоторым игрокам просто лень в нее заходить из-за долгой загрузки, некоторые ее закрывают, думая что она залагала. А потом ее нужно опять долго запускать...
Возможно они сами не понимают насколько эта проблема серьезная
Автор предыдущего комментария забыл добавить ещё одну причину: абсолютно тупоголовые "эффективные" менеджеры. Это настоящий бич всех современных корпораций. Когда мне говорят, что корпорации захватят мир, я вспоминаю своего менеджера и понимаю, насколько смешно это звучит.
Плюсую. Я именно поэтому не протянул в онлайне больше 50 часов. Просто заебало, потому что часов 5 из этих 50 ушло на загрузки. Которые, кстати, иногда вообще зависали и приходилось перезаходить в игру.
Ну вообще, есть вероятность, что они бы могли больше зарабатывать, если уменьшили бы загрузки, не удивлюсь, есть часть сессий отваливается из-за этого
Автор ничем не рискует предлагая такие решения без тщательного тестирования, нашёл файл, соптимизировал, поделился краткосрочным результатом
Для Rockstar же такие решения требуют отвлечения специалистов, тестирования и риски, что может сломаться и остальное. Как и в любой большой компании с проектами такого уровня
Если бы они испытывали очевидный отток игроков из за этого, они бы решали
А когда каждый день в поддержку падает тысяч 100 обращений (при их масштабах и исходя моего опыта поддержки), им просто не до этого
Если алгоритм проверки уникальности действительно, такой как описано в посте, то это банально говнокод. Оправдывать говнокод чем либо не стоит. Говнокод есть говнокод, его надо переписать
На это нужно выделить ответственных и ДЕНЬГИ. А кому это надо, камон?
Пользователи бросают в монитор деньги пачками, ну давайте придумаем оправдание говнокода жадностью. Никогда такого не было и вот опять
Скорее всего данный баг посчитали "некритичным" и с ним так и отправили в релиз, ну не могли его не заметить на тестах. А выделять время программистов и QA на "минорный баг" по мнению руководства нецелесообразно, особенно если это может повлиять неочевидным образом на работоспособность онлайна.
Яркий
Нет. Его просто не заметили. Вероятно в том словаре, который они пытаются сериализовать в json было меньше элементов и особого влияния на загрузку он не оказывал. Со временем он постепенно разросся, но постепенно, врядли пользователи сразу заметили, что игра начинает все дольше и дольше загружаться. Ну а те кто спустя годы зашли в игру, и обратили внимание на долгие загрузки как будут репортить? А никак они не будут, максимум эта тема будет только на форумах иногда всплывать и врядли коммьюнити-менеджр добросовестно выполняет свою работу, чтоб отследить такое. Ну а самим разработчикам естественно некогда в свои игры играть - кранчить надо.
Все разговоры про то что под это надо выделять программистов и QA выединного яйца не стоит: берется один погроммист (из тех тысяч, что у них там есть) и переписывает сериализацию, раз уж тут чувак с дизассемблером быстро разобрался в чем проблема, то у RS вообще с этим проблем не будет. И для новой сериализации не нужно будет выделять QA для ручного тестирования, достаточно простенький unit-тест написать и это все автоматом протеститься. Ну а самое главное, RS далеко не самая белная компания, которой постоянно заносят бабло. Так что тут однозначно косяк менеджмента и программисты пишушие говнокод из под бамбуковой палки. Я вообще удивлён что они юзают json с такими большими размерами файлом, еще для онлайн игры (теперь понятно откуда у них читеры так цветут и пахнут. Тут вообще надо было делать бинарную сериализацию.
Всегда кекаю с таких стори.
С одной стороны в гейдеве решают просто пиздец сложные проблемы на стыке кампуктер саенса + математики там и физики.
С другой стороны имеем чувака, который написал "наивное" решение для задачи. Хотя в целом соглашусь с другими комментами — классика разработки, иногда и сам такие проблемы оставлял в проекте, частенько приходилось фиксить за другими тоже.
Подозреваю, что таска в жире или багтрекере на рисерч проблемы скорости загрузки висит с лоу приорити где-то с 2015го, на неё давно уже хуй забили.
В обсуждении на hn была прекрасная фраза:
But as Bruce Dawson oft notes, quadratic behaviour is the sweet spot because it's "fast enough to go into production, and slow enough to fall over once it gets there". Here odds are there were only dozens or hundreds of items during dev so nobody noticed it would become slow as balls beyond a few thousand items.
Да кстати это уже не первая история, связанная с РокСтар. У них еще обнаруживалась любовь привязывать обработчик физики к FPS, что не очень хорошее решение, если в игре делается какой-то упор на физику - проще-то работать с постоянным шагом, иначе можно получить летающие тачки... Собственно в том же Unity специально впилили готовое решение с FixedUpdate, чтоб народ не парился (в то время как для UE народ сам таким озадачивается если надо, ну а хули, движок для профессионалов с исходниками - бери и сам допиливай С++ напильником под свои задачи), ну а программисты РокСтар настоящие самураи - у них нет цели, только путь...
Да и истории про читеров в RDR Online и GTA Online кагбэ намекают. Ну или там патчи для онлайн игры, влияющие на глюки в сингле RDR 2. Да блин, после каждого патча на ПК мне приходилось ручками править в инишнике Vulkan на DirectX чтоб игра запускалась (иначе ERR_GFX_INIT)
Ну т.е. все указывает на то, что там творится бардак: тысячи людей хаотично что-то делают, подгоняемые бамбуковыми палками, все параллельно переделается по несколько раз, никто ничего не знает, капитана со старпомом забыли на берегу, так как они закутили с ромом и дамами, лоцман выполняет функции кока, так как на коке решили срезать косты после очередного захода в порт когда капитану не хватило на кокс, боцман утопился, а кораблем управляет костыль...ну просто капитанским запасным костылем штурвал заклинили, чтоб корабль шел прямым курсом, правда не понятно куда...а в это время пороховые обезъяны, подгоняемые канониром, бегают и заделывают дыры всем чем (и кем) под руку попадётся, хотя новые дыры у них получаются все же лучше, ну а корабельный плотник штопает на ветру паруса, пока мастер парусов тихо покачивается на рее... Йо-хо-хо и бочонок рома! Свистать всех наверх! Сейчас мы будем кранчить!
Не удивлюсь если этот кусок кода написал какой-нибудь интерн из местного британского вуза (или какое там у них подразделение за онлайн версию отвечает?), а потом срулил в ужасе, а теперь никто уже не помнит кто и как за это отвечал, и про код уж все и забыли.
Ну и RS реально здоровенная студия с высокой текучкой, а про проблему масштабирования еще Брукс писал на заре программирования, а Шрайер это своими расследования по RDR2 косвенно подтвердил.
мне кажется, всё намного банальнее. Мы не располагаем статистикой, а вот разработчики ей располагают. Думаю, дядьки из Т2 умеют считать деньги, и решили оставить так, раз с релиза ничего не изменилось. Иначе, этим конечно занялись бы.
Я четвертый фоллач как-то дропнул, потому что раздражали загрузки по 10 секунд. То, что описывается в посте — это какое-то сумасшествие
Я забил на гта онлайн из-за долгих загрузок, так что они могли потерять теоретические долларии
Я вот дропнул ГТА онлайн через часов 5 игры, потому что 50% времени смотрел на экран загрузки на своём тогдашнем несвежем ноуте с HDD. Хотя саму игру он тянул прилично без сильных просадок по фпс.
Аналогично, бывало даже так, что друзья успевали мини миссии пройти пока я грузился, хотя игра шла в 40-50 фпсах на высоких
Я вот играю в одну ММО, так вот в нее зайти занимает не больше минуты. Бывает так, что я захожу минут на 15, делаю какой-нибудь дейлик и выхожу, потому что хочется поиграть немного. С ГТА такое не прокатит, ибо там 10 минут уйдет только на загрузку... Соответственно, из-за этого в теории может просесть онлайн, а меньше онлайн = меньше донатов. Я думаю это как-то так работает, могу ошибаться
хотел начать играть в гта онлайн - зашёл один раз, увидел эту адовую загрузку, подумал пк перестал тянуть интернет и забил
И при том что там в принципе долгие загрузки, там еще иногда бывают и СУПЕР долгие загрузки, я хз это баг или нет. Например играю с братом, заканчиваем задание, меня кидает в сессию, а брат может еще несколько минут сидеть с черным экраном и так постоянно...
Еще друзья ни раз жаловались, что в гта не сохраняется прогресс их ограблений\угонов или чего-то такого. И они снова идут делать, пока не засчитает
Я вот играю в одну ММО, так вот в нее зайти занимает не больше минуты.
Бдо?
Не понимаю спокойствия комментаторов. Это же пиздец- один чел разобрался с реальной проблемой, на которую миллионы юзеров жаловались годами. И с которой Роки вообще ничего не делали. Это же какой-то запредельный уровень похуизма.
роки, может, и знают про это решение, но его нужно оттестировать, а учитывая масштабы игры – не исключено, что это не окупится
вы ёбнулись, что ли, извините за выражение?
я сам девелопер и прочитал его оригинал (https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/), там просто ебучий говнокод, правится элементарно, тестируется за день
вы не тех защищаете, алло
Яркий татарин
То о чем посточно думку думают разработчики на Юнити, оказалось проблемой для великого и могучего RS где работает несколько килочеловек...
Вообще косяки такого плана часто встречаются. Но я думаю что там было все куда прозаичнее: кранчи, менеджер с бамбуковой палкой, в общем кто-то это написал, а потом уже все про это позабыли и забыли, и походу с обратными связями в RS все плохо :-(
В общем тут скорее всего говноменеджмент виноват. Меня вообще сама ситуация забавляет, что в онлайн-игре так все просто в json лежит, кек. Теперь понятно почему так часто новости про читеров в GTA и RDR появляются. Впрочем, иные студии вообще используют Пухтон Пайкл использую для сериализации в ММО...
Сделают проще. Относительно скоро выпуск версий для некстген консолей, туда и воткнут фикс
Не понимаю спокойствия комментаторов
Байтишь геймеров на впадание в ярость?
Не понимаю спокойствия комментаторов.
Так все всё понимают, просто. Не первый день в индустрии же. Не первый раз такое случается.
Ты будто не знаешь что за ад творится в коде программ-игр.
Но не настолько же- получать тысячи жалоб на долгие загрузки и даже не провести простейший (как оказалось) поиск решения.
Но зачем, если они гребут деньги лопатой?
Спорим, там другие тысячи жалоб на читеров, на баги, на оскорбления в чате...
тут васян в соло гта починил, там 5 васянов варкрафт фиксят и доделывают. за какой хуй ебланы из этих многомиллиардных контор вообще деньги получают?
Ну вот так оно, да. А мне тут доказывали недавно, что в игровых студиях одни элитные профессионалы и знатоки своего дела сидят)
В отделе маркетинга уж точно, это единственный отдел, который прибавил с 90-х.
А что там экстраординарного? Просто делают фейковые заскриптованные ролики, заливают деньгами все информационные ресурсы чтобы они постили новости о них, покупают всех игрожуров и блоггеров с их "независимым и честным мнением", нанимают какую-нибудь вышедшую в тираж звезду - в общем, гуляют на все деньги. Потом разработчики выпускают что-то отдалённо похожее и еле живое, и вуаля!
Особенно там, где главное отсидеть в офисе положенное время, и можно уже пиздовать домой)
Яркий татарин
Ну как сказать...у них есть вредная особенность сруливать и писать какой-нибудь бездушный b2b софт 35-40 часов в неделю в какую-нибудь корпорацию зла за зарплату раза в 2 больше, вместо того что бы кранчить за идею (и за яхту Бобби Котика)...
так ты покупай инди, там васяны вообще игры делают и круто получается иногда
Так и делаю. Последние игры, которые меня прям затащили с головой были инди
Я подумал создать пост в драме на тему нелюбви модераторов к лолям, но передумал. Хер бы с ним. Если модерация хочет работать как на диком западе и не понимает разницы между голыми лолями и просто лолями, то чего я буду в это лезть, это их личные ментальные проблемы, не мои же, правда? Так что я пойду пить кофе. А несправедливый суд пусть остается на совести тех, кто его производит.
А всё, больше нет шуток. БОЛЬШЕ НЕТ МОИХ ЛАЙКОВ. Всё пропало. Создаём новый тред
Кстати кофе в обед топчик, прям по всем канонам правильного кофепития