Spillmotor

Begrepet spillmotor , eller ganske enkelt spillmotor , refererer til en rekke programmeringsrutiner som tillater design , opprettelse og drift av et videospill . [ 1 ]​ [ 2 ]​ [ 3 ]

Den typiske funksjonaliteten som tilbys av en spillmotor inkluderer: en grafikkmotor for å gjengi 2D- og 3D-grafikk , en fysikkmotor for å simulere fysikkens lover (eller ganske enkelt for å generere kollisjonsdeteksjon ), animasjon , skripting , lyder , kunstig intelligens , nettverk , videresending , minnebehandling , grafiske scenarier og støtte for skriptspråk . [ 2 ]​ [ 4 ][ 5 ] [ 6 ]

Opprinnelsen til navnet

Begrepet spillmotor ble laget på begynnelsen av 1990- tallet , spesielt knyttet til begynnelsen av 3D-videospill, for eksempel førstepersons skytespill . Den første kjente 3D-spillmotoren var imidlertid Freescape Engine, utviklet av Incentive Software i 1986. [ 7 ] I dag varierer kjøp av en spillmotor sterkt avhengig av dens opprinnelse: [ 3 ] [ 8 ] ​[ 9 ] åpen kildekode , [ 6 ] ​shareware eller betalt , [ 10 ]​ håndtering av alle slags verdier. [ 11 ] Utviklingsprosessen til et videospill kan variere betydelig og det er ganske vanlig at utviklere (for å dekke kostnader) velger å gjenbruke eller tilpasse samme spillmotor for å lage forskjellige spill. [ 6 ] [ 12 ] [ 13 ] På samme måte er det videospillmotorer som opererer på både videospillkonsoller og operativsystemer .

Definisjon

Spillmotorer gir vanligvis et sett med visuelle utviklingsverktøy og programvarekomponenter som kan gjenbrukes. [ 9 ] Disse verktøyene leveres vanligvis i et integrert utviklingsmiljø som lar spill lages raskt og enkelt gjennom en database . [ 6 ]​ [ 8 ]​ I andre tilfeller leveres motorer med et innebygd applikasjonsprogrammeringsgrensesnitt (API); [ 14 ] og andre motorer er imidlertid distribuert som et sett med verktøy som ytterligere fremskynder og forenkler utviklingen av et videospill, for eksempel: integrerte utviklingsmiljøer , forhåndsprogrammerte skript og mellomvare (som kan koble sammen flere programmer). Dette er nyttig når det gjelder å oppnå en fleksibel og gjenbrukbar programvareplattform som unngår kjøp av andre eksterne ressurser, noe som bidrar til å ha alt som er nødvendig for å gjøre det funksjonelt umiddelbart, og reduserer kostnader, kompleksitet og time to market. Alle disse faktorene er kritiske i en svært konkurranseutsatt bransje. [ 15 ] Fra 2001 var Gamebryo , JMonkeyEngine og RenderWare mye brukte mellomvareprogrammer . [ 16 ] For øyeblikket kan motorer som Torque Game Engine , Unity , Blender , CryEngine og Unreal Engine siteres . [ 2 ]​ [ 6 ]​ [ 12 ]​ [ 17 ]

En videospillmotor kan deles inn i to brede kategorier: grafikkmotor og fysikkmotor . Grafikkmotorene tar for seg det visuelle aspektet av videospillet, som genererer syntetiske bilder ved å integrere eller endre visuell og romlig informasjon. Eksempler inkluderer: OGRE 3D , Crystal Space og OpenSceneGraph . Fysiske motorer omhandler integrering av fysikkens lover, og er ansvarlige for å simulere virkelige handlinger, gjennom variabler som tyngdekraft , masse , friksjon , kraft og fleksibilitet. [ 1 ] Som eksempel kan vi nevne: Havok , Bullet og ODE . [ 12 ]

