О GTA Online. Небольшая история личного пожара
ВНИМАНИЕ! Данный обзор касается только актуальной версии GTA Online. Если вы надумали покупать игру ради прохождения ее сюжета в одиночестве, либо же, в крайнем случае, ограблений в кооперативе с 4 друзьями - там твердый, как член окаменевшего мамонта, палец вверх.
Ну так приступим. Когда игра только-только посетила нашу замечательную платформу - онлайн интриговал, ведь невиданное дело, ААА игра и с бесплатными дополнениями! И какими! Хейсты, они же ограбления, один из лучших кооперативных режимов, что я видел в играх, благо играл их с друзьями. Разнообразные, с постановкой уровня одиночной компании, требовательные к тимплею и с разными задачами для каждого из игроков, по большей части. Просто круто.
И вот, затянувшись в это болото, проходя хейсты раз за разом я ждал продолжения. А его все не было. Выходили паки машинок, выходили бесполезные режимы и тонны шмоточек, игра начинала надоедать. И тут, о чудо, анонсировали расширение свободного режима, с заданиями для всего лобби и прочего подобного. На проверку это все оказалось пшиком. Скучные эвенты из разряда раскрой парашют позже всех, к тому же сломанные читерьем (о чем позже). Потом вышло обновление с бандитами и более осмысленными миссиями во фрирайде, ворох никому не нужных режимов для адвессари мод и квинтэссенция полного непонимания рокстаром концепции и ЦА собственной игры - новые приключения бандитов и мошенников (а уж название какое, ух).
И вот в чем проблема. Кроются все беды в трех вещах.
1) ДЛЦ бесплатные, основная монетизация игры в данный момент происходит покупкой донатных карт на игровое бабло. Игра натурально напоминает f2p гриндилки. Максимальный прирост денег примерно 20к раз в 10-15 минут. 100к в час. На покупку одного годного суперкара вам нужно потратить 20-25 часов чистого времени на гринд одних и тех же миссий, скучных в закрытом лобби или "веселых" в открытом, где можете смело делить прирост денег на 2-3, но об этом дальше.
Каждое новое длц жрет деньги, как не в себя, игра задизайнена так, чтобы вы всегда тратили кучу денег на неизвестно что, без возможности триала хоть на 5 минут, даже квартиру перед покупкой не посмотреть изнутри, в общем, нормальный человек не прикоснется и к половине фишечек, если не будет покупать донат или читерить. Или умолять читеров дать им деньги, о чем постоянным плач бомжей в чате.
2) Последнее длц было насильно загнано в открытые лобби. И вот что получается. Вы, максимум в 4 человека делаете свои миссии. 26 (!) других людей в городе видят огромную надпись, что они должны вам помешать. В итоге все это превращается в дичь. Пример из жизни: вы должны доставить грузовик с прицепом из порта за город. Прилетает 2 гидры, приезжает 5 инсургентов с пулеметами, подбегает еще парочка людей с гранатометами, грузовик взрывают. Кто-то привозит новый - его взрывают. После смерти все ресаются через улицу. Весело? Ага. И так постоянно. У вас просто нет возможности избавится от других игроков. Искать мертвое лобби разве что, где всем на вас насрать или народу просто мало и можно отбиться. От двух гидр, которые прилетят через минуту. Блять, да в бф респ техники и тот дольше! Так же уточную - заработанное можно не просто потерять из-за других игроков, но и уйти в минус. На второй день апдейта мы в никуда всрали 500к товара и вечер гринда, из-за одной ракеты.
Итого это уже нихуя не гта. Это какой-то пиздец и вакханалия. Симулятор нашествия инопланетян в ЛА, Тони Старка только летающего не хватает, он бы вписался в атмосферу того ада, что творится в открытых лобби. И это все без баланса, с ущербным неткодом и с.
3) . читерами. Которых тут больше, чем обычных игроков. После патча всегда есть пара дней, пока дети ждут обновления читов и можно поиграть спокойно. Через пару дней в лобби будет все еще веселей. Ибо читеры тут могут: быть бессмертными, взрывать всех на сервере, превращать игроков в предметы, давать вам насильно деньги (вас потом еще и забанят на 2 недели, к слову), вешать лобби, делая 1-2фпс и много чего еще интересного. И самое главное, это не платные читы-подписки. Это паблик скриптхуки, которые скачать может любой ребенок по запросу в гугле. Без регистрации и смс.
Подводя итог. Я бы с удовольствием заплатил бы еще 2 тысячи за сизон пасс, да даже 3. Но за хороший уникальный контент, за нормальную экономику без гринда, за античит, за то, к чему я привык в ААА играх. Геймплей то тут шикарный, как ни крути, но натянута на него f2p параша по высосу денег, нервов и вашего времени.
Гринди миллионы, чтобы гриндить миллионы. Плати деньги за то, чтобы тебя имели ©
Лига Игровых Обзоров229 постов 1.8K подписчика
Правила сообществаТематика прикрепляемых постов: компьютерные и видеоигры. Можно и кино - но связанное с какой-либо игрой.
Тип поста: обзор. Новости и всякие там обои - это удел других сообществ. А вот обзор, например, на качественность прорисовки нижней части коня Геральта - всегда пжлста.
Структура: пользуемся стандартным конструктором длиннопостов Пикабу, поскольку он высокотехнологичен, аки порох для монголов. -
- Никакой рекламы. А так хоть чертей в комментах вызывайте. -
Накопил на топ квартиру за один день) сделал всего 5 миссий. Только ограбления и все банк. Потратив примерно на это 4 часа.
Отлично, люблю критический анализ игр. А особенно подробный разбор их недостатков.
И спасибо за первый пост в сообщество - это маленький шаг для обзорщика и большой шаг для человечества.
Или наоборот. Или, нет, стоп. А нет, да. Да да. Именно так.
В 1-й же день выхода ДЛЦ с организацией просрал 670к из-за дауна,который не смог самолётом управлять,в итоге разбил его. Через 2 дня опять насобирал 400к и опять его просрал,опять же из-за дауна который разбил самолёт. Итого минус 1лям+ из-за криворуких баранов.Еще видел на стриме чувак собирал 2 часа грузы,потом когда решил продать их,его выкинуло из RGSC и он потерял груза на 110к(ну пол беды еще),а потом еще раз запустил продажу и его подбили какие-то дауны и он потерял оставшиеся 660к
Я прошел на соньке и купил когда вышла на комп, и вот на компе особенно по сети она меня конкретно разочаровала. Сначала подожди несколько минут загрузки (комп и инет у меня неплохие), потмо подрубись в лобби, подожди еще минут десять пока все придут, потом подожди еще пять минут пока прогрузится миссия, и. миссия отваливается, подожди еще пять минут пока ты загрузишься в своем доме, и все начинай заново, и когда наконец через часик ты оказываешься в миссии, попробуй понять что от тебя требуется, и вот ты быстро сообразил, что надо делать, однако это не так быстро, как твои тиммейты закончили задание.
Короче, пришлось забросить, а я ведь так ждал.
Помню как в своё время в гта дуплили и подавали аббер, много бабла поимели, много машин накупили
Друзья не играют, поэтому прошел соло и забил на онлайн, в 1 там скучно :(
А там можно как-то создать закрытое лобби? Господи, да я часы тратил на самом старте игры, что-бы с друзьями можно было передвигаться по центру, т.к. на полных лобби там везде курумы были.
суть обзора - кококо я криворукий уебан и всрал товара на 500к. каким боком тогда я с товарищами по игре забили на фуловой сессии склад на 111 ящиков ни потеряв при этом ни одного груза? научись играть, прежде чем лезть в свободный режим. заебали уже нытики такие. ведь именно вы и клянчите каждую сессию у читеров деньги, именно из за вас, сраных ракалов отменили уровневое ограничение на технику и теперь каждый дебил который додумался выклянчить у читеров деньги летает на той самой гидре и катается на том самом танке/инсургенте и вам же мешает. орали за свободный доступ к технике? получите орду нубасов, которые вам же и мешают. а потом завоете, когда из за вашего вайна отменят еще и ограничение по уровню на пушки. вот тогда ахуеете от орды нубов с миниганами.
единственное что тут верно, это про читеров. непонятно почему роксы не выпускают нормальный античит, ведь это им принесет еще больше доната. могли бы и вложиться.
А в чем вообще смысл GTA Online? Чем там можно заниматься? Я не особо понимаю саму концепцию GTA в интернете.
1) Тебя никто не заставляет покупать новомодные суперкары и прочие прелести, а если уже ты и захотел, то не жалуйся нам, что они не падают с неба. 2) 26 человек тебе не будут мешать. Ты переоцениваешь собственную важность. Пару-тройку приколистов хай-лвлов могут пофаниться над тобой и твоей нелепой миссий в открытом мире. 3) Это очень редкое сейчас явление. Если ты встретил того, кто стреляет лучше тебя, это вовсе не значит, что он читер. Почему-то за овер 100 часов онлайна я так ни одного читера и не встретил. Забавно, не так ли?
Все верно, запороли игру со своим донатом. GTA Online заработала 500 000 000$ благодаря микроплатежам внутри игры.кому интересно - статья по ссылке: http://gta-real.com/news/che_kavo/2016-06-10-2042
Привет! Я как раз тот чел на гидре. Как же обожаю бомбилок троллить и выслушивать нытьё в чат. Это длц просто подарок, ещё никогда в гта так весело не было.
лично для меня это стрелялка,захожу иногда поубивать игроков
Я думал то что было в BF3 и в DNF - в прошлом. Потом еще удивляются откуда столько пиратов. У них заоблачные доходы, а наладить работу с читерами и прочими нечестностями - не могут
Закрытая сессия, и нет проблем! А насчет читеров: их на 4-й плойке нет :)
Когда идей уже не осталось
Долгожитель
Интересный дядька
Самая мрачная часть GTA из всей серии
Доброго времени суток, дорогие читатели. Данный пост будет посвящен мультиплатформенной игре из серии GTA — GTA IV. Не зря данную часть называют самой мрачной в серии GTA, и одной из самых драматичных среди всех игр. Несмотря на наше восприятие о GTA, а это: "угон машин, перестрелка с полицейскими и бандами, веселый онлайн", четвертая часть довольно сильно выделяется на фоне всех остальных. (P.S: я впервые пишу что-то подобное, поэтому прошу, строго не судить, приятного чтения).
И так, начнем с того, что сама по себе игра показывает нам настоящую жизнь наемного киллера. Нико Беллик, иммигрант, уроженец Сербии, приплывает в Либерти-Сити по приглашению своего кузена Романа Беллика. Учитывая прошлое нашего главного героя, а именно то, что на войне он потерял своего старшего брата, повидал много зверств, убийств, и так далее, Нико имеет циничные взгляды на жизнь, его преследует депрессия, чувство вины. Он потерял свой отряд в военных действиях из-за предательства, а сам еле-еле спасся от смерти. Оказавшись безработным после войны, Нико приходится вступать в различные сербские преступные группировки, параллельно пытаясь найти предателя и отомстить. Позже, попадает в тюрьму на небольшой срок, а после работы на русского контрабандиста Родислава Булгарина и вовсе бежит в Либерти-Сити, ибо после того, как судно с людьми тонет, а Нико остается живым, Булгарин пытается убить серба, обвинив его в "краже денег".
Cледует отметить, что разработчики хорошо поработали над тем, чтобы игрок, проходящий сюжет игры, смог полностью ощутить ту тоску и тяжесть на душе главного героя, ведь, например, по ходу прохождения, нам не раз дается выбор — убить или оставить в живых. Сценаристы качественно сделали свою работу и добились того, чтобы через игру передать суть жизни и работы киллера. Просто так уйти и забыть все не получится, приходится бороться не только с внешними врагами, но и с внутренними. А чего стоит только мелодия (Michael Hunter - Soviet Connection), также передающая атмосферу игры. Кстати говоря, взят образ Нико Беллика с персонажа российского фильма "В тылу врага", в котором Владимир Машков исполнял роль наемного убийцы.
По ходу игры, Нико заводит отношения с Кейт Макрири, и здесь все как-то неоднозначно. С одной стороны, между Нико и Кэти дружеские отношения, а с другой, они привязаны друг к другу. Помимо нее, Нико очень дорожит Романом, своим кузеном. Оказавшись в Либерти-Сити, Нико узнает о долгах Романа с различными мафиями из-за любви к азарту, что подвергает опасности их обоих, хотя Роман рассказывал ему о том, что живет богато, и сможет обеспечить его. Спасая Романа, Нико, по сути, заводит себе новых врагов. Нельзя также не упомянуть Дмитрия Раскалова, главаря русской мафии "Семья Раскалова", который послал Беллика для убийства Михаила Фаустина. Перед смертью Михаил предупреждает главного героя, что Дмитрий предаст Нико точно так, как и его. И это оказывается правдой, ведь Дмитрий сдает Беллика Булгарину, от засады которого сербу кое-как удается спастись.
Мне кажется, что Нико один из немногих персонажей GTA, который притягивает игрока своей прямолинейностью и простотой. В магазинах нет множества одежды, как в части San Andreas или GTA V, но ведь человеку такого типа и не нужны яркие майки с красивой обувью. По сути, на протяжении всей игры разработчики, в переносном смысле, не дают нам "поглумиться" над главным героем, надев на него что-то смешное, ведь тогда мы утеряем смысл, суть игры. Ведь не зря Нико Беллик получил 13 место в списке пятидесяти лучших персонажей компьютерных игр по версии книги рекордов Гиннесса. Этот славянский образ с грубой внешностью и сильным сербским акцентом понравился как на Западе, так и в Европе. Но у игры есть и свой "минус", а именно то, что позабавиться, играя через нее в онлайне — не получится. И заметьте, что на фоне тех же GTA: SA и GTA V, четвертая часть уступает в плане затягивания. То есть, пройдя сюжет, делать ничего не остается. Это, возможно, главная проблема, ведь после выпуска игры, разработчикам нужны деньги на новые проекты, а для их получения, нужно как можно больше людей удержать в предыдущих проектах.
Возвращаясь к сюжету, как я и написал ранее, Нико находит того самого предателя, Дарко Бревича. И здесь снова перед нами стоит выбор: всадить в Дарко пули (кстати, их Нико всаживает 12 штук — в честь количества погибших из отряда), или просто уйти. Именно эта возможность убить или оставить в живых тех или иных противников, мне кажется, позволяет игроку по-настоящему ощутить себя на месте Нико, ибо, в отличие от предыдущей части, выбирать между чем-то здесь приходится намного чаще. Но вернемся к Дмитрию Раскалову, которого игрок тоже может как пощадить, так и убить, только, по сравнению с Дарко Бревичем, и тот и тот выбор очень сильно повлияют на сюжет, а точнее — на концовку. Убив Дмитрия, Роман сыграет свадьбу со своей возлюбленной, Мэллори Бардас, только вот, если выбрать концовку "Месть" (убить Раскалова), неподалеку от радующейся толпы остановится автомобиль, из которой последует стрельба в исполнении Джимми Пегорино. Однако, получится так, что пытаясь убить Нико Беллика, Пегорино попадет в Кейт Макрири, в обнимку с которой шел Нико. И казалось бы, можно уже винить себя в том, что не надо было убивать Раскалова, но нет. Оставив Дмитрия в живых, во-первых, Кейт откажется езжать на свадьбу, потому что Нико отказался от своих принципов,а во-вторых, попытаются убить Нико, но теперь уже со спины. Шальная пуля попадает в Романа, который скоропостижно умирает, а Нико, в приступе ярости, начнет всаживать всю обойму в убийцу.
После смерти Кэти, Нико начнет преследовать Пегорино, а вскоре, после длительной погони, убьет выстрелом в голову. Дмитрия же, из-за которого Нико потерял своего дорогого кузена, будет ждать та же смерть. По сути, в четвертой части нет "хорошей концовки". И да, советую к просмотру следующее видео (15:10). Кстати, после концовки со смертью Романа, мы узнаем, что его возлюбленная беременна, затем, звонит Кейт, которая просит принять ее соболезнования, но после титров, ее номер вовсе пропадает с телефона Нико.
После прохождения данной части игры, GTA V может показаться несколько "детской". Непонятно, что нас ждет в 6 части, но, надеюсь, у разработчиков получится объединить интересный и драматичный сюжет с затягивающим онлайном. Всех благодарю за чтение данного поста, желаю добра и хорошего настроения.
Некстген для GTA5
Сегодня "Rockstar Games" (создатели серии игр GTA и RDR) сообщили про выход улучшенной версии GTA V для консолей нового поколения(PlayStation 5 и Xbox Series X|S).
Расширенная и улучшенная версия выйдет 11 ноября этого года.
P.S. Картинка была на пикабу
Джонни Синс попросил Rockstar побыстрее выпустить GTA VI
Как дела, Rockstar Games? Это ваш любимый доктор, юрист, учитель, сантехник, астронавт и геймер, Джонни Синс. Мы все любим GTA V, но мы давно ждём GTA VI. Ну же, Rockstar Games, дайте уже нам игру, которую мы терпеливо ждали.
Ничего не предвещало беды
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оциальный Клуб.
Я (не) одинок
Если доверять этому опросу, проблема достаточно широко распространена, чтобы слегка раздражать более 80% игроков. Прошло уже семь лет!
Я немного поискал информацию о тех
20% счастливчиках, которые загружаются быстрее трёх минут, и нашёл несколько бенчмарков с топовыми игровыми ПК и временем загрузки онлайн-режима около двух минут. Я бы кого-нибудь убил хакнул за такой комп! Действительно похоже на железячную проблему, но что-то не складывается…
Почему у них сюжетный режим по-прежнему загружается около минуты? (кстати, при загрузке с 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 тыс. предметов.
Что это? Судя по некоторым ссылкам, это данные для «сетевого торгового каталога». Предполагаю, он содержит список всех возможных предметов и обновлений, которые вы можете купить в GTA Online.
Проясним некоторую путаницу: я полагаю, что это предметы, приобретаемые за игровые деньги, не связанные напрямую с микротранзакциями.
10 мегабайт? В принципе, не так уж и много. Хотя sscanf используется не самым оптимальным образом, но, конечно, это не так уж плохо? Что ж…
Да, такая процедура займёт некоторое время… Честно говоря, я понятия не имел, что большинство реализаций sscanf вызывают strlen, поэтому не могу винить разработчика, который написал это. Я бы предположил, что он просто сканировал байт за байтом и мог остановиться на NULL.
Проблема 2: давайте использовать хэш-…массив?
Оказывается, второго преступника вызывают сразу за первым. Даже в одной и той же конструкции if, как видно из этой уродливой декомпиляции:
Все метки мои, и я понятия не имею, как на самом деле называются функции/параметры.
Вторая проблема? Сразу после разбора элемента он хранится в массиве (или встроенном списке C++? не уверен). Каждая запись выглядит примерно так:
А перед сохранением? Он проверяет весь массив, сравнивая хэш каждого элемента, есть он в списке или нет. С 63 тыс. записей это примерно (n^2+n)/2 = (63000^2+63000)/2 = 1984531500, если я не ошибаюсь в расчётах. И это в основном бесполезные проверки. У вас есть уникальные хэши, почему не использовать хэш-таблицу.
Во время реверс-инжиниринга я назвал его hashmap, но это явно не_hashmap. И дальше ещё интереснее. Этот хэш-массив-список пуст перед загрузкой JSON. И все элементы в JSON уникальны! Им даже не нужно проверять, есть они в списке или нет! У них даже есть функция прямой вставки элементов! Просто используйте её! Серьёзно, ну ребята, что за фигня!?
Доказательство концепции
Всё это конечно классно, но никто не воспримет меня всерьёз, пока я не напишу реальный код для ускорения загрузки, чтобы сделать кликбейтный заголовок для поста.
План такой. 1. Написать .dll, 2. внедрить её в GTA, 3. зацепить некоторые функции, 4. . 5. профит. Всё предельно просто.
Проблема с JSON нетривиальная, я не могу реально заменить их парсер. Более реалистичным кажется заменить sscanf на тот, который не зависит от strlen. Но есть ещё более простой способ.
* подождать длинной строки
* «закэшировать» начало и длину
* если поступит ещё вызов в пределах диапазона строки, вернуть закэшированное значение
Что-то вроде такого:
А что касается проблемы хэш-массива, то здесь просто полностью пропускаем все проверки и вставляем элементы напрямую, поскольку мы знаем, что значения уникальны.
Полный исходный код PoC здесь.
Ну и как оно работает?
(6*60 - (1*60+50)) / (6*60) = 69.4% улучшение времени (класс!)
Да, чёрт возьми, получилось! :))
Скорее всего, это не решит всех проблем с загрузкой — в разных системах могут быть и другие узкие места, но это такая зияющая дыра, что я понятия не имею, как R* пропустила её за все эти годы.
Краткое содержание
При запуске GTA Online есть узкое место, связанное с однопоточным вычислением
Оказалось, GTA изо всех сил пытается распарсить 10-мегабайтный файл JSON
Сам парсер JSON плохо сделан/наивен и
После парсинга происходит медленная процедура удаления дублей
R*, пожалуйста, исправьте
Если информация каким-то образом дойдёт до инженеров Rockstar, то проблему можно решить в течение нескольких часов силами одного разработчика. Пожалуйста, ребята, сделайте что-нибудь с этим :<
Вы можете либо перейти на хэш-таблицу для удаления дублей, либо полностью пропустить дедупликацию при запуске как быстрое исправление. Для парсера JSON — просто замените библиотеку на более производительную. Не думаю, что есть более простой вариант.
* Получил подтверждение от R*, что это скоро исправится
* Только что получил награду в размере $10k через их внутриигровую награду H1 в качестве исключения :)) (обычно это делается, только по вопросам безопасности)
* Пытаюсь понять, что такое W8 (от ред. это форма налоговой службы США) и как его заполнить (лол)
* Я сделаю еще один тест, как только обновление выйдет, надеюсь их инженеры не разочаруют :)
Grand Theft Auto V: Premium Edition (Epic Games Store)
Начало 14 Мая (18:00 по МСК или 18:00 по Киеву) -> Конец 21 Мая (18:00 по МСК или 18:00 по Киеву)
Для получения игр необходимо:
1) Перейти по ссылке:
2) Авторизоваться на сайте
3) Нажать кнопку получить
4) Игры будут зарегистрированы на ваш аккаунт Epic Games
Я так и планировал
Grand Theft Auto V стала самым успешным медиапроектом в истории
Аналитическая компания MarketWatch поделилась статистикой Grand Theft Auto V, согласно которой игра стала самым доходным медиапроектом за всё время. С момента релиза в 2013 году издательству Take-Two удалось продать больше 90 миллионов копий GTA V и заработать около 6 миллиардов долларов. При этом, по данным MarketWatch, бюджет игры составил 265 миллионов.
В качестве сравнения аналитики привели «Аватара» Джеймса Кэмерона — самый кассовый фильм за всю историю кинематографа, который при бюджете 247 миллионов долларов собрал 2,8 миллиарда.
Продажи GTA V в разы превысили результаты предыдущих частей. Авторы обзора отметили, что статус блокбастера серия приобрела в эпоху PS2 с выходом Vice City.
Продажи игр серии GTA:
GTA V — 90 миллионов
GTA: San Andreas — 27,5 миллиона
GTA IV — 25 миллиона
GTA: Vice City — 20 миллионов
GTA III — 17,5 миллиона
Ближайшим конкурентом GTA V по количество проданных копий среди проектов других издательств остаётся Call of Duty: Modern Warfare 3 (26,5 миллиона копий), следом за ней Black Ops (24,2 миллиона).
Что касается платформ, продажи GTA V распределились практически поровну между PS3, PS4 и Xbox 360. На ПК приходится лишь 2,1% общего тиража, сообщает MarketWatch. Тем не менее, по информации SteamSpy, в сервисе Valve около 10 миллионов игроков приобрели Grand Theft Auto V.
Только за 2017 год стоимость акций Take-Two увеличилась на 65%. В целом с момента выхода Vice City активы компании подорожали почти на 1000%.
Согласно отчётам Take-Two, значительную часть прибыли GTA V приносят микротранзакции. Во втором квартале 2018 финансового года компания заработала 443,6 миллиона долларов, 43% из которых пришлось на внутриигровые покупки и DLC.
P.S. Как считаете, благодаря чему были достигнуты столь феноменальные результаты? Высокое качество видеоигры и её исключительность? Направленность на более широкую аудиторию? Эта заслуга по большей части GTA Online? Или всё вместе взятое? Пишите, своё мнение)
Из всех частей GTA я играл в Vice City, прошёл почти на 100%. А также в San Andreas, но по сюжету я там много не прошёл, там была миссия где на тачке нужно танцевать, я никак его не мог пройти. (Я ещё тот нуб).
Источник DTF: Ссылка
Gta: Россия которую мы заслужили.
Начиная с первой трёхмерной игры серии в интернете всегда ходили слухи о том, где же будут происходить события новой части. И всегда были предположения, что действия следующей части "великого автоугонщика" будут происходить в России. Но дальше упоминаний о "русской мафии" и русскоязычного квартала в gta 4 обычно дело не заходило.
В gta: online разработчики же решили охватить как можно больший контингент и сначала в игре появилась "отечественная" военная техника как например АН-12 с забавным названием "Bombushka":
Или ракетный комплекс "Chernobog":
Но в новом обновлении появился и яркий представитель гражданской техники. Знакомьтесь, "Cheburek":
P.S. Как родная шоха попала на улицы Лос Сантоса стоит только догадываться, но в связанных с ней файлах есть ещё и нечто с названием "Hardbass".
11 загрузок из 10
Какое чувствительное стекло
GTA Online: Tuners and Outlaws - Крутой фанатский концепт DLC
Если у вас возникли сложности с восстановлением пароля, то прочитайте эту статью. Или напишите в службу поддержки на [email protected] .
В письме укажите данные вашего профиля: никнейм, почта, номер телефона, какие посты вы оценивали. Это ускорит восстановление пароля :)