Hvordan virker en spillmotor

Hvordan virker en spillmotor?

Når du spiller spill, tenker du nok sjelden på alt som skal til før du blir servert spillgrafikken. Spillmotorer er blant de mest kompliserte typene programvare forbrukere bruker i dag, på det nivået at flere og flere spillutviklere velger å bruke en ferdiglagd spillmotor. Hvorfor har det blitt slik, og hva består egentlig en spillmotor av?

Spillmotor – definisjon fra Wikipedia (oversatt fra engelsk)

En spillmotor er et programvarerammeverk designet for skapelse og utvikling av videospill. Utviklere bruker dem til å lage spill for konsoller, mobilenheter og datamaskiner.
(Lisens: CC-BY-SA 3.0)

Dagens spillmotorer består av mange deler, som hver har sin egen oppgave. Naturlig nok har vi grafikkmotoren, men særlig i nyere spillmotorer er dette langt fra nok. En fysikkmotor tar seg av ting som kollisjoner og tyngdekraft, mens en lydmotor tar seg av lydsystemet. Animasjon, kunstig intelligens (AI) og nettverksstøtte er også inkludert. I mange tilfeller er ikke alle disse i bruk, men siden flere ulike typer spill kan bruke samme spillmotor, er de gjerne inkludert likevel. Vi begynner med å se på grafikkmotoren.

Grafikkmotoren

Eksempel på 3D-modell
Eksempel på 3D-modell.
FOTO: Razvan.
CC BY-SA 3.0 Unported

Grafikkmotoren er til stede i alle spill, og er det man oftest assosierer med ordet spillmotor. Formålet med grafikkmotoren er å lage 2D- eller 3D-grafikken som vises på skjermen din. Tidligere benyttet grafikkmotorene seg av prosessoren eller grafikk-kortet direkte, men nå for tiden er det vanligst å kommunisere via OpenGL eller Direct3D, som gjør det lettere å støtte er bredere utvalg maskinvare og enheter.
Et tilemap til bruk som tekstur i et 2D-spill
Et tilemap til bruk som tekstur i et 2D-spill.
FOTO: Daniel Schwen.
CC BY-SA 4.0 International

For å pusle sammen grafikken trenger grafikkmotoren flere ting. For det første trenger den teksturer, eller bildefiler som viser hvordan ting skal se ut. I tillegg trengs det noe som bruker teksturene. Hvis det er snakk om 3D-grafikk, er dette 3D-modeller (objekter), mens i 2D-grafikk kalles dette sprites. Alt dette settes sammen til en scene, sammen med eventuelle lyskilder, og minst ett «kamera». Det er dette kameraet spilleren ser spillet gjennom (i førstepersonsspill er dette karakterens øyne).

På toppen av dette er det grafiske brukergrensesnittet (GUI), som også benytter seg av teksturer (for knapper, symboler og fonter). Dette blir tegnet uavhengig av scenen, og plassert oppå til slutt. Det knyttes også til spilldataene for å kunne gjengi ting som liv, ammunisjon og kartplassering visuelt i det som kalles HUD (Head-Up Display).

Fysikk og kollisjon

Sentralt i mange spill er fysikken, særlig i mange mobilspill. Fysikkmotoren passer på at ting som skytes opp i lufta, også faller ned igjen, og det på riktig tidspunkt. Den sørger ofte også for kollisjoner mellom objekter (for eksempel mellom spiller og omgivelsene, og mellom våpen og fiende), og reagerer på dette (for eksempel stanse bevegelsen til spilleren eller senke livet til fienden). Dette er noen ganger splittet i en egen del i ekstra kompliserte spillmotorer.

Fysikkmotoren Box2D i aksjon
Fysikkmotoren Box2D i aksjon.
FOTO: Eric Jordan.
CC0

Det er helller ikke bare tyngdekraft og kollisjon som behandles av fysikkmotoren. Også objekter som svaier i vinden, blir sprengt i fillebiter, eller dyttes av en spiller, drives av fysikkmotoren, ofte i samarbeid med animasjonssystemet. Siden formålet med fysikkmotoren er å skape en livaktig etterligning av virkeligheten, er den en av de delene av en spillmotor som bruker flest matematiske beregninger for å gjøre jobben sin, og den er derfor tilsvarende kompleks. Siden tidenes morgen har spill hatt grunnleggende tyngdekraft, men de livaktige eksplosjonene med tusenvis av småbiter som slenges til alle kanter, er derimot en nyere oppfinnelse.

Lyd

For at et spill skal ha riktig stemning må det også ha lyd, i form av lydeffekter og bakgrunnsmusikk. Dette tas hånd om av et lydsystem. I 2D-spill er lydsystemet forholdsvis enkelt, og lyder spilles rett og slett av på riktig tidspunkt. I 3D-spill derimot er systemet mer avansert, for å skape en illusjon av tredimensjonal lyd. Lydvolumet benyttes sammen med stereo-lyd (eventuelt surround-lyd) for å plassere lydene i tre dimensjoner, så du kan høre om noe skjer til høyre, venstre eller rett fram, og om det er i nærheten eller langt unna.

Bakgrunnsmusikken er en del enklere, siden den ikke trenger å komme fra en bestemt retning. Imidlertid må musikken styres til riktig tidspunkt, særlig i spill der musikken er noe som kommer og går, og har flere lydspor med forskjellig lengde. Da må tiden matche så musikken ikke kommer for ofte, og ikke for sjelden.

Kunstig intelligens

Kunstig intelligens (AI) er noe vi i dag gjerne forbinder med roboter og smarte datamaskiner, men i en litt enklere form er kunstig intelligens vel så viktig i mange spill. Du finner knapt noe plattformspill eller førstepersonsspill uten noen form for fiender eller monstre. Alt fra Middle-earth: Shadow of Mordor og League of Legends, til Minecraft og Mario bruker kunstig intelligens, om ikke på en litt varierende måte. For eksempel er Shadow of Mordor blitt kjent for blant annet å la fiende-orkene «huske» deg, så den samme orken kan hevne seg på deg senere i spillet.

Fiender kan navigere ved hjelp av kunstig intelligens
Fiender kan navigere ved hjelp av kunstig intelligens.
FOTO: David M. Bourg, Glenn Seemann.
CC0

Den mest tradisjonelle måten å bruke kunstig intelligens i spill på, er derimot i den hensikt å la fiendene gå rundt og spore deg opp og angripe deg, samt til å styre såkalte NPC-er (Non-Playable Character). Dette startet i spill som Mario, der fiendene kun har nok intelligens til å gå fram og tilbake på en plattform (ikke alle har det, engang), men etter hvert har bruken utviklet seg til å inkludere at fiendene kan gå rundt og holde vakt, stanse når de ser deg, og tilkalle forsterkninger for så å angripe samlet.

De store spillmotorene på markedet

Redigeringsverktøyet i spillmotoren Goo Create
Redigeringsverktøyet i spillmotoren Goo Create.
FOTO: Paranoidray.
CC BY-SA 4.0 International

Den dag i dag domineres markedet av giganter som Unity og Unreal Engine. Stadig flere utviklere, særlig de med små team, velger å gå over til en ferdigprodusert spillmotor, og dette kommer av de enorme mengdene arbeid en spillmotor krever, og kravene til bakgrunnskunnskap for personen som jobber med det. Det er ikke hvem som helst som kan lage en spillmotor, og selv når den er ferdig, gjenstår det fremdeles mye arbeid i form av bug-fiksing og ytelsesoptimalisering. Da er det kanskje ikke så rart at utviklerne heller vil jobbe på prosjektene sine enn å gjøre masse arbed bak kulissene. Og i tillegg har jo ferdige spillmotorer egne programmer som kan være til god hjelp med å lage spillet, da.

Legg igjen en kommentar