Vil du bli kjendis for koden du skriver, kan det lønne seg å kode spill. Det kan også lønne seg om du strengt tatt allerede har gjort det, gjerne for sånn rundt 25 år siden.
For det er ikke mange av dagens utviklere som kan regne med å bli like kjente som 90-tallets spillutviklere, med legender som John Carmack og David Brevik.
Sistnevnte var lead programmer på spillet Diablo - et spill som definerte hel action-RPG-sjangeren, og kanskje en generasjon av spillere og utviklere i samme slengen.
Brevik var denne helga gjest i årets digitale utgave av Retromessa, som arrangeres av Spillmuseet, hvor kode24s fagredaktør Jørgen Jacobsen er med som frivillig.
Jørgen fikk dermed en unik mulighet til å spørre om hvordan Brevik og kollegene endte opp med å kode ett av verdens viktigste PC-spill.
Basic på Apple II Plus
- Det første spillet jeg spilte var pong, på en av Ataris Pong-maskiner, rundt 1975, forteller David Brevik i videopraten med Jørgen og Spillmuseet-makker Jan Olav Hegvik.
Men spillkonsoller og hjemme-PC-er på den tida var ikke mye å rope hurra for, så det var i arkadehallene at Breviks lidenskap for spill virkelig ble tent. Det vil si; helt til faren kom hjem med en overraskelse.
- Faren min fikk en Apple II Plus. Jeg lærte meg å programmere på den, og lagde mine egne spill. Da visste jeg hva jeg ville gjøre resten av livet mitt; lage spill. Og det har jeg gjort siden, fortsetter den amerikanske spillutvikleren med forfedre fra tettstedet Brevik i Porsgrunn kommune.
- Var det Basic det gikk i, eller Assembly?
- Jeg starta med Basic, og bevegde meg så mot Assembly. Alle mine første spill, selv på PC, ble skrevet i Assembly, for maskinene var så trege. Og på konsoller, som Super-Nintendo og Sega Genesis, var alt skrevet i Assembly. Assembly var veldig viktig i spill, da, sier Brevik.
- Synd det er så få muligheter for å jobbe med spill
Brevik + Blizzard = Diablo
Brevik visste hva han ville, og han visste hvordan. Den selvlærte spillutvikleren ville derfor skippe utdannelsen, men akkurat det var ikke foreldrene hans så gira på.
Dermed ble det en grad i computer science, noen jobber i spillbransjen og etterhvert et eget spillselskap med Erich og Max Schaefer; Condor.
Gjennom en snodig historie som involverer Consumer Electronics Show (CES) og spillet Justice League Task Force, møtte de et annet selskap, kalt Silicon & Synapse. De fant tonen, og Brevik fikk muligheten til å pitche Diablo.
Ikke for første gang, vel og merke - en rekke utgivere hadde allerede slått ned ideen. Men ikke Silicon & Synapse. De hadde nylig bytta navn til Blizzard, holdt på med et aldri så lite PC-spill som skulle bli Warcraft, og elska ideen om Diablo.
Utviklingen kunne starte.
Breviks første C-program
- Diablo var mitt drømmespill. Jeg tenkte på det gjennom hele high school, og brukte år etter år på å planlegge det, forteller Brevik under Retromessa-intervjuet.
Men ikke alt skulle bli som planlagt.
En av de mest fortalte historiene om hvordan en idé må knas før den er klar, og kanskje til og med det vi i dag ville kalt smidig utvikling, er hvordan Diablo gikk fra å være et turbasert spill til et spill i sanntid. Dette var ett av kravene fra Blizzard, og etter mye nøling fra Breviks side, fikk han endra koden så raskt i løpet av en fredagskveld at han selv også ble overbevist.
«Ikke bare var Diablo det første C-programmet jeg noen gang utvikla, men det var også første gang jeg skulle gjøre noe nettverks-programmering.»
Et annet krav fra Blizzard var at Diablo fikk en flerspiller-modus. Problemet var bare at Brevik ikke ante hvordan.
- Ikke bare var Diablo det første C-programmet jeg noen gang utvikla, men det var også første gang jeg skulle gjøre noe nettverksprogrammering. Så da Blizzard ringte og spurte hvordan det gikk med nettverksgreiene, sa jeg bare "Joda, det går fint!", gliser Brevik.
- Men vi hadde ikke gjort noe nettverksutvikling i det hele tatt. Til slutt innrømte jeg at vi ikke var klare i det hele tatt, de sa "å herregud", og sendte opp en av utviklerne deres for seks måneder.
Utvikling i Excell
I Diablos pitch, som ligger ute på Breviks graybeardgames.com, kan du lese hvordan de antok at tre utviklere skulle klare å lage Diablo. Men de endte opp med seks stykker, pluss han fra Blizzard som kom for å fikse nettverkskoden.
- Hvordan strukturerte dere et slikt prosjekt på den tida?
- Diablo var delt opp i mange moduler og seksjoner. Mye av dataen ble lagd i Excell, som dermed ble eksportert inn i spillet, forteller Brevik.
- Vi hadde for eksempel en monster-AI-seksjon, en gjenstander-seksjon, en skills-seksjon, som alle var separate, og lot utviklerne jobbe med ulike ting uten å trampe på hverandre.
- Og hva jobba du mest med?
- Jeg jobba mest med rendering og low level-greier. Minne-styring, disk-I/O, kollisjoner og pathing. Pluss at jeg hjalp til med å lage skills og kontroller. At kontrollen skulle være responsiv, at alt føltes bra ut, brukte vi mye tid på å iterere.
Endre, endre og endre
Perspektivet i Diablo, den isometriske synsvinkelen, knabba de rett fra spillet X-COM. Brevik forteller hvordan de tok en skjermdump, som skal ha vært vrient på den DOS-tida, og rett og slett tegna oppå for å sikre seg at Diablo sitt gulv ble identisk X-COM sitt.
- Men brukergrensesnittet i Diablo, med de to kulene, har alltid vært det ikoniske med Diablo for meg. Hvordan kom det på plass?
- Det tok lang tid, og mange iterasjoner. Vi den om gang på gang på gang, forteller Brevik.
På 90-tallet frykta vi Turtles og RoboCop
- Lenge mocka vi til noe med enkel grafikk. Men så skulle vi gjøre en PC Gamer- og DirectX-demodisk, og la inn kulene for disse demoene, sommeren før lansering. Og selv etter det, bare en måned før lansering, la vi inn linja for trylledrikkene!
Diablo kom ut på PC romjula 1997. At det skulle bli et spill man snakker om på obskure, norske retromesser 23 år etterpå ante han selvfølgelig ingenting om da. Skjønt, han ante at de var inne på noe når de ansatte heller spilte Diablo enn å gå hjem for kvelden under utviklingen.
- Noen jeg møter sier Diablo ødela for skolegangen deres, da de ikke leste fordi de bare spilte Diablo, humrer Brevik.
- Andre forteller at Diablo var grunnen til at de ble utviklere.
Koden på GitHub
Diablo og oppfølgerne spilles den dag i dag, det har blitt skrevet en fantastisk bok om utviklingen, Brevik må stadig stille på konferanser og fortelle historiene sine og i 2018 ble kildekoden til spillet lasta opp på GitHub.
En utvikler hadde brukt tusenvis av timer på å reverse engineer Breviks mesterstykke, i et prosjekt kalt Devilution.
- Jeg synes det er helt fantastisk at de fikk det til. For en innsats! sier legenden i Retromessa-intervjuet.
«Jeg synes det er helt fantastisk at de fikk det til. For en innsats!»
Utvikleren bak Devilution brukte blant annet såkalte symbol-filer som lå på CD-en til den japanske Playstation-versjonen av Diablo. Slike filer inneholder blant annet navn på filer, funksjoner og variabler, som gjør det mulig å rekonstruere kildekoden fra de kompilerte filene.
- Utviklerne som lagde Playstation-porten for oss lot disse filene være på CD-ene, for ingen kunne jo lese dem uansett. Men da Playstation-krypteringen ble brutt, fant noen denne informasjonen, og kunne reverse engineer koden vår, forklarer Brevik.
- Det synes jeg er veldig kult. Jeg var på en messe og møtte folk som viste meg hvordan de brukte teknologien; "Jeg fikk Diablo til å kjøre på telefonen min! Jeg fikk Diablo til å kjøre på Nintendo Switch!" Det er kjempekult at de nå kan bevare Diablo-koden..
Bane NOR: - Dette lærte vi av League of Legends
Inviterte Norges beste LoL-spillere for å hjelpe med nytt trafikkstyring-system.