Kas jau kas, bet vyriausiasis studijos „Naughty Dog“ programuotojas Jasonas Gregory žino, kaip „PlayStation 3″ turimus megahercus, bitus ir baitus paversti techniškai stulbinančiais žaidimais. Tokiais kaip „Uncharted“ trilogija ir pernykštis „The Last of Us“.

Prieš kurį laiką jis skaitė paskaitą apie „Naughty Dog“ darbo filosofiją ir tai, kaip optimizuodami tą patį variklį studijos programuotojai sugebėjo įgyvendinti vis ambicingesnes dizainerių idėjas. Savaime aišku, neišvengta „PlayStation 4″ temos. Žinia, „Naughty Dog“ šiuo metu meistrauja ketvirtąją „Uncharted“ dalį.

J. Gregory pradėjo nuo „PlayStation 4″ darbinės atminties, kurią konsolė dalinasi su vaizdo plokšte.

„Net „PlayStation 4″ konsolėje turint 5 gigabaitus, kas atrodo daug, jūs nustebtumėt, kaip greitai juos galima užsipildyti“, – kasmetinės „Instituto Superior Técnico“ IT renginių savaitės metu kalbėjo vyriausiasis „Naughty Dog“ programuotojas.

Iš turimų 8GB operatyviosios atminties kūrėjams prieinami tik 5GB, todėl, pasak J. Gregory, svarbu nuolatos stebėti, kur, kiek ir kokios atminties yra naudojama. Fragmentuota, plačiai išbarstyta atmintis išsieikvoja greičiau nei paskirstyta vientisiau. Siekdami išvengti fragmentacijos, „Naughty Dog“ programuotojai naudoja prie kiekvieno žaidimo specialiai pritaikytus atminties paskirstymo algoritmus.

Kalbėdamas apie 8 branduolių „PlayStation 4″ procesorių, J. Gregory priminė, kad iš jų žaidimams naudojami tik 6, todėl čia taip pat reikalinga griežta resursų vadyba. Anot jo, „PlayStation 4″ atveju veikia panaši „darbų“ sistema kaip ir „PlayStation 3″ konsolėje: pagrindiniam programos ciklui dedikuotas atskiras branduolys, o visos likusios užduotys („darbai“) paliekamos kitiems penkiems. Tame pačiame luste kaip ir procesorius įrengta vaizdo plokštė padeda sumažinti jo apkrovą perimdama įvairių fizikos efektų apskaičiavimą, pavyzdžiui, be jo pagalbos simuliuodama audeklų bei skysčių judėjimą.

Paskaitos metu J. Gregory pristatė įdomiai nuskambėjusią optimizacijos koncepciją, kurią jis vadina „80/20 taisykle“. Ką tai reiškia? Tai reiškia, kad programa 80% laiko praleidžia veikdama iš 20% kodo. Likusi kodo dalis, pasak vyriausiojo „Naughty Dog“ programuotojo, naudojama žymiai rečiau, todėl geriausias optimizavimo rezultatas pasiekiamas koncentruojantis būtent į tą penktadalį kodo.