Sådan har danske spilpionerer udviklet flydende 3D-spil i browseren

Illustration:
Webteknologier og cloud-backend. Udviklerne bag det kommende, danske 3D-browserspil Gameglobe stammer fra spilkonsollernes verden og måtte derfor lære sig nye tricks. Læs om teknologierne bag spillet her.

XBox, Playstation og pc'er med muskuløse grafikkort.

Folkene hos danske Hapti.co - et søsterselskab til 'Hitman'-fabrikken IO Interactive - stammer fra konsolverdenen, hvor potent hardware sveder for at få funklende og detaljeret 3D-grafik til at flyde hen over skærmen.

Derfor har udviklingen af firmaets kommende 3D-spil i browseren, Gameglobe, krævet nytænkning af udviklerne, der nu pludselig skal få koden til at køre lydefrit oven på splejsede grafikkort og billige bærbare.

Læs også: Danske 'Hitman'-folk flytter tunge 3D-spil ind i browseren

Gameglobe er kort fortalt en slags Youtube for spilfolket. Du kan skabe dine egne spil direkte i browseren gennem en avanceret baneeditor, der lader dig bygge bjerge, floder, huse og befolke landskabet med mennesker og dyr. For nu bare at nævne et par eksempler.

Spillene kan derefter deles med brugerne på Gameglobe-hjemmesiden - ligesom en video bliver det på Youtube - og spilles af andre brugere, der kan give det karakter og dele det med venner og familie.

Grafikken er i 3D med en høj grad af detaljering og kompleksitet for et browserspil. Den slags kræver noget af frontend'en i browseren, mens tusindvis af brugerskabte baner stiller krav til backend'en, som ligger placeret i Amazons cloud-setup.

Lead developer Peter Andreasen, Hapti.co, fortæller her om teknikken bag spillet.

»Kort fortalt har du selve spillet, der er skrevet i C++ og kører som et plugin i browseren. Uden om det har vi et mere traditionelt website, som er baseret på helt almindelige webteknologier som HTML, Javascript og CSS,« fortæller Peter Andreasen til Version2.

»De to ting er flettet fuldstændig sammen, så selve spillet på en måde er 'blødt ud' i web-rammen uden om det. Highscore-listen og den slags lever ude i websiden, mens alt det performancekritiske kører inde i plugin'et. Og der er masser af kommunikation frem og tilbage mellem de to dele.«

Har I genbrugt spilmotoren fra nogle af de tidligere spil fra Square Enix (Hapti.co's og IO Interactives ejer, red.)?

»Teknologien bag Gameglobe er udviklet specifikt til spillet. Alt i spillet sker dynamisk uden nogen form for ventetid, og det betyder for eksempel, at der automatisk tegnes skygger, når du bygger et bjerg i din bane. Traditionelt set bygger du spillet i et andet værktøj, og så står det og 'koger' lidt, indtil skyggerne er beregnet, og så kan du spille banen. Den oplevelse er okay, hvis man kun skal bruge det internt, men det er ikke tilfredsstillende for en end user,« siger Peter Andreasen.

»Så det centrale, tekniske designkriterie for Gameglobe har været, at det skal være en fornøjelse for brugerne at lave baner. Der må aldrig være noget sted, hvor brugeren skal vente mere end en frame.«

Frontend'en består af almindelig hjemmesidekode og så et spilplugin til browseren. Hvordan ser backend'en ud?

»Vi er baseret på et cloud-setup hos Amazon og bruger en masse af deres teknologier, som jo i virkeligheden bare er 'off-the-shelf' open source-teknologier. Vi bruger Django som webframework, Apache som webserver, Amazon RDS (relationel database i skyen, red.) og Memcached. Til at distribuere datastrømmmene til plugin'et bruger vi Amazon CloudFront.«

»Generelt kan man sige, at vi har skævet meget til, hvad store hjemmesider som Facebook, Flickr og Youtube gør omkring det at have webservere i et skalerbart setup. Det har været meget spændende for os, fordi de fleste af os har en baggrund fra den traditionelle del af spilindustrien, og det har også betydet, at vi har måttet hyre folk ind til det område,« siger Peter Andreasen.

Hvilke krav til skalering er der i forbindelse med setuppet bag Gameglobe?

»Spillet kræver ingen registering, så du kan bare klikke på et link og spille løs. Skulle der være et spil, der bliver linket til på hjemmesider som Slashdot eller Techcrunch, så kan vi potentielt set få en storm af besøgende. Derfor har vi også kørt en lukket beta i et stykke tid, så vi har kunnet teste vores systemer af på scalabilty for at være sikre på, at de kan håndtere det,« siger Peter Andreasen.

En browser med mange faneblade åbent kan i værste fald sløve en computer ned. Anbefaler i brugerne at lukke alle andre faneblade end dem, Gameglobe kører i?

»Nej, vi anbefaler, at folk bruger deres browser, som de normalt ville gøre,« siger Peter Andreasen og starter hurtigt tre instanser af Gameglobe op i hver sit faneblad på en bærbar pc.

»Det kommer selvfølgelig an på, hvor kraftig din maskine er, men det er ikke noget problem at have flere faneblade kørende. Vi har gået efter et relativt beskedent featureset på GPU-siden (grafikkortet, red.),« forklarer Peter Andreasen.

»Ved at bruge et lille GPU-featureset kan stort set alle grafikkort køre spillet rent featuremæssigt. Til gengæld vil du få problemer, hvis du har et langsomt grafikkort på en computer med meget høj opløsning på skærmen. Derfor har vi valgt at gøre det helt synligt for folk, så de kan vælge opløsning i spillet på samme måde, som man gør det i en Youtube-video.«

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Cristian Ambæk

De ledte på et tidspunkt efter en Linux system administrator, som jeg sendte en ansøgning til. Desværre hørte jeg aldrig noget fra dem. Tror ellers det kunne have været spændende at arbejde for Hapti.

Høj ydende browser spil bliver nok fremtiden.

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