Til tross for navnets spesifisitet, brukes spillmotorer også til å lage andre typer interaktive applikasjoner referert til som " seriøse spill ", [ 18 ] [ 19 ] [ 20 ] som arkitektoniske visualiseringer, [ 21 ] utdanning, [ 22 ] [ 23 ]​ vitenskapelige fremskritt, [ 24 ]​ treningssimuleringer, [ 25 ] [ 26 ]​ modelleringsverktøy [ 21 ]​ og fysiske simuleringer for å gjenskape animasjoner. [ 27 ]

Maskinvareabstraksjon

Videospillmotorer som gir maskinvareabstraksjon [ 28 ]​ [ 29 ]​ [ 30 ]​ lar en programmerer utvikle videospill uten å måtte kjenne maskinvarearkitekturen til plattformen der de skal jobbe (dette kan være et videospill eller et operativsystem). Av denne grunn er mange motorer utviklet fra et eksisterende API, slik som OpenGL , DirectX , OpenAL og SDL , [ 8 ]​ eller til og med fra en annen motor, som kan lette utviklingen deres. Maskinvareabstraksjon er også avgjørende for utviklingen av motorer med funksjoner på tvers av plattformer .

Før maskinvareakselerasjon i 3D-grafikk ble programvaregjengivelse brukt ; [ 31 ]​ [ 32 ]​ som fortsatt brukes i visse modelleringsverktøy og bildegjengivelser , der grafisk kvalitet er en prioritet eller når maskinvaren ikke støtter bestemt teknologi, for eksempel shaders .

Historikk

Før spillmotorer eksisterte, ble de vanligvis utviklet som enkeltstående enheter (det var ingen separasjon av områder, som grafikk og fysikk): et spill for Atari 2600 , for eksempel, måtte planlegges fra bunnen av, med enklest mulig kode og manipulere piksel for piksel, for å gjøre en optimalisert bruk av maskinvaren , på grunn av dens begrensninger; [ 33 ] [ 34 ] men det var først på 1990-tallet at begrepet spillmotor oppsto i sammenheng med førstepersonsskytespill. Den store populariteten til spillene Wolfenstein 3D , Doom og Quake [ 35 ] skyldes hovedsakelig det faktum at i stedet for å lage et videospill fra bunnen av, ble kjernene i spillet lisensiert til å bruke som en base og lage sine egne spillmotorer . Etter hvert som denne teknologien ble modnet, var videospillmotorer ikke lenger begrenset til ren videospillutvikling. Faktisk begynte de å bli implementert på andre områder, for eksempel profesjonell opplæring, medisinsk bruk og militære simuleringer. [ 36 ]

Selv om begrepet ble laget på 1990-tallet, er det en historie med andre systemer på 1980- tallet som også regnes som spillmotorer, som Sierras AGI og SCI Systems , LucasArts' SCUMM og Freescape Engine . Imidlertid, i motsetning til de fleste moderne spillmotorer, ble disse aldri outsourcet , med unntak av SCUMM-systemet som ble lisensiert og brukt til Humongous Entertainment . Den første 3D-videospillmotoren som ble brukt til å lage PC-spill var Freescape Engine, [ 13 ] utviklet av Incentive Software i 1986, brukt til å lage førstepersons skytespill fra 1987. [ 37 ]

Selv om videospill allerede hadde blitt laget lenge før opprettelsen av et API som DirectX og OpenGL, drev deres etablering utviklingen av teknologiene som ble brukt i videospill og bidro til å utvikle det markedet. [ 38 ] Den første versjonen av DirectX ble utgitt 30. september 1995 under navnet Windows Games SDK . Det var Win32 API - komponenten som erstattet DCI [ 39 ] og WinG fra Windows 3.1 . Etter å ha blitt opprettet, har DirectX vært til stede i alle versjoner av Microsoft Windows, fra og med Windows 95 , med høyytelses multimedieinnhold. Eisler blogget om odysseen med å bygge DirectX 1 til sin femte versjon. [ 40 ] Selv om OpenGL ble opprettet først (januar 1992), var (og er fortsatt) DirectX mer populært innen spillutvikling. [ 41 ]

