En djupdykning i modern spelutveckling

En djupdykning i modern spelutveckling

Mjukvaran och hårdvaran i dagens spelkonsoler och datorer har mycket gemensamt på pappret, men hur likartad är processen för utvecklare? Vi djupdyker i den moderna spelutvecklingen.

PC och spelkonsoler – en historik

Spelkonsolernas tidiga generationer påminde mycket om PC-marknadens unga år. Hårdvaran var oftast specialdesignad för aktuell maskin och generaliserade operativsystem användes inte. Istället användes specialskriven mjukvara som gav utvecklarna specifik tillgång till hårdvarans funktioner för grafik, ljud, minneshantering, med mera.

Från generationerna med Sega Genesis och Super Nintendo till Sega Saturn, Nintendo 64 och Sony Playstation användes hårdvara och mjukvara skräddarsydda för varandra. Utvecklingen för dessa specialiserade paketeringar var ofta så pass komplicerad att spel antingen blev exklusiva eller medförde kostsamma portningar, med varierande kvalitet.

Sega Saturns bruk av dubbla RISC-processorer och hela fem olika grafikkretsar var notoriskt svår för utvecklare att bemästra. Processorn Emotion Engine och grafikkretsen Graphics Synthesizer i Playstation 2 tog åratal att bemästra. Båda spelkonsoler använde specialskriven mjukvara, men den sjätte generationens konsoler som de ingick i introducerade en ny aktör — Microsoft Xbox — som kom att ändra på denna dynamik.

Panzer_Dragoon_Saturn.jpg

Panzer Dragoon var ett tidigt Sega Saturn-spel som lyckades utnyttja konsolens notoriskt svårprogrammerade dubbla processorer.

ps2_emotion_engine.jpg

Emotion Engine-processorn i Playstation 2 var ytterligare en svårprogrammerad arkitektur som tog flera år för utvecklare att bemästra.

Microsofts ursprungliga Xbox var något så ovanligt som en spelkonsol som inte använde RISC-baserade processorer. Istället användes en konsumentversion av Intels Pentium 3 tillsammans med en grafikkrets från Nvidia som baserades på NV2A, ett derivat av Geforce 3-generationen.

Operativsystemet som användes baserades i grunden på dåvarande Windows 2000 med en anpassad version av DirectX-ramverket som finjusterats för att vara mer hårdvarunära än dess motsvarighet på PC/Windows-plattformen. Detta markerade första gången i de båda lägrens historia som både hårdvara och mjukvara var mer eller mindre densamma.

På PC-sidan hade OpenGL sedan mitten av 90-talet utvecklats till en gemensam standard för grafikutveckling, någonting som gjorde det möjligt för PC-spel att sakta men säkert bli mer avancerade än deras konsolmotsvarigheter. Under tiden arbetade Microsoft på att få fram en enhetlig grund för hantering av grafik och media i Windows-plattformen.

Det första försöket kallades WinG, ett ramverk som var tänkt att göra det lättare för utvecklare att porta DOS-spel till Windows 95. Detta var dock mest en förbättring av hur rastergrafik hanterades på Windows-plattformen och WinG övergavs snabbt till förmån för DirectX, som kombinerade hantering av 2D-grafik med 3D-acceleration, ljudhantering, med mera.

WinG.jpg

WinG var en föregångare till DirectX där enklare portning av DOS-spel till Windows låg i fokus.

Xbox_meny.jpg

Gränssnittet i den första Xbox-konsolen hade föga gemensamt med den Windows 2000-kod som låg till grund för systemet.

Med den sjunde generationens spelkonsoler användes återigen operativsystem och utvecklarverktyg från PC-världen, även om hårdvaran tog ett steg tillbaka till mer specialiserade lösningar. Microsoft Xbox 360 använde en IBM PowerPC-baserad processor med tre kärnor och en specialbyggd grafikkrets från dåvarande ATI.

Operativsystemet som användes var en vidareutveckling av Windows 2000-basen från föregångaren och en anpassad version av DirectX 9.0c. Tack vare för sin tid riklig mängd primärminne och liknande utvecklarplattform innebar Xbox 360 en likartad utvecklarprocess jämfört med PC-sidan.

Playstation 3 använde en specialanpassad variant av det Unix-baserade operativsystemet FreeBSD som grund för systemmjukvaran. På utvecklarsidan användes både ett eget ramverk kallat GCM baserat på Nvidias shader-språk Cg samt en anpassad version av OpenGL ES för hantering av grafik och media.

Trots att det var möjligt att använda OpenGL för spelutveckling på Playstation 3 innebar den exotiska arkitekturen bakom Cell-processorn att utvecklare var tvungna att utveckla verktyg och spelmotorer specifikt för denna. En besvärlig process med att porta spel utvecklade för andra plattformar ledde till slut till att Playstation 3 istället blev grundplattformen som portningar för andra plattformar baserades på.

Undantaget i denna konsolgeneration var Nintendo Wii som använde ett eget slutet operativsystem tillsammans med en PowerPC-baserad processor och grafikteknik från dåvarande ATI. Wii tillämpade inte traditionella systemuppdateringar, istället fanns nya versioner av systemet på spelens skivor och installerades vid sidan av den ursprungliga systemversionen.

ps3_Cell_processor.jpg

