Laddningstiderna i The Last of Us kraftigt reducerade - utan nextgen!

Robot
Laddningstiderna i The Last of Us kraftigt reducerade - utan nextgen!

Ny patch sänker vissa laddtider med 70 %.

#the-last-of-us


NuZ
Testpilot

Svart magi de inkluderade i 1.11.
Jag tror de implementera de där nya Kraken

Medlem

Förstår verkligen inte hur de har lyckats korta ner så extremt mycket? Från 2:03 till 13 sekunder, helt galet ju! På samma hårdvara dessutom. Fan mer imponerande än allt jag hittills sett av next gen^^.

Medlem

Det är så med spel som släpps i slutet av en konsols livscykel. Mina favoritexempel var spelen som släpptes under Game Boy Colors sista år. Black Magic kombinerat med en hel del trixande som resulterande i spel och effekter man inte trodde kunde vara möjligt på en sån konsol.

Medlem

Jobbar själv en hel del med optimering, om än inte för spel. Få saker som är så tillfredsställande som en klar förbättring.

Medlem

Det är möjligt att en del av allt arbete Sony lagt ner med I/O-systemet (på mjukvarusidan) till PS5 även går att implementera till PS4. Folk häpnade väl över att det knappt är några laddningstider vid fast travel i Ghost of Tsushima också?

Hursomhelst så är det lite svårt att förstå hur något kan förbättras så här pass mycket så magi är nog svaret. Kanske har de patchat in en SSD?

KoP
Medlem
Skrivet av gorbatjov:

Förstår verkligen inte hur de har lyckats korta ner så extremt mycket? Från 2:03 till 13 sekunder, helt galet ju! På samma hårdvara dessutom. Fan mer imponerande än allt jag hittills sett av next gen^^.

Gissar på dålig optimering ifrån första början.

Medlem
Skrivet av Mesmerize:

Jobbar själv en hel del med optimering, om än inte för spel. Få saker som är så tillfredsställande som en klar förbättring.

Jag som knappt kan något om programmering kan du rekommendera ett youtube klipp som går igenom hur optimering sker eller förklara själv hur det går till

Är nyfiken på hur det går till när Naughty Dog lyckas med den här bedriften.

Dex
Medlem

Låter galet att dom lyckas förbättra laddningstiderna så mycket genom en mjukvaru uppdatering. Man kan ju undra hur jäkla dåligt optimerat det var från början då, men tyckte inte LoU hade längre laddningstider än många andra spel.

Magi helt klart!

Medlem

Blev nästan mer förvånad över att laddningstiderna var så pass långa till att börja med på PS4 versionen. Är ju ändå ett PS3 spel i grunden så jag förväntade mig att dom redan hade kortats ner betydligt.

Medlem

Verkligen stora förhoppningar att detta är början på en stor mängd optimeringar av samma slag så fort kompetensen sprider sig. För det första är nog många spel dåligt optimerade från första början jämfört med vad vissa klarar av, men sen det ju det ju den allmänna uppfattningen att det är hårddiskarnas fel. Men kollar man de riktiga testerna, så oavsett om man har en supersnabb och extremt dyr SSD, så laddar den spel nästan exakt som den billigaste SSD. Det är verkligen noll spel som utnyttjar en SSDs verkliga kapacitet.

Tycker nästan att de som producerar SSD bör vara sugna på att lära utvecklare och programmerare att ta till av möjligheterna, att mängden information kan flyta bättre mellan processorn, grafikkortet och minnet där allt kommer ifrån. Jag undrar varför det varit så främmande i alla år? "Vårt spel laddas på 10 sek, hela världar låses upp på ett ögonblick". Liksom ja tack, det bör ha varit möjligt för över 5 år sen.

Medlem
Skrivet av jehuty:

Jag som knappt kan något om programmering kan du rekommendera ett youtube klipp som går igenom hur optimering sker eller förklara själv hur det går till

Är nyfiken på hur det går till när Naughty Dog lyckas med den här bedriften.

Inte mig du frågade, och optimeringar är väl kanske inte vad jag jobbar med mest. Men jag är i vart fall systemutvecklare (med inriktning webb).

Grunderna brukar vara ett identifiera flaskhalsar. Vad tar tid? Varför? Hur kommer vi runt det? Inte sällan är det några få saker som tar lejonparten av tiden. Särskilt om man tvingats stressa med något steg.

Det kan t.ex. handla om att man gör väldigt många anrop i rad (tänk laddar in flera små filer efter varandra). Det kan ofta optimeras genom att man bakar ihop dem till ett enda snabbare anrop (en större fil). Andra gånger handlar det om vad man gör med data man läser in, samt i vilken ordning. Ofta behöver man inte mangla igenom allt man hämtar, i varje fall inte direkt. Och så handlar det om att identifiera vad man kan hoppa över, eller gömma i bakgrundsprocesser.