I lang tid har bedrifter laget sine egne spillmotorer. [ 35 ] Men med tiden økte kostnadene ved opprettelsen, og av denne grunn begynte flere selskaper å spesialisere seg utelukkende på å bygge videospillmotorer, eller ressurser for dem, og dermed være i stand til å selge dem til andre selskaper. Årsaken er fordi det tar mye tid og penger for et selskap, i tillegg til å produsere sin egen videospillmotor, å senere måtte bygge sitt eget videospill. [ 4 ]

Moderne spillmotorer er en av de mest komplekse applikasjonene som finnes. [ 10 ] ​[ 13 ]​ Dens kontinuerlige utvikling har skapt et sterkt skille mellom noen av kjerneområdene, som gjengivelse, skripting , konseptkunst og nivådesign; Men det aspektet de har til felles i dag er det å ha artister som programmerere. [ 42 ] Ettersom de fleste av dagens videospill i økende grad begrenses til kraften til GPU og PPU , er ytelsestap i programmeringsspråk på høyt nivå som C# , Java og Python ikke lenger gyldige, mens produktivitetsgevinster som tilbys av disse språk fungerer til fordel for spillmotorutviklere. [ 43 ]​ [ 44 ]

Prisene på videospillmotorer varierer mye på grunn av den store veksten som videospillindustrien produserte . Slik sett var inntektene i 2007 9,5 milliarder dollar, og overgikk filmindustrien . [ 45 ] Bruttoinntekter i 2007 nådde 18,8 milliarder dollar, [ 46 ] og ti år senere, i 2017, nådde de 36 milliarder dollar. [ 47 ]

Førstepersons videospillmotorer

Førstepersons videospillmotorer er de mest populære og kjente. Mens strategispill og flysimulatorer i sanntid satser på grafisk kvalitet, satser førstepersons videospillmotorer mer på action , og Doom er den mest kjente; og de er viktige fordi de markerer en historisk begynnelse i opprettelsen og bruken av videospillmotorer.

GPU-forbedringer som Shader Model 3 og Shader Model 4 muliggjorde forbedringer på det grafiske nivået. Fra 2009 ble to store fremskritt i de store spillmotorene som har eksistert til dags dato annonsert: id Tech 5 (som først ble brukt i Rage , og har en ny teknologi kalt virtuell teksturering ), [ 48 ] og CryEngine 3 , som ble brukt å utvikle videospillet Crysis 2 .

Få selskaper har diskutert hvilke planer de har i fremtiden for at nye motorer skal komme ut. Imidlertid er id Tech 6 , den eventuelle etterfølgeren til id Tech 5, et unntak. Foreløpig informasjon om denne motoren (som fortsatt er i tidlig utvikling) antyder at id Software undersøker hvordan den kan integrere strålesporing og grafisk rasteriseringsteknologi . [ 49 ] Den vil løpe gjennom en geometrisk gjengivelse representert av voksler (i stedet for trekanter) lagret i et oktaltre . John Carmack uttaler at denne prosedyren vil være en mer effektiv måte å lagre 2D-data på, samt 3D-geometriske data, da den ikke vil ha lagringsproblemer. [ 49 ]

Hovedkomponenter

Komponentene som en videospillmotor for tiden har, har et bredt utvalg av egenskaper som er svært forskjellige fra hverandre. I prinsippet kan fem store områder skilles:

Hovedspillshow

Logikken til videospillet må implementeres gjennom ulike algoritmer . [ 50 ] ​[ 13 ]​ Det er en annen struktur enn alle gjengivelses- eller lydverk.

Gjengivelse

Gjengivelse er prosessen der 3D-datagrafikk genereres for å vise det visuelle utseendet til videospillet på skjermen. [ 10 ] Den genererer 3D-grafikk ved hjelp av ulike metoder (som grafisk rasterisering, strålesporing , binær partisjonering av rom , blant annet) og omhandler visning av innstillinger, modeller, animasjoner, teksturer, skygger, belysning og materialer. [ 9 ]