Med Cell-processorn i Playstation 3 fortsatte Sony trenden med exotisk och svårprogrammerad hårdvara som utvecklare kämpade med i flera år.

crysis1_dx10.jpg

Efter sjunde generationens konsoler sprang PC-plattformens utveckling iväg, med lanseringar av såväl DirectX 10 och 11 under det följande årtiondet.

Under årtiondet som följde efter att Microsoft Xbox 360, Sony Playstation 3 och Nintendo Wii lanserades utvecklades PC-sidan i rask takt. DirectX 10 och 11 löste av varandra, likaså flerkärniga processorer och nya generationer grafikkort. Att utveckla för spelkonsol och PC skiljde sig därmed återigen åt markant.

Det skulle dröja till 2013 och lanseringen av åttonde generationens spelkonsoler med Playstation 4 i spetsen som de båda lägren närmade sig varandra igen. Både Playstation 4 och Xbox One enades runt x86-baserade processorer från AMD där företagets GCN-arkitektur står för grafikdelen. Efter sin mindre lyckade satsning Wii U gick Nintendo över till ARM och Maxwell-grafik från Nvidia med företagets senaste spelkonsol Switch.

Microsoft baserade mjukvaran i Xbox One på samma Windows-bas och lågnivåramverket DirectX som används på PC-sidan, med början i Windows 8/DirectX 11 för att senare uppdatera detta till Windows 10/DirectX 12. Både Sony och Nintendo baserade sina operativsystem på en FreeBSD-grund med lågnivåramverk i form av GNM respektive Vulkan.

Det förefaller alltså som om hårdvaran och mjukvaruverktygen blivit enhetliga mellan spelkonsol och PC, och att det därför borde vara lättare att utveckla för flera plattformar i dagsläget. Stämmer detta i praktiken?

Kommentarer till artikeln

31 debattinlägg

Skicka en rättelse
37

Nvidia ger Geforce GTX-grafikkort stöd för DirectX Raytracing

Stöd för realistiskt ljus via ray tracing i spel kommer snart på bred front, då Nvidia nu meddelar att äldre grafikkort från Geforce GTX 1060 och uppåt får stöd för DirectX Raytracing. Läs mer

I samarbete med MSI
67

SweClockers testar sju olika grafikkort i battle royale-liret Apex Legends

Redaktionen laddar upp testsystemet för att se vad det krävs att driva Apex Legends med stabil bildfrekvens. På menyn finns sju gamla och nya grafikkort från både Nvidia och AMD. Läs mer

43

Apple släpper nya Ipad Air och Ipad Mini med processorn A12 Bionic

Med 3,5 år på nacken får minstingen Ipad Mini en välbehövlig uppdatering. Samtidigt får Ipad Air mer krut och kliver in som ersättare till Ipad Pro på 10,5 tum. Läs mer

73

Nvidia direktsänder från GPU Technology Conference 2019

Sent måndag kväll svensk tid intar Nvidias VD Jensen Huang scen på GPU Technology Conference, där bolaget kan komma att ge en första inblick om nästa generations grafikkort. Läs mer

10

Nvidia Geforce GTX 1650 med 4 GB grafikminne hittar ut på webben

Uppgifter om ett Geforce GTX 1650 styrks ytterligare, då modellen nu hittar ut på webben. Samtidigt bekräftas att modellen bestyckas med 4 GB grafikminne. Läs mer

41

Spotify: "Apple är monopolister som bryter mot lagen"

Dispyten mellan Apple och Spotify fortsätter. Nu svarar Spotify på konkurrentens senaste uttalande och hävdar att det är tydligt att de bryter mot lagen. Läs mer

137

Intel "Comet Lake" med 10 kärnor bekräftas – baseras på arkitekturen Skylake

Innan arkitekturen Sunny Cove på 10 nanometer blåser Intel för fjärde gången nytt liv i Skylake på 14 nanometer. Nu bekräftas processorfamiljen Comet Lake med upp till 10 kärnor. Läs mer

64

Samsung arbetar på kamera som kan gömmas under telefonskärmen

I takt med att telefoners skärmkanter krymper finns allt mindre plats för kameror och högtalare. Nu avslöjar Samsung att bolaget arbetar lösningar för att gömma kameror under skärmen. Läs mer

12

Total War: Three Kingdoms får systemkrav i fyra nivåer

Det senaste tillskottet till strategiserien Total War utspelar sig i Kina, och låter spelare slåss om vem som ska ta vid efter Han-dynastins fall. Nu avslöjas även systemkraven. Läs mer

91

Test: Nvidia Geforce GTX 1660 – efterträdare till populära GTX 1060

Efter Geforce GTX 1660 Ti äntrar nu GTX 1660 testlabbet. På menyn står en något nedskalad variant av kretsen TU116 med 6 GB GDDR5-minne och ett på pappret lockande rekommenderat pris. Läs mer

11

Testpilot: Phanteks Eclipse P600S – flexibelt och rymligt chassi

Skruvmejslarna släpas fram när testpilot Björn "Deriveh" Höjing tar sig an Phanteks senaste chassi, som utlovar stort utrymme och många monteringsmöjligheter. Läs mer

104

Epic Games spelklient tar användardata från Steam

Epic Games Store har fått fäste som en verklig konkurrent till Steam. Nu rapporteras att förstnämnda hämtar viss användardata från Steam-klienten, utan att fråga användaren om lov. Läs mer