- Dette spillet er mitt livsverk

Magnar Sveen har brukt over 20 år på å skrive over 30.000 sider med innhold til Adventur Delux i Clojure.

Magnar Sveen jobber til daglig i Kodemaker. På fritida lager han Adventur Delux - et tekstbasert eventyrspill han har jobba med i over 20 år totalt. 📸: Privat
Magnar Sveen jobber til daglig i Kodemaker. På fritida lager han Adventur Delux - et tekstbasert eventyrspill han har jobba med i over 20 år totalt. 📸: PrivatVis mer

Å lage spill tar tid. For eksempel sies det at fjorårets storspill Red Dead Redemption tok mellom åtte og ni år fra start til slutt, mens norske Krillbite har brukt seks år på sitt Mosaic.

Og Magnar Sveen, som står bak hobbyspillet Adventur Delux? Han pleier å si at han har brukt noe sånt som over 20 år.

- Som så mange andre begynte jeg å programmere for å lage mine egne spill. Det gikk i Commodore 64 og Amiga, før jeg måtte få meg en PC når jeg skulle studere, forteller Sveen, som til daglig jobber som utvikler i Kodemaker.

Neida; han har ikke brukt rundt 23 år på nøyaktig det samme spillet. Men det tekstbaserte eventyrspillet har røtter fra langt tilbake, og resultatet av årevis med jobbing er et spill med over 30.000 sider innhold.

Slik gjør han det.

Magnar Sveen har fått hjelp til å lage noe grafikk, selv om det aller meste er ren tekst.
Magnar Sveen har fått hjelp til å lage noe grafikk, selv om det aller meste er ren tekst. Vis mer

Hva går spillet ut på? 🕹️

Adventur Delux er et tekstbasert eventyrspill som foregår i middelalderen, sånn rundt tetid. Man har med seg langsverdet sitt på tur, sier vittige ting, og slåss med drager, demoner og andre bøllefrø.

«Spillet består ganske enkelt av sider i en gigantisk rettet graf.»

Spillet var inspirert av tidsreisebøkene - en bokserie hvor man leste noen avsnitt, gjorde et valg, og så måtte bla til en annen side for å se hvordan det gikk.

Spillet består ganske enkelt av sider (tekst + alternativer) i en gigantisk rettet graf. Det er ikke en DAG (Directed Acyclic Graph) som mange tenker først - for den er syklisk. Selv om historiene som utspiller seg ikke kan gjentas, så kan man vandre rundt mellom spillets mange områder så mye man vil.

Sa jeg gigantisk? Spillet består i skrivende stund av godt over 30.000 sider, og en tekstmengde tilsvarende over fire Ringenes Herre-trilogier. Alt kjærlig håndskrevet de siste tjue årene.

Slik ser det ut når Magnar Sveen koder Adventur Delux.
Slik ser det ut når Magnar Sveen koder Adventur Delux. Vis mer

Hvordan foregår utviklingen av spillet? ☕

Når jeg var tolv år leste jeg mye Conan. Det var tøft. Jeg ville lage et tøft Conan-inspirert spill, og begynte å skrive et program stappet med PRINT, INPUT, IF og GOTO. Det stoppet seg selv ganske fort. Klossete. Jeg skjønte at jeg måtte lage en slags editor.

Resultatet ble et spill hvor man kunne spille så lenge historien var skrevet - og når man nådde "røde alternativer" (ikke skrevet enda), så kunne man skrive videre rett der. Alle sidene ble lagret på disk i et hjemmelaget scriptspråk. (Og flaks var det, for flate filer er langt hyggeligere å porte enn et BASIC-program.)

Jeg fulgte opp denne fantastiske innovasjonen med å glemme hele greia i seks år.

En gang i 1996 snublet jeg over editoren på nytt, forkastet fort det Conan-baserte vrøvlet til en 12-åring, og begynte å skrive helt nytt vrøvl. Det var dette som endte opp med å, på mange måter, bli mitt livsverk. Man skal ikke undervurdere effekten av den første til å følge. En kamerat syns spillet var tipp topp, kastet seg med å skrive, og slik ble "Magnar og Glenns fantastiske interaktive eventyr" til.

Du får en beskrivelse av situasjonen, og må velge hva du skal gjøre. Det er hovedkonseptet bak Adventur Delux, men det er også mer avanserte løsninger involvert, som å skru tida tilbake.
Du får en beskrivelse av situasjonen, og må velge hva du skal gjøre. Det er hovedkonseptet bak Adventur Delux, men det er også mer avanserte løsninger involvert, som å skru tida tilbake. Vis mer

Hva slags spillmotor brukes? 💪

Den første versjonen var skrevet i AMOS på Amiga. Den neste editoren skrev jeg mange år senere med Java 2D - rett og slett en håndsydd editor med g.clearRect, g.drawString og så videre. Neste editor var implementert i Groovy, før jeg nå har landet på en Emacs plugin med en slags intellisense Clojure backend.

Jeg har også laget en nettside for de ivrigste spillerne som vil bidra som medforfattere, denne i Ruby on Rails.

Selve spillmotoren (som ble skilt ut fra editoren når jeg gikk bort fra Amiga) var først skrevet som en Java Applet (med socket connection til serveren), deretter ikke én, men to ganger, på en klassisk LAMP-stack (ja, jeg har skrevet masse PHP). For ikke å glemme programmet jeg skrev i Ruby for å kompilere Adventur-script til PHP.

Ja ja, sånn går no dagan. Nå er det hele implementert med Clojure og ClojureScript.

Hva er de viktigste tredjeparts-løsningene spillet bruker? ⚙️

Et sentralt konsept i spillet er at eventyreren har en unik superegenskap: han eller hun kan hoppe i tid. Det er en særlig godt egnet kraft å ha i et slikt spill, fordi det er basically undo siste valg.

«Tenk Git, bare for dataene dine. Takk, Rich Hickey!»

I praksis har det ikke vært så lett. For å kunne spole tilbake eventyreren vilkårlig langt, måtte jeg enten ta vare på alle versjon av spilleren - eller en serie med diffs. Det var ikke bare-bare i PHP og MySQL, skal jeg si.

I den nyeste versjonen er Datomic svaret på mine problemer, og herlighet; noe så flott å jobbe med. Kort fortalt er Datomic en database med innebygget støtte for tid og historikk, slik at man kan gjøre vilkårlige queries tilbake i tid raskt og effektivt. Tenk Git, bare for dataene dine. Takk, Rich Hickey!

Forøvrig er motoren helt hjemmesnekret - det er jo halve moroa - men som et nettspill baserer det seg naturligvis på det meste som har snublet seg gjennom W3C sin standardiseringsprosess.

Adventur Delux har mange rollespillelementer i seg, som å lage en karakter. Du kan også logge deg inn for å fortsette med samme karakter der du slapp.
Adventur Delux har mange rollespillelementer i seg, som å lage en karakter. Du kan også logge deg inn for å fortsette med samme karakter der du slapp. Vis mer

Hva er de største tekniske utfordringene med spillet? 😥

I tillegg til dette med tidshopp, så har jeg lagt ned betraktelig med tid i å gjøre spillet så mobilvennlig som mulig. Selve spilleformen egner seg utmerket for buss og tog, så da ville jeg tilrettelegge også for små skjermer og dårlig nett.

Ettersom man fort kan miste en request halvveis på dårlig nett, så må alle endepunkter være idempotente slik at requestene automatisk kan prøves på nytt.

Det var en utfordring, men også godt å se at spillet oppfører seg bra i møte med vanskelige nettverksforhold.

Selv om det meste av Adventur Delux består av bilder du må finne på selv, har spillet noen konseptbilder av stedene du besøker.
Selv om det meste av Adventur Delux består av bilder du må finne på selv, har spillet noen konseptbilder av stedene du besøker. Vis mer

Kan du fortelle litt om hvordan grafikken er laget? 🎨

Mesteparten av grafikken i dette spillet lages oppi hodet, av leseren. De beste bildene får du på radio, har jeg hørt. Noe sånt.

Jeg har bevisst valgt bort flashy grafikk, stilige bakgrunnsbilder og denslags av en enkel grunn: Hvis du skal lese i mange timer, så blir det forstyrrende. Gi meg en god font, bra typografi, stor nok skrift og en anonym bakgrunn heller.

Når det er sagt, så har jeg ikke klart å dy meg helt. I forbindelse med 40-årsdagen min ønsket jeg meg penger, som jeg så brukte til å betale en dyktig concept art-kunstner. Han har malt et velkomstbilde til alle byene i spillet.

Og hvordan er lyden og musikken laget? 🔊

Musikken i spillet er helt valgfri, og spilles ved hjelp av en selvbetjent tredjepartsløsning, eksempelvis Spotify. :)

Hvilke plattformer er spillet gitt ut til? 🎮

Det har vært snakk om å bundle spillet i App Store og slikt, kanskje det kunne kostet 5 kroner, men nei, her er det web hele veien til fattighuset.

Hvordan går det med økonomien til spillet? 💰

Ja, nettopp. Å lage dette spillet har aldri gått i pluss, økonomisk sett. Jeg kan ikke fordra reklame. Det samme gjelder pay-to-win, pay-to-skip, og andre mørke triks.

Så Adventur Delux er aldeles gratis og reklamefritt.

Serverkostnadene dekkes av de vakre menneskene i foreningen Adventurs Venner. De får en lekker stjerne ved navnet sitt i chatten, og ikke stort annet. For noen bra folk!

Gi ett råd til nordmenn som har lyst til å begynne med spillutvikling! 💡

Jeg vet ikke hvordan man bryter gjennom i bransjen, tjener seg til mangemillionær ved å blåkopiere Scrabble, eller får appen på topplistene i App Store, men jeg vet dette:

Å ha et koseprosjekt av en viss størrelse er utrolig lærerikt. Når jeg vil teste noe ny tech, en ny metode, et spennende bibliotek, så har jeg alltid noe praktisk jeg kan bruke det til. Jeg er 100% sikker på at jeg er en langt bedre utvikler i dag takket være dette spillet. Gøy er det også!