Dansk HTML5-spilmotor skal konkurrere med native apps

Den danske udvikler Mark Sederqvist er i gang med at udvikle en HTML5-spilmotor, som kan konkurrere med mobile spil udviklet i native kode. En prototype er allerede tilgængelig.

HTML5 er den nye standard til at programmere hjemmesider i - eller nærmere webapplikationer.

Men HTML5-apps kører endnu ikke så hurtigt, og det er derfor stadig en udfordring at give samme gode brugeroplevelse, som vi kender fra traditionelle applikationer. Det forsøger den danske udvikler Mark Sederqvist nu at lave om på. I hvert fald på spilfronten.

Han har det sidste års tid arbejdet på en spilmotor til HTML5, som skal kunne køre spil flydende på computere såvel som på ældre smartphones. For at bevise at det kan lade sig gøre, har han selv lavet spillet Gangsta Gangsta, der lige nu er tilgængeligt for alle som en prototype.

»Der er mange folk, der bliver chokeret, når de ser, at det her kører som en HTML5-applikation (spillet Gangsta Gangsta, red.). Og det er jo også lidt af et jordskælv, at det nu er muligt at lave det her,« siger Mark Sederqvist til Version2.

HTML5 sparer tid og penge

Fordelen ved at lave et spil i HTML5 er, at man kun behøver at programmere spillet én gang. For alle tablets og smartphones kan køre HTML5, i modsætning til traditionelle applikationer, hvor man skal lave en ny version til Android, iOS, Windows Phone, pc og så videre.

Det sparer penge og tid på både udvikling og vedligeholdelse, fordi der kun er én kodebase at vedligeholde.

Hvis man så oven i købet vil lave et spil, hvor spillerne skal spille med hinanden på tværs at platforme, er man, ifølge Mark Sederqvist, nærmest ude i et umuligt projekt. Det problem eksisterer ikke med HTML5, da det er helt platformuafhængigt.

HTML5 kan dog ikke endnu helt konkurrere med de traditionelle applikationer på rå regnekraft, og derfor fokuserer Mark Sederqvist på de mere simple spil.

»Du kan ikke konkurrere med native apps på rå perfomance, men for en stor del af de spil, som folk spiller, der vil du kunne komme ret tæt på. De bedst sælgende spil er jo simple spil, som Wordfeaud og DrawSomething. Det er jo ikke tunge 3D spil. Jeg vil påstå, at man kan lave sådanne spil i HTML5, uden at brugerne kan mærke forskel,« siger Mark Sederqvist til Version2.

Han er dog sikker på at ydelsen på HTML5-apps kun bliver bedre med tiden. Det er et spørgsmål om at udvikle browsere der er gode nok, og som Mark Sederqvist selv formulerer det, så bliver der smidt uendelige ressourcer efter browserudvikling.

HTML5 er stadig umoden

HTML5 standarden er endnu ikke fuldt ud færdigudviklet. Rigtig mange af de nye funktioner virker i dag, men programmeringssproget er først planlagt til at være helt færdigt i 2022.

For Mark Sederqvist betyder det, at han ikke kan bruge HTML5 til lyddelen af sit spil. Der er nemlig endnu ikke nogen god standard i HTML5 til at håndtere lyd ordentligt.

Det problem har han løst ved at pakke sit spil ind i en 'browser wrapper' og tilføjet en smule kode, som gør det muligt at bruge lyd på samme måde som traditionelle applikationer.

Kort fortalt har han taget en browser og fjernet næsten alle dele af brugergrænsefladen og lagt spillet ind som den eneste side browseren kan køre. Udover muligheden for at tilføje kode som HTML5 endnu ikke kan klare, så har det den fordel, at det får spillet til at ligne en traditionel applikation i stedet for en hjemmeside.

Men lyddelen har måske været den mindste udfordring ved at bygge et spil i HTML5. For platformens umodenhed betyder, at man ikke kan trække på værktøjer, som andre har lavet endnu, på samme måde som man kan, hvis man for eksempel laver et spil til iPhone. Derfor har Mark Sederqvist været nødt til at bygge en spilmotor helt fra bunden.

»Du har canvas (HTML5’s grafikelement, red.), som kan tegne et eller andet på et skærmområde. Det kan tegne en streg fra A til B eller lægge et billede ind. Og at komme derfra til, at du har animationer, som kører, der er platformen så umoden, at du ikke kan trække på værktøjer, andre har lavet,« siger Mark Sederqvist.

Ifølge Mark Sederqvist er interessen for HTML5 så stor, at der i løbet af kort tid vil komme andre værktøjer og spilmotorer til platformen.

Derudover er der stadig nogle eksperimentelle funktioner, som skal kodes en smule anderledes i forskellige browsere. Det er dog så lidt, at Mark Sederqvist ikke ser det som et større problem.

Han vurderer, at det kun er en halv procent af sin egen kode, der er browser-specifik. Med tiden vil det også udligne sig, efterhånden som standarden bliver bedre klarlagt.

Ingen forretningsplan endnu

Mark Sederqvist har endnu ikke nogen forretningsplan for sin spilmotor. I første omgang vil han udvikle spillet Gangsta Gangsta, og se om det kan blive en succes.

»Hvis vi udgiver et spil, som virker på iOS, Android og internettet og det er en succes, så tror jeg mange vil få øjnene op for det. Især hvis det ikke er en succes, som kun er teknisk imponerende, men også er et fedt spil,« siger Mark Sederqvist.

Lige nu demonstrerer prototypen gameplayet og animationer. Men når spillet er helt færdig, skal spillerne kunne spille med hinanden og mod hinanden online.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (14)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Alexander Færøy

Hej Mark,

I WebKit er der pt. en implementering af Web Audio API1, som bl.a. virker i Chrome samt Safari nightly, men det virker desværre ikke på de mobile platforme endnu, da der stadig mangler forskellige håndskrevne implementering af de forskellige algoritmer til diverse hardware DSP'er.

Har du kigget på om det API løser de problemmer du har med lyd eller er det noget helt andet du leder efter?

  • 1
  • 0
Mark Sederqvist

Hej Alexander, jeg har ikke prøvet Web Audio API endnu - på mobil pakker vi browservinduet ind i en native app vha. PhoneGap, og der får man lyddelen 'gratis' via PhoneGaps JavaScript->native bridge. Men udover at jeg helst så en standard vinde frem (såsom HTML5 audio :-)) så kan det helt sikkert være en god mulighed til standalone WebKit browsere.

  • 0
  • 0
Nicolai Buch-Andersen

Se eventuelt også libgdx: http://code.google.com/p/libgdx/

Spilet programmeres i Java + OpenGL og kan med en lille wrapper bringes til at køre på Desktop, Android eller HTML5. Jeg må dog indrømme at jeg selv kun har prøvet Desktop/Android-kombinationen. Ved ikke hvordan (eller om!) de håndterer lyd i HTML5, men projektet er Open Source, så man kan vel tage et kig i koden, hvis man er interesseret.

  • 0
  • 0
Jacob Christian Munch-Andersen

Jeg synes nu ikke umiddelbart at det ser ud af noget særligt. Det er ganske almindelig 2D sprite grafik, hvor langt det meste af billedet er en simpel baggrund.

Billederne er relativt flotte, hvilket gør at spillet kommer til at se rimelig pænt ud, men det ændrer ikke på at grafikken rent teknisk ikke er noget særligt.

Som spil lider det af et dårligt interface og umiddelbart må jeg konstatere at det er alt for svært.

  • 0
  • 0
Log ind eller Opret konto for at kommentere