Gjengivelse er oftest basert på en eller flere APIer, som Direct3D, OpenGL eller Vulkan , [ 10 ] som gir en programvareabstraksjon på GPU . Lavnivåbiblioteker som DirectX, Simple DirectMedia Layer (SDL) og OpenGL brukes også i videospill, da de gir maskinvareuavhengig tilgang. Med bruken av maskinvareakselerert fysikkbehandling, er forskjellige API-er som PAL- og COLLADA -utvidelser tilgjengelige for å gi en programvareabstraksjon på PPU-en til forskjellige mellomvare- og spillkonsollleverandører .

Polygoner

Ethvert element som har en tredimensjonal sammensetning er klassifisert etter polygoner. Det er den mest primitive prosedyren for å skape en tredimensjonal verden, og dens geometriske kompleksitet varierer i henhold til de tekniske egenskapene til maskinvaren. [ 8 ] Slik kompleksitet kan klassifiseres i lav, middels og høy polygynal sammensetning. Dette vil resultere i et visst detaljnivå og tegneavstand . [ 8 ]

Detaljnivå og tegneavstand
Bilde
hjørner ~5500 ~2880 ~1580 ~670 140
Karakterer Maksimal detalj.
Spiller nær objektet.
Minimal detalj.
Spilleren er for langt fra objektet.

Lyd

Lyden til et videospill kan håndteres på mange måter, og dette avhenger av funksjonene til motoren. I dag støtter siste generasjons motorer mange lydformater, de mest populære er WAV og OGG . I noen tilfeller kan spillmotorer kreve nøyaktige innstillinger, selv om den mest kjente metoden er lydbehandling gjennom musikkløkker eller tonehøydeskifting når det kommer til stemmer eller lydeffekter .

Komponentene i forhold til lyden har ansvaret for å manipulere algoritmer som har å gjøre med lasting, modifikasjon og utgang av lyden gjennom brukerens høyttalersystem. [ 1 ]​ Du må som et minimum kunne laste inn, komprimere og spille av lydfiler. [ 1 ] Mer avanserte lydkomponenter kan blant annet beregne og produsere ting som dopplereffekter , ekko , amplitude og tonehøydejusteringer . Abstraksjons-APIer som OpenAL, SDL Audio eller DirectSound lar deg enkelt manipulere disse fenomenene.

Fysisk motor

Fysikkmotoren er ansvarlig for realistisk å emulere fysikkens lover i spillmotoren. [ 1 ]​ Nærmere bestemt gir den et sett med funksjoner for å simulere virkelige handlinger gjennom variabler som tyngdekraft , masse , friksjon , kraft , fleksibilitet [ 1 ] [ 8 ] og kollisjoner , som virker på de forskjellige objektene i spillet ved tidspunktet for dens utførelse.

Kunstig intelligens

Kunstig intelligens er den som gir stimulansen til videospillet. Utdypningen er kritisk når det gjelder å oppnå et polert og underholdende spill. Det kan bli veldig komplekst [ 8 ]​ og det er nødvendig å ta hensyn til visse variabler, som å skape programmert atferd, avgrense deres syn på den tredimensjonale verden, deres interaksjon i den, beslutningstaking og derved oppnå en logisk og sammenhengende konsistens i at spilleren må svare på en forventet måte.

Skripting

Prosedyre som normalt brukes i situasjoner hvor det er nødvendig å forklare noe kontrollert. [ 1 ] De brukes for øyeblikket for å representere historien som spillet vil ha, slik at utvikleren kan ta kontroll over scenen og manipulere den, [ 8 ] som å plassere objekter eller legge til hendelser som spilleren ikke kontrollerer.

Se også