När jag växte upp lyssnade jag mycket på Blümchen och Rollergirl. Jag tror att det har format mig som människa.

Medlem
Skrivet av jehuty:

Jag som knappt kan något om programmering kan du rekommendera ett youtube klipp som går igenom hur optimering sker eller förklara själv hur det går till

Är nyfiken på hur det går till när Naughty Dog lyckas med den här bedriften.

Absolut! Jag kan förklara min process.
Kan börja med att säga att det är väldigt vanligt och väldigt lätt hänt att skriva dåligt optimerad kod, i alla fall i min värld så stöter jag på det varje dag i princip. Jag tror det grundar sig mycket i att i de kodspråken jag jobbar i, Java/C#, så har man ganska lite fokus på det i skolan och i många lägen så klarar man sig ganska bra ändå. Om än så tror jag det börjar bli mer av ett problem då det är betydligt mer last på de flesta system än säg fem år sedan.

Erfarenhet och verktyg är antagligen de bästa hjälpmedel man har. Man lär sig med tiden att skriva koden på ett så bra sätt som möjligt, som med så mycket annat. Enkla fallgropar man gör är att man allokerar onödigt mycket minne, dels genom att hämta onödigt mycket data men även sparar undan utan att göra sig av med det i rätt tid. Man utnyttjar inte cache, t.ex. att spara saker i minnet istället för på disk, något som kan ha stor betydelse. Överlag onödigt mycket kommunikation med databas, ofta vill man göra så få uppslag som möjligt och med så precisa databasfrågor som möjligt, dvs kan man hämta den datan man behöver i ett större uppslag istället tio små så är det ofta att föredra. Felet typ av algoritm eller logik rent generellt.

Det finns massivs med fallgropar som sagt. Min process är att jag oftast börjar leta efter enkla fel, sedan använder jag mig av olika verktyg för att analysera och mäta på djupet. Det är en väldigt iterativ process, mät -> ändra -> mät igen.

Ungefär så utan att gå ner allt för mycket på djupet 🙂

Medlem
Skrivet av Mesmerize:

Jobbar själv en hel del med optimering, om än inte för spel. Få saker som är så tillfredsställande som en klar förbättring.

Det var även tillfredsställande att förstå varför loadingsskärmar behövdes, när man just skrivit sitt första nätverksanrop/whatever som hållits på i kanske 1 sekund, men för att det inte skulle vara dålig UX (användarupplevelse) fick man slänga fram en loadingsskärm. Det var tillfredsställande med den polletten.

Låter kanske jätteknäppt men jag tror att alla programmerare förstår vilken känsla jag pratar om.


I'm like you, I have no name.

Medlem

Heh, minns ett av mina första jobb som konsult. Reda ut varför utskriften av försäkringsbrev (eller skapandet av printfilen som skulle bli brev) tog exponentiellt längre tid att skapa med antalet brev som skulle ut.

Den roliga personen som skapat programmet läste igenom den resulterande filen en gång för varje kuverteringstecken som skulle in i filen >_< Ett tecken som talade om för skrivaren att den skulle stoppa in försändelsen i ett kuvert. Anledningen var att man först efter sidan var skapad visste om den skulle kuverteras eller inte och tecknet skulle sitta typ först på sidan.

Ändrade programmet så det läste igenom filen en gång och bytte ut alla tecken som skulle bytas. Programmet gick från ~20h till under 10 minuter...

Medlem
Skrivet av deezel:

Heh, minns ett av mina första jobb som konsult. Reda ut varför utskriften av försäkringsbrev (eller skapandet av printfilen som skulle bli brev) tog exponentiellt längre tid att skapa med antalet brev som skulle ut.

Den roliga personen som skapat programmet läste igenom den resulterande filen en gång för varje kuverteringstecken som skulle in i filen >_< Ett tecken som talade om för skrivaren att den skulle stoppa in försändelsen i ett kuvert. Anledningen var att man först efter sidan var skapad visste om den skulle kuverteras eller inte och tecknet skulle sitta typ först på sidan.

Ändrade programmet så det läste igenom filen en gång och bytte ut alla tecken som skulle bytas. Programmet gick från ~20h till under 10 minuter...

Haha, mm har varit med om liknande grejer vid skrivandet av dokument. Ofta att man loopar/läser/skriver oerhört osmidigt

Medlem
Skrivet av jehuty:

Jag som knappt kan något om programmering kan du rekommendera ett youtube klipp som går igenom hur optimering sker eller förklara själv hur det går till

Är nyfiken på hur det går till när Naughty Dog lyckas med den här bedriften.

"sub eax, 128" -> "add eax, -128". What's the improvement here ?

It's a space optimization. Sometimes shorter code leads to faster code because it frees up more space in the code cache. The trick is: -128 fits in a signed char; +128 does not. Here are some examples, along with their x86 machine code representation:

sub eax,+128 2D 80 00 00 00
add eax,-128 83 C0 80
sub ebx,+128 81 EB 80 00 00 00
add ebx,-128 83 C3 80

Ken Silverman, Build engine dvs Duke Nukem 3D, Shadow Warrior, Blood osv.

Poängen är att göra mer med färre steg/arbete eller helt enkelt utnyttja att vi inte märker om vissa saker saknas.

"The trick behind the scrolling in the first Commander Keen games was to only redraw tiles that actually changed after panning 16 pixels, since most maps had large swathes of constant background. Text consoles have similar statistics with spaces, so the same trick is a big win."

"The second Keen trilogy used a better trick -- just keep panning and redrawing the leading edge, letting the screen wrap around at the 64k aperture edge. Worked great until some SVGA cards with more memory no longer wrapped there, forcing me to occasionally recenter the screen."

John Carmack.

Medlem

Som någon skrev längre upp, Laddningstiderna i ghost of tsushima är även de häxkonst! Jag har aldrig varit med om att ett sandlådespel har laddat så snabbt förut!!

Medlem

Wow tack alla som beskrev hur ni optimerade kod på era jobb. Superkul att läsa.

Medlem

Om nu någon kunde säga till trainwrecket som är Marvel Avengers att det inte borde vara halvtimmeslånga laddningstider för att ladda in samma bana som jag precis dog i. Det borde inte vara någon laddningstid alls. (Viist, knappast största bekymret den titeln har...) Det är obegripligt så många spel som straffar en med flera minuters väntetid varje gång man dör, trots att de innehåller sekvenser där man typ måste hoppa vid rätt tid på rätt ställe och kanske måste göra om sekvensen flera gånger. Sån skit som tog död på Nathan Drake för min del redan efter de första inledande sekvenserna. Att spela några sekunder, för att vänta några minuter, för att spela några sekunder, för...

Medlem
Skrivet av ulrik.borg:

Om nu någon kunde säga till trainwrecket som är Marvel Avengers att det inte borde vara halvtimmeslånga laddningstider för att ladda in samma bana som jag precis dog i. Det borde inte vara någon laddningstid alls. (Viist, knappast största bekymret den titeln har...) Det är obegripligt så många spel som straffar en med flera minuters väntetid varje gång man dör, trots att de innehåller sekvenser där man typ måste hoppa vid rätt tid på rätt ställe och kanske måste göra om sekvensen flera gånger. Sån skit som tog död på Nathan Drake för min del redan efter de första inledande sekvenserna. Att spela några sekunder, för att vänta några minuter, för att spela några sekunder, för...

Borde ju bli bättre på de nya konsolerna där får du ju automatiskt mycket kortare laddningstider (förutsatt att du lagrar på någon form av SSD.)

Medlem
Skrivet av KoP:

Gissar på dålig optimering ifrån första början.

Absolut kan det ju vara så men precis som @Dex så tyckte jag inte att TLoU hade längre laddtider än andra spel som släpptes under samma tid. Kan ju iof varit alla spel som var dåligt optimerade helt enkelt^^.

Medlem

Riktigt coolt att se hur stor skillnad kan ske under en generation. Att samma spel kan få så drastiskt mycket kortare laddningstid bara via ren och skär optimering är ju imponerande. Hela snacket om laddningstider och att det kommer vara en stor skillnad i och med nästa gen är för mig väldigt intressant. Suget efter grafisk prestanda har svalnat medan suget efter träffsäker design samt en tight och smooth spelupplevelse har ökat, och där spelar definitivt snabba ju den supernsnabba ssd:n in.

Ska bli spännande vilka nya typer av spelmekaniker och dylikt som kommer dyka upp under de nästkommande år, samt om vi kommer slippa tränga oss genom tighta utrymmen och springa runt i cirklar i nästa God of War:)

ZF
Medlem
Skrivet av gorbatjov:

Absolut kan det ju vara så men precis som @Dex så tyckte jag inte att TLoU hade längre laddtider än andra spel som släpptes under samma tid. Kan ju iof varit alla spel som var dåligt optimerade helt enkelt^^.

Uppstart var enormt seg. Flera minuter.

Men väl i spelet så fanns det knappt synliga laddningar vad jag minns. Så detta kanske mest är märkbart för MP.

Medlem
Skrivet av ZF:

Uppstart var enormt seg. Flera minuter.

Men väl i spelet så fanns det knappt synliga laddningar vad jag minns. Så detta kanske mest är märkbart för MP.

Men vid uppstart tycker jag nästintill alla spel är rätt sega i dagsläget. Åtminstone till ps4 då. Det som visades var ju just uppstart och när man laddar sparfiler och/eller startar nytt spel, ingen MP.

1
Skriv svar