HVORDAN VIRKER

Hvordan virker egentlig dataspill?

29. nov. 2015 - 11:09

Det er nesten utrolig når vi ser på forutsetningene. Mens filmskapere kan bruke en svær serverpark, og så mye tid de ønsker på hvert bilde, må dataspillet generere hvert bilde på for eksempel 16 milllisekunder eller til og med raskere.

Og det er ikke mulig å gjøre jobben på forhånd. Det er spilleren som har kontrollen, og forutsetningene varierer kontinuerlig. Så hvordan er det mulig?

Et moderne dataspill starter med en idé. En idé til det universet hvor spillet skal foregå, til figurer som skal befolke spillet, hva slags egenskaper, våpen, kjøretøy etc. de råder over.

I det hele tatt en mest mulig komplett verden det er mulig å boltre seg i.

Design

Når ideen til univers og handling er bestemt, skal spillet utvikles, og da må designerne overta. Ofte lager man forenklede prototyper for å vurdere om ideen er god nok og for å kunne hente finansiering.

Designerne skal utforme universet og gi det et utseende. De må bygge karakterene som skal delta. De må bestemme hvordan de samhandler, slåss, hva slags utstyr de har tilgang til osv.

Den største jobben er å bygge opp et helt nytt spill. I mange tilfeller er det snakk om en fortsettelse, og da er jobben noe enklere. Noe kan gjenbrukes.

Jo mer erfaring man har bygget opp i en designavdeling, jo enklere er jobben. Ofte har spillhus sine egne plattformer som gjør utviklingen lettere.

En person som hopper eller klatrer oppover kan utnyttes i mange ulike spill. Slike plattformer kan vare i svært mange år, men de forbedres hele tiden og bygges ut med ny teknologi.

Bruken av punkter og triangler er sentralt i oppbyggingen av bildene i spillet eller på kinoskjermen. Grafikerne bygger opp geometrien på basis av triangler, som igjen består av punkter i et tredimensjonalt rom.

Slike punkter kalles en vertex. En figur, enten det er en bil eller et menneske, bygges opp av et svært stort antall slike triangler.

Trådmodellen: Wireframe viser scenen­ kun bestående av geometri i form av triangler.
Trådmodellen: Wireframe viser scenen­ kun bestående av geometri i form av triangler.

Rendering

Et spill ville ikke være veldig realistisk med bare trekanter på skjermen. Derfor må trekantene få en slags virkelighetshud, og den prosessen kalles rendering, i mangel av et godt norsk ord.

Det er prosessen med å regne om den matematiske representasjonen til et ferdig skjermbilde.

For å rendre et bilde må det beregnes en liste av objekter som skal være synlige for dataspillerens synsvinkel. Her må det også tas hensyn til sol og andre lyskilder og vinkelen de belyser objektene.

Alt dette brukes for å bygge objektlister som legges inn i ulike databuffere sammen med tilhørende data som transformasjoner, fargenyanser, geometri, teksturer osv.

Når disse listene sendes til GPU-en – grafikkprosessoren – vil den tegne ut alle elementene slik de skal vises på skjermen.

Overflatene: Scenen med teksturer, men uten lys, skygger, refleksjoner osv.
Overflatene: Scenen med teksturer, men uten lys, skygger, refleksjoner osv.

Kode

Logikken i et spill er basert på masse moduler med kode. Noe av koden er kompilert, det vil si skrevet i et format som prosessorene kan kjøre, mens mindre moduler (skript) kompileres mens spillet kjøres.

Selve spillet er en samling programmoduler med ulike oppgaver. En typisk modul kan ta seg av rendingen. Det vil si regne om den matematiske representasjonen til et ferdig skjermbilde.

En annen kan ta seg av fysikken, slik som å simulere tyngdekraft, bevegelser, kollisjoner etc. En lydmodul tar seg av transienter, reflekser og andre lydeffekter.

I og med at det er umulig å forutse hva som skjer fremover i tid, og at «alt er avhengig av alt», så hentes data, kode og skript etter behov og brukes til å beregne bilder og lyd.