Referanser

  1. ↑ a b c d e f g "Hva er en spillmotor? | Tele-Education Cabinet Observatory» . Hentet 6. desember 2018 . 
  2. ↑ a b c "Spillmotor | Definisjon i GamerDic | Ordbok over begreper om videospill og spillerkultur» . www.gamerdic.es . Hentet 8. desember 2018 . 
  3. ↑ a b "Graphic engine - EcuRed" . www.ecured.cu . Hentet 8. desember 2018 . 
  4. ↑ a b Hva er en spillmotor? fra GameCareerGuide.com
  5. Boyer, Brandon. "SGS-funksjon: 'Serious Game Engine Shootout ' " (på engelsk) . Hentet 1. desember 2018 . 
  6. ↑ a b c d e FayerWayer. "Hva er en motor for videospill?" . FayerWayer (på amerikansk engelsk) . Hentet 8. desember 2018 . 
  7. "Freescape" . Universell videospillliste . Hentet 1. desember 2018 . 
  8. ↑ a b c d e f g h Ruelas, Uriel. "Hva er en spillmotor?" . Hentet 8. desember 2018 . 
  9. ↑ a b c Santos, Manuel (6. mai 2018). "Grafikmotorer: Hva de er og hvorfor de er så nyttige" . HardZone . Hentet 8. desember 2018 . 
  10. ↑ a b c d «Hva er grafiske motorer og hvilke er de mest populære» . Blogthinkbig.com . 1. april 2015 . Hentet 8. desember 2018 . 
  11. Galuzin, Alex. "23 anbefalte 3D-spillmotorer (oppdatert)" . www.worldofleveldesign.com (på engelsk) . Hentet 1. desember 2018 . 
  12. ↑ a b c "Hva er en spillmotor? - GameCareerGuide.com" . www.gamecareerguide.com . Hentet 1. desember 2018 . 
  13. ↑ a b c d "Hva er en 3D-grafikkmotor?" . Softonic . Hentet 8. desember 2018 . 
  14. "Typer APIer - Web API, Code API og mer" . www.tecnologias-informacion.com (på spansk) . Hentet 1. desember 2018 . 
  15. Cowan, Danny. «Joystik» . Gamedaily.com . Hentet 24. november 2013 . 
  16. ^ "Rise of Middleware" . Utvikle-online.net. 6. juli 2007 . Hentet 17. januar 2011 . 
  17. «Hva er mellomvare: definisjon og eksempler | Microsoft Azure» . azure.microsoft.com . Hentet 1. desember 2018 . 
  18. Marcano, Beatrice (2008). "SERIØSE SPILL OG TRENING I DET DIGITALE SAMFUNNET" . Pedagogisk teori. Utdanning og kultur i informasjonssamfunnet 9 (3) . Hentet 1. desember 2018 . 
  19. Molano, Adriana. "Seriøse spill: DragonBox, et eksempel å følge" . colombiadigital.net . Arkivert fra originalen 1. desember 2018 . Hentet 1. desember 2018 . 
  20. "Seriøse spill, pedagogiske spill (med eksempler og eksperimenter)" . no.slideshare.net . Hentet 1. desember 2018 . 
  21. ^ a b "3D-modellering for alle" . skissere opp . Hentet 1. desember 2018 . 
  22. ^ "Seriøse spill og deres potensiale som pedagogiske enheter - EDUforics" . EDUforics . 24. april 2016 . Hentet 1. desember 2018 . 
  23. «De 10 beste pedagogiske videospillene | Utdannings- og IKT-bloggen» . Utdannings- og IKT-bloggen . 16. desember 2013 . Hentet 1. desember 2018 . 
  24. (www.dw.com), Deutsche Welle, "Serious Games": Videospill for vitenskap | D.W. | 2012-02-21 , hentet 2018-12-1  .
  25. Teknologisk institutt i Aragon (29. desember). "Analyse: Grafikkmotorer og deres anvendelse i industrien" (PDF) . Regjeringen i Spania - departementet for økonomi og konkurranseevne. 
  26. "De beste seriøse spillene (seriøse spill - trening) - BEST.XYZ" . BEST.XYZ . 19. januar 2018 . Hentet 1. desember 2018 . 
  27. «De 10 innovative motorene for virtuell virkelighet videospill - iQ Spania» . iQ Spania . 8. juli 2016 . Hentet 1. desember 2018 . 
  28. U, Mr. Daniel J. Chavez. Maskinvareuavhengig bilde (IIH) . Daniel J. Chavez U. Hentet 1. desember 2018 . 
  29. serrotho. «Dagens setninger: Abstraksjonslag...» . Hentet 1. desember 2018 . 
  30. Valdivia, Christian Paredes (12. januar 2010). "Linux: The Hardware Abstraction Layer eller HAL" . linux . Hentet 1. desember 2018 . 
  31. ^ "4 teknologier som endret videospill" . Omicrono . 11. juli 2016 . Hentet 1. desember 2018 . 
  32. ^ "Bidrag fra videospill til teknologi" . Blogthinkbig.com . 18. august 2013 . Hentet 1. desember 2018 . 
  33. Gonzalo. "Foreldede systemer - ATARI 2600-programmering" . web.atari.org . Hentet 2018-12-05T03:43:21Z . 
  34. "2600 - PROGRAMMERINGSSPILL UTEN RESSURSER" . Hentet 2018-12-05T03:44:52Z . 
  35. ↑ a b Team, merkevareinnhold på nettlogger (11. mai 2018). "Dette er hvordan de viktigste grafikkmotorene i videospillhistorien ble opprettet" . ekstraliv . Hentet 8. desember 2018 . 
  36. "Videospill begynner å bli seriøse" . ww2.gazette.net . Arkivert fra originalen 17. august 2011 . Hentet 6. desember 2018 . 
  37. "Freescape" . Universell videospillliste . Hentet 6. desember 2018 . 
  38. ^ "Direct3D" . pctechguide.com (på amerikansk engelsk) . 23. september 2011 . Hentet 6. desember 2018 . 
  39. stason.org, Stas Bekman: stas (at). «54 Hva er DCI?» . stason.org . Hentet 6. desember 2018 . 
  40. ^ "DirectX da og nå (del 1) | Craigs Musings» . Hentet 6. desember 2018 . 
  41. ^ "OpenGL 3 & DirectX 11: The War Is Over" . Toms maskinvare (på engelsk) . 16. september 2008 . Hentet 6. desember 2018 . 
  42. ^ "Indeks for /~id111x/c05/slides" . web.cs.wpi.edu . Hentet 6. desember 2018 . 
  43. "C# vs C/C++ Ytelse - CodeProject" . www.codeproject.com . Hentet 6. desember 2018 . 
  44. "Supergiant Games - Bastion FAQ" . www.supergiantgames.com . Hentet 6. desember 2018 . 
  45. Karriereveiledning for spillindustrien . Delmar: Cengage Learning. 2010. ISBN  1-4283-7647-X . 
  46. ^ "Data- og videospillindustrien når 18,85 milliarder dollar i 2007" . The Entertainment Software Association . Arkivert fra originalen 22. mars 2018 . Hentet 6. desember 2018 . 
  47. ^ "Inntekter fra amerikansk videospillindustri når 36 milliarder dollar i 2017" . The Entertainment Software Association . Arkivert fra originalen 22. mars 2018 . Hentet 6. desember 2018 . 
  48. JMP van Waveren (Senior programmerer). id Tech 5 utfordringer - fra teksturvirtualisering til massiv parallellisering . id programvare. Arkivert fra originalen 7. oktober 2009 . Hentet 7. desember 2018 . 
  49. ^ a b "John Carmack på id Tech 6, Ray Tracing, Consoles, Physics og mer | PC-perspektiv" . www.pcper.com . Arkivert fra originalen 7. desember 2018 . Hentet 7. desember 2018 . 
  50. ^ "Motorer for videospill" . expertjava.ua.es . Hentet 8. desember 2018 .