» »

Odpravil hrošča, ki sta zavirala GTA Online, in zaslužil 10.000 dolarjev

Odpravil hrošča, ki sta zavirala GTA Online, in zaslužil 10.000 dolarjev

Prvi problem

Drugi problem

Slo-Tech - Rockstarjeva igra Grand Theft Auto Online je znana po dolgih nalagalnih časih, ki brez težav presežejo 10 minut, kar jezi številne igralce. Težava se vleče že leta, a Rockstar doslej ni reagiral. Zato se je razhroščevanja igre lotil T0st, ki ni le ugotovil razloga, temveč je izdelal svoj popravek in odkritje sporočil Rockstarju. Ta je danes izdal uradni popravek, ki skrajša čas nalaganja za več kot polovico, hkrati pa odkritelju izplačal 10.000 dolarjev nagrade v okviru programa za prijavo odkritih lukenj (bug bounty).

Tovrstni programi običajno predvidevajo le nagrajevanje odkritih varnostnih ranljivosti, a je Rockstar v tem primeru naredil izjemo, kar priča o pomembnosti tega hrošča. Še več, Rockstar je pripravil lasten popravek, ki takisto skrajša nalaganje igre za vsaj polovico, nad čemer so igralci navdušeni. Rockstar je potrdil, da gre za isto nevšečnost, ki jo je odkril t0st.

Da je tako dolgo čakanje očitno hrošč, je t0st posumil ob analizi dogajanja. Ves ta čas je bil procesor obremenjen (in to le eno jedro), aktivnosti na disku, v pomnilniku ali mrežnega prometa pa praktično ni bilo. Ugotovil je, da igro upočasnjujeta dve težavi. Prva je 10 MB velika datoteka JSON, ki se prepočasi obdeluje (parse) zaradi naivno uporabljene funkcije sscanf, ki kliče strlen. Drugi razlog pa je bilo velikansko polje zgoščenih vrednosti s 63.000 vnosi, kjer program naivno primerja vsako vrednost z vsako drugo (deduplication). Ko je ti funkciji popravil, je igra oživela.



39 komentarjev

jebitese ::

Ko pohitriš za 10%, je izboljšava. Ko pohitriš za večkrat, je odpravljanje hrošča.

WhiteAngel ::

Smo pa globoko padli ;((

shadeX ::

Moje mnenje: Rockstar se ni dal na to da bi zadevo popravil, ker meni deluje kot trivialen bug. Koliko igralcev je realno droppalo zaradi tega črva?

Druga zadeva je da sedaj lahko "isto" napako popravijo na Red Dead Online, ker so nalagalni časi absurdni.

DeeCoy ::

shadeX je izjavil:

Moje mnenje: Rockstar se ni dal na to da bi zadevo popravil, ker meni deluje kot trivialen bug. Koliko igralcev je realno droppalo zaradi tega črva?

Druga zadeva je da sedaj lahko "isto" napako popravijo na Red Dead Online, ker so nalagalni časi absurdni.

Kam smo padli, da je sploh kdo tako kodo napisal..

Rias Gremory ::

WhiteAngel je izjavil:

Smo pa globoko padli ;((

Se strinjam.

Na Grand Theft Auto Online @ Wikipedia piše da je bila igra izdana 14.4.2015 za Windows (v povezavi na izvirno novico piše, da je hrošč omejen na Windows). Podjetje je skoraj 6 let ignoriralo pritožbe uporabnikov ter v šestih letih se ni "splačalo" plačati par programerjev, da se lotijo popravka? :|

Baje pa po posodobitvi ne dela Xbox verzija.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

eVro ::

DeeCoy je izjavil:

Kam smo padli, da je sploh kdo tako kodo napisal..


... in to pri Rockstarju, ki nikoli niso znali delati z malo denarja!

Zgodovina sprememb…

  • spremenil: eVro ()

jlpktnst ::

Toliko o mitu carskih c++ developerjev...

WhiteAngel ::

jlpktnst je izjavil:

Toliko o mitu carskih c++ developerjev...


Saj ravno v tem je problem ... c++ developerji niso priučeni javascript nosql developerji 8-O No, tu izgleda, da so in da so na ušesih sedeli pri poslušanju APS-a (če so ga sploh poslušali :| ). Ne vem pa, kako je lahko senior developer tole kodo skoz spustil ob review-ju ;((

shadeX ::

Ne vem pa, kako je lahko senior developer tole kodo skoz spustil ob review-ju


Se zgodi tudi Senior developerju. Problem je da je ta črv v igri živel toliko let..

showsover ::

Res je, WA, se strinjam, da sploh niso profilirali kode. Očitno ni bilo potrebno. Poleg tega, zakaj bi investirali svoje resurse v analizo, če jim to prinese en T0st in mu plačajo 10kEUR, njih pa bi to koštalo veliko več, preden bi lansirali zadevo. To se jim v bistvu zelo izplača - zakaj, misliš, da evil corps kupujejo šele uspešne in prepoznavne startupe? Da jim ni treba investirati 100x več pri sebi za dvomljive rezultate.

Zgodovina sprememb…

  • spremenilo: showsover ()

SambaShare ::

shadeX je izjavil:

Ne vem pa, kako je lahko senior developer tole kodo skoz spustil ob review-ju


Se zgodi tudi Senior developerju. Problem je da je ta črv v igri živel toliko let..


Težko razumeš, da se stvar nalaga 10 min in se tekom razvoja nihče ne vpraša, če ni nekaj močno narobe.

shadeX ::

Definitivno. Ampak resource namenjaš tja kamor ima nek impact. Z vidika podjetja jim dol visi če se igra nalaga 1,10 ali pa 30 minut, če zaradi tega ni vpliva na drop rate. Iz analitike razbereš vse. Tudi če imaš jezne igračarje, ki bentijo po forumih, dokler zaradi te napake ni dejanskega dropa se podjetju ne splača vlagati resourcev tja.

Zgodovina sprememb…

  • spremenil: shadeX ()

c3p0 ::

Očitno so gaming companies le še štancarji, ni več duše zraven, le še veliki teami in ozko specificirane naloge in deja-vu igre.

Ni več tistega, ko se bi nek ekvivalent Carmacka na koncu vsedel zraven in par tednov le še pilil in optimiziral. Dobro, da se ne igram več s špilikami.

Prospekt ::

c3p0 je izjavil:

Očitno so gaming companies le še štancarji, ni več duše zraven, le še veliki teami in ozko specificirane naloge in deja-vu igre.

Ni več tistega, ko se bi nek ekvivalent Carmacka na koncu vsedel zraven in par tednov le še pilil in optimiziral. Dobro, da se ne igram več s špilikami.

Za take stvari je potrebno gledati indie podjetja, ki imajo majhne ekipe in jih je na stotine.

Zgodovina sprememb…

  • zavarovalo slike: poweroff ()

Johnny QJ ::

in dejansko deluje hitreje?

preizkusil sem ga nazadnje, ko so naredili free izdajo za PC, res je bil občutek, da so loadingi zelo dolgi, kljub precej močnemu računalniku z novim ssd diskom.

pffff ::

c3p0 je izjavil:

Očitno so gaming companies le še štancarji, ni več duše zraven, le še veliki teami in ozko specificirane naloge in deja-vu igre.

Ni več tistega, ko se bi nek ekvivalent Carmacka na koncu vsedel zraven in par tednov le še pilil in optimiziral. Dobro, da se ne igram več s špilikami.


Zgodilo se je enako kot filmski industriji. Ugotovili so zmagovalen koncept, zdaj pa samo se fotokopirajo in druge slike cez limajo. Igralci so se pa ze tako navadili, da se jim zdi novost, ce namesto posasti uporabis kavboje (Red Dead Redemption jajca), grindanje pa se jim zdi zabavno in za to sranje placujejo precejsnje vsote, pa ne zaradi igre ampak zaradi reklame, ki so jo videli tudi prijatelji pred katerimi se je treba pohvalit. Dejansko izven indie scene ni vec iger za igrat, ok, pa Japonci se se potrudijo sem in tja.

Enako kot pri vsaki zadevi, ko dobi produkt v roke logika korporacijskega managementa gre zadeva k vragu, napihne se preko vseh meja, kvalitetne vsebine pa ni.

Zgodovina sprememb…

  • spremenilo: pffff ()

RedDrake ::

Moderni "razvijalci" so joke.
Poznam par kalibrov, ki so šli hitro iz SLO v Berlin, London, San Fran, ipd ...
Vse na hitro, nič analize, nič premisleka, samo hitro kodiranje, vsak teden nov cilj, kolk smo super, lej kok taskov smo pohendlal, ipd ...

To ni samo pri špilih, to je povsod.
Aja, rabiš rešitev za REST API?
Ok, naredi docker, pa dej notri python pa tono knjižnic, pa še kaj, zato da na koncu s totalno neoptimizirano kodo pošlješ kakšno je vreme na android widget, kjer si že 1001 s točno enakimi podatki in izgledom. Ampak hej, si dev!

Špili danes so pa še večji joke.
Igram stvari iz 90-ih in začetka tisočletja.
Občasno je luštno zaigrati kak indie špil, če ni preveč buggy. Ostalo je brez veze. Če bi hotel za 4-urni film plačati 50 EUR, zato da bi mi PC švical ko pri norcih, bi verjetno raje kupil BluRay in to pogledal na 80" TVju doma.

Zgodovina sprememb…

  • spremenil: RedDrake ()

shadeX ::

c3p0 je izjavil:

Očitno so gaming companies le še štancarji, ni več duše zraven, le še veliki teami in ozko specificirane naloge in deja-vu igre.


Ko greš s podjetjem public se zadeve močno spremenijo. Namesto igralcev je treba zadovoljit delničarje in edini način je da podjetje "štanca" produkte, omogoča transakcije v igri, ter razvija grind ekosistem. To deluje zato je toliko tega.

Invictus ::

RedDrake je izjavil:

Moderni "razvijalci" so joke.
Poznam par kalibrov, ki so šli hitro iz SLO v Berlin, London, San Fran, ipd ...
Vse na hitro, nič analize, nič premisleka, samo hitro kodiranje, vsak teden nov cilj, kolk smo super, lej kok taskov smo pohendlal, ipd ...

To ni samo pri špilih, to je povsod.
Aja, rabiš rešitev za REST API?
Ok, naredi docker, pa dej notri python pa tono knjižnic, pa še kaj, zato da na koncu s totalno neoptimizirano kodo pošlješ kakšno je vreme na android widget, kjer si že 1001 s točno enakimi podatki in izgledom. Ampak hej, si dev!

Špili danes so pa še večji joke.
Igram stvari iz 90-ih in začetka tisočletja.
Občasno je luštno zaigrati kak indie špil, če ni preveč buggy. Ostalo je brez veze. Če bi hotel za 4-urni film plačati 50 EUR, zato da bi mi PC švical ko pri norcih, bi verjetno raje kupil BluRay in to pogledal na 80" TVju doma.

Ha, ha, na kratko opisana mentaliteta današnje mularije, ki se gre IT...

Docker, hitro izvrševanje taskov, brez designa in dokumentacije...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

shadeX ::

Ok, naredi docker, pa dej notri python pa tono knjižnic, pa še kaj, zato da na koncu s totalno neoptimizirano kodo pošlješ kakšno je vreme na android widget,


V MVP produktu je optimiziranje kode popolnoma nesmiselno z ekonomičnega vidika, ker ne veš ali bo zadeva šla ali ne. Če so statsti slabi, ubiješ produkt in greš naprej. Nasprotno če so dobri, tisto kodo s časom že optimiziraš ampak zagotovo ni ključnega pomena v prvi verziji produkta, dokler tista koda opravlja svoj namen.

Lep primer je Rockstarjev nalagalni bug iz novice :)

Zgodovina sprememb…

  • spremenil: shadeX ()

pffff ::

pffff je izjavil:


Enako kot pri vsaki zadevi, ko dobi produkt v roke logika korporacijskega managementa gre zadeva k vragu, napihne se preko vseh meja, kvalitetne vsebine pa ni.


Aja pa da ne omenim Cyberpunk 2077. Nek kreten je rekel releasajte, pa so releasali. Zdaj pa Sony in Microsoft dajeta full refounde.

Zgodovina sprememb…

  • spremenilo: pffff ()

RedDrake ::

shadeX je izjavil:


V MVP produktu je optimiziranje kode popolnoma nesmiselno z ekonomičnega vidika, ker ne veš ali bo zadeva šla ali ne. Če so statsti slabi, ubiješ produkt in greš naprej. Nasprotno če so dobri, tisto kodo s časom že optimiziraš ampak zagotovo ni ključnega pomena v prvi verziji produkta, dokler tista koda opravlja svoj namen.

Lep primer je Rockstarjev nalagalni bug iz novice :)

Saj se delno strinjam.
Ampak, mam dovolj izkušenj (in sodelovanja pri startupih v zadnjih desetih letih), da vem da tipično potem tista MVP koda ostane v produkciji do nadaljnega. Ker se cilji potem tako hitro spreminjajo naprej, da realno nikoli ni trenutka za optimizacije, če nisi v to prisiljen zaradi abotno počasnega delovanja.
Tu je bilo isto - verjetno.
Rabili so nekaj na hitro - za dev potrebe, potem pa o tem ni noben več razmišljal. Ko so launchali pa ni bilo več smiselno popravljati, ker bi bili cost/benefit ratio preslab. Da ne omenjam, da imajo verjetno zaposlenih veliko modernih razvijalcev, ki pač ne vidijo potrebe po optimizaciji, ker so PC-ji itak dovolj hitri da ni panike (tudi to mentaliteto dobro poznam).

kuall ::

To je normalno, hrošči so pogosti v programih, težko jih je odkriti, lahko so notri več let.
Kar je manj normalno so slo-tech komentatorji, ki so spet pametnjakoviči. Pač spet demonstracija pojava, ko 90% ljudi misli, da so boljši kot drugi, kar seveda ni možno.

Zgodovina sprememb…

  • spremenilo: kuall ()

win64 ::

Strinjam se, da so hrošči pogosti v programih in jih je včasih težko odkriti.
Jaz ne krivim posameznih razvijalcev. Problem je nižanje standardov. To, da se igra nalaga 10 minut bi moral biti rdeč alarm.

shadeX ::

Ampak, mam dovolj izkušenj (in sodelovanja pri startupih v zadnjih desetih letih), da vem da tipično potem tista MVP koda ostane v produkciji do nadaljnega. Ker se cilji potem tako hitro spreminjajo naprej, da realno nikoli ni trenutka za optimizacije, če nisi v to prisiljen zaradi abotno počasnega delovanja.


Se strinjam. Lep prikaz tega kar si povedal je tale hrošč iz novice.

To, da se igra nalaga 10 minut bi moral biti rdeč alarm.


Sicer ne vem na kakšnem računalniku se igra nalaga 10 min, meni se je GTA naložil v dobrih 2 minutah (Ryzen 3700x, 32GB RAM-a). Isto je v RDR Online. Partnerka ima slabši računalnik - (i7-7700HQ - mobilni, ter 8GB RAM-a), pa se ji RDR nalaga rahlo več časa kot meni ampak ne 5 ali 10 minut.

Se pa strinjam, da čakanje ubija ampak me ne odvrača od tega da se enkrat na teden vpišem v špil. Sem se navadil da si v tem času grem naštimat nekaj za spit :)

Zgodovina sprememb…

  • spremenil: shadeX ()

Smurf ::

Kar se tice developmenta so bile igre vcasih bistveno bolj preproste in bistveno bolj buggaste. Pomoje gre tudi tukaj za tipicni primer selektivnega spomina.

Zmajc ::

Smurf je izjavil:

Kar se tice developmenta so bile igre vcasih bistveno bolj preproste in bistveno bolj buggaste. Pomoje gre tudi tukaj za tipicni primer selektivnega spomina.


Elder Scrolls : Daggerfall in Arena. To to bli taki bug festi da je še Cyberpunk izpiljena mojstrovina proti temu. :))

celada ::

Smurf je izjavil:

Kar se tice developmenta so bile igre vcasih bistveno bolj preproste in bistveno bolj buggaste. Pomoje gre tudi tukaj za tipicni primer selektivnega spomina.


Al so pa bugi postali featurji... Kak q3 s svojim posevnim skokom comes to mind...

Silici ::

Single play igre so z razlogom bugaste. Še malo so mu plačali. Pri Factorio, ko se malo razširi mapa folk prekine load protokol, ker se jim ne da čakat a server še vedno v dobrem stanju.

FlyingBee ::

10000 usd je drobiž za Rockstar.
P200 MMX, 32mb ram, 2gb HDD, s3 virge 2mb, 14" CRT 640x480
New Sphincter Kvartet:
Roko Spestner, Namaž Zlevčar, Daje Heading, Maraje Spetan

LightBit ::

RedDrake je izjavil:

Moderni "razvijalci" so joke.
Poznam par kalibrov, ki so šli hitro iz SLO v Berlin, London, San Fran, ipd ...
Vse na hitro, nič analize, nič premisleka, samo hitro kodiranje, vsak teden nov cilj, kolk smo super, lej kok taskov smo pohendlal, ipd ...

To ni samo pri špilih, to je povsod.
Aja, rabiš rešitev za REST API?
Ok, naredi docker, pa dej notri python pa tono knjižnic, pa še kaj, zato da na koncu s totalno neoptimizirano kodo pošlješ kakšno je vreme na android widget, kjer si že 1001 s točno enakimi podatki in izgledom. Ampak hej, si dev!

Na žalost se mi zdi da se nekako to pričakuje.
Čim hitreje ponuditi čim več funkcionalnosti. Tudi če ne dela.

IvoJan ::

torej gta VI ne bo 2023 ampak 2027? :'D
|TUF X670E plus WIFI|7900X3D|arctic LF2 360mm|
|64gb 6000 CL30 ddr5|Manli RTX4090 Gallardo|P5+ 2TB nvme|
|P3+ 2TB nvme|Corsair HX1000i|Meshify 2|

janezvalva ::

meni se včasih... ne da nič napisat. :8)
IQ test: v enem vedru imaš 2l vode, v drugem 1l vode. koliko veder imaš?

Zgodovina sprememb…

  • predlagal izbris: IvoJan ()

FlyingBee ::

IvoJan je izjavil:

torej gta VI ne bo 2023 ampak 2027? :'D

Zna biti, da bo že naslednje leto, ko bodo nove konzole že fully fledged z market share, vsaj pri prejšnjem je bilo na konzole tempirano, za PC pa res šele 2025 mogoče.
P200 MMX, 32mb ram, 2gb HDD, s3 virge 2mb, 14" CRT 640x480
New Sphincter Kvartet:
Roko Spestner, Namaž Zlevčar, Daje Heading, Maraje Spetan

kuall ::

celada je izjavil:

Kak q3 s svojim posevnim skokom comes to mind...

Strafe jump je bil bug? heh zanimivo. najboljši bug v zgodovini. en trik iz evoolucije so si sposodili.

Zgodovina sprememb…

  • spremenilo: kuall ()

Sc0ut ::

kuall je izjavil:

celada je izjavil:

Kak q3 s svojim posevnim skokom comes to mind...

Strafe jump je bil bug? heh zanimivo. najboljši bug v zgodovini. en trik iz evoolucije so si sposodili.


Jup, to je bug :)
1231 v3, Z97 A, 16GB ram 1600mhz, 3070 RTX, HX850

LilStalker ::

shadeX je izjavil:

Definitivno. Ampak resource namenjaš tja kamor ima nek impact. Z vidika podjetja jim dol visi če se igra nalaga 1,10 ali pa 30 minut, če zaradi tega ni vpliva na drop rate. Iz analitike razbereš vse. Tudi če imaš jezne igračarje, ki bentijo po forumih, dokler zaradi te napake ni dejanskega dropa se podjetju ne splača vlagati resourcev tja.

GTA res lovda v tri pm dolg. In ja, nas(našo družbo občasnih gejmarjev) so izgubili. "A gremo en GTA?", "Ma ne, men se neda spet čakat pou ure, da se ta sra** nalovda." - Citirano :)

MrStein ::

No bugov je malo morje, v vsakem produktu.

Kaj bi dal, da bi vsi bili le "malo dlje čakaš".

(glej recimo tistega v Linux, ko mrežna povezava crkne)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

FireSnake ::

jlpktnst je izjavil:

Toliko o mitu carskih c++ developerjev...

Na enem primeru ti poskušaš diskreditirati?
Lahko še bolj patetično?
Kdo dela, dela napake.
Vi, havč majstri, bolj težko kaj zaserjete.
Poglej in se nasmej: vicmaher.si


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Grand Theft Auto V (strani: 1 2 3 445 46 47 48 )

Oddelek: Igre
2390457642 (24258) Kayzon
»

Odpravil hrošča, ki sta zavirala GTA Online, in zaslužil 10.000 dolarjev

Oddelek: Novice / Igre
399749 (5536) FireSnake
»

Jutri izide GTA 5, nekateri ga že imajo (strani: 1 2 )

Oddelek: Novice / Igre
5428384 (21469) __Devil__
»

GTA San Andreas bo izdan vdrugo

Oddelek: Novice / Igre
114955 (4633) Myth

Več podobnih tem