Grafikkmotoren gjør denne beregningsjobben ekstremt hurtig. Den tar all informasjonen som styrer bevegelser, lys, tåke, betraktningsvinkler og mye annet, og sammen med data om «universet» som danner bakgrunnen blir bilde for bilde regnet ut. Man snakker om at bildene rendres.

En av de store endringene i dataspill den siste tiden er inntoget av programmerbare GPU-er. Før dette var svært mye av beregningene styrt av maskinvaren i GPU-en.

Programmererne var avhengige av standardiserte funksjoner for å f.eks. lyssette objekter. I dag er det programmodulene som selv styrer dette. Slik er dataspillene blitt mye mer realistiske. I hvert punkt blir den endelige lysstyrke og fargeverdien beregnet.

Dette inkluderer lys og skygger, refleksjoner, tåke og alt annet som påvirker pikselet. Slike beregninger er enormt komplekse fordi de må ta hensyn til overflateegenskapene.

Hva slags farge har overflaten? Er den ru eller metallisk, spiller det inn på utseendet.

Ferdig resultat: Scenen med teksturer, lys, skygger, refleksjoner og annen postprosessering.
Ferdig resultat: Scenen med teksturer, lys, skygger, refleksjoner og annen postprosessering.

Flere detaljer

Samtidig har vi fått en utvikling mot langt flere polygoner, oftest i form av trekanter, som til sammen utgjør en såkalt trådmodell (wire frame).

Det betyr at modellene består av langt flere flater som kan gjengi geometrien bedre. Jo flere polygoner det er i en figur, jo flere piksler må behandles når figuren til slutt skal gis et naturlig utseende.

Det er hele tiden viktig å redusere størrelsen på alt som skal beregnes, men uten at det går ut over det visuelle inntrykket.

For ikke å bruke opp for mye datakraft finnes slike trådmodeller i flere størrelser, gjerne fire–fem varianter, fra veldig detaljerte til mindre detaljerte.

De mest detaljerte brukes når figuren er representert i forgrunnen i stor størrelse, mens de små, som er mye enklere å beregne, benyttes når vi ser figuren på lenger hold i bakgrunnen.

Ulik maskinvare

Det spillprodusenten ikke har kontroll på er hva slags utrustning de som spiller har. Det enkleste er når de har konsoller som Xbox og PlayStation.

Slike har gjerne ti års levetid, og maskinvaren er lett å forholde seg til. Her er det full kontroll på maskinvaren, men ytelsen øker ikke over tid. Det gjør derimot produsentenes evne til å optimalisere koden bedre i maskinvaren.

På pc er det noe helt annet. Her kommer det flere ganger i året grafikkort som, sammen med resten av maskinvaren i pc-en, stadig øker evnen til å prosessere spill. Jo eldre konsollene er, jo lenger etter pc-utviklingen henger de.

Fotorealismen begynner å bli særdeles god på dataspill, men man er ikke helt på samme nivå som i spillefilmer som kan bruke nær sagt uendelig mye mer datakraft på hvert bilde.

Hollywood har så godt som lykkes i å lukke det man kaller «Uncanny valley», hvor det er umulig å fastslå hva som er virkeligheten og hva som er datagrafikk. Selv med menneskefigurer.

Dataspill er i ferd med å nærme seg, men det skal nok noen runder til med raskere maskinvare og ny programvare før vi klarer å lure hjernen helt.

Mobilspill

I dag foregår mye av spillingen på mobil. Det er en tøff jobb for utviklerne, som ikke kan tillate at grafikken bruker opp batteriet for raskt.

Kravet til strømforbruk og varmeutvikling gjør at mobilspill er en helt annen verden enn på konsoller og pc-er.

Her har gamle 8 til 10 år gamle tricks og snarveier fra tiden med begrensede ressurser kommet til nytte igjen.

Lyst til å lese mer om dataspill? Sjekk ut vår søsterside Gamer.no.

Hovedkilde: Funcom

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.