Sådan sugede dansk spilfirma saften ud af iPhone
Der skulle tænkes i nye baner, da det danske spilmotor-firma Unity skulle hitte ud af at kode grafiktunge spil til iPhone-platformen.
»Apple siger jo, at du får en computer i lommen, men det er godt nok ikke en særlig hurtig computer. Så du skal virkelig skrive stram kode,« konstaterer Nicholas Francis,
Han er kreativ direktør i Unity og en af de tre stiftere, som for syv år siden flyttede ind i en kælder og begyndte at kode løs på en spilmotor. Først til Mac, siden pc'er og browsere og senest til Wii og iPhone.
I dag er Unitys iPhone-spilmotor den mest populære i branchen, men vejen dertil var ikke uden udfordringer. At få puttet en fuld 3D-spiloplevelse på en iPhone krævede nemlig en hel del pillearbejde i maven på den lille maskine.
Især grafikchippen var en udfordring på de første generationer af iPhone. Den nyeste model, 3GS, har fået en solid opgradering på grafiksiden, men så længe alle de tidligere versioner bliver brugt, skal spillene også kunne køre på dem.
Løsningen var at udnytte en vektorprocessor, som ellers lever et forholdsvist uopdaget liv i iPhonen.
»Der er ikke ret mange, der ved, hvor meget man kan gøre med den. I mange tilfælde er det faktisk hurtigere at bruge denne her SIMD-chip til animationer end at bruge grafikchippen. Det er den slags, som vores ansatte fra den litauiske demoscene bliver helt våde i bukserne af og tænker 'årh, hvor er det fedt'. Så er det vores job i ledelsen ikke at komme i vejen for dem,« siger Nicholas Francis.
Apples OpenGL-driver er også blevet pillet helt fra hinanden af litauerne. Gennem denne reverse engineering har Unity fået 30 procent højere hastighed på geometrisk grafik, i forhold til de officielt mulige resultater.
Måtte prækompilere for at få Apples godkendelse
Fordi Apple kræver at få al kode til gennemsyn, så den kan blive sikkerhedsgodkendt og signeret, kunne Unity-folkene ikke bruge deres normale tekniske setup, hvor enten Javascript eller C#-kode køres over i .Net og så kompileres til assembler undervejs (just-in-time).
Derfor var der brug for samarbejde med folkene bag Mono, en open source-udgave af .Net, så koden kunne prækompileres til assembler.
»Det har betydet, at det kører lidt hurtigere, men det var også et kæmpe projekt. Vi har brugt meget tid på at få vores skriftsprog til at virke,« siger Nicholas Francis.
Dermed undgik Unity den ballade, som et andet dansk software-firma ramte ind i med en Commodore 64-emulator til iPhone, der blev udelukket af Apple. Samarbejdet med Apple har i det hele taget været uden problemer.
»De er bare interesserede i, at der kommer nogle fede spil til iPhone. Det er virkelig gået op for dem, hvor vigtigt spil er, kan man se med iPod Touch, som nærmest bliver lanceret som en spillemaskine,« siger direktøren.
»Så længe man ikke bryder deres sikkerhedssystemer og telefonlås, synes de, at det er fedt, uanset hvordan man bruger hardwaren på en iPhone. Så vi har ikke haft nogle problemer - udover at vi måtte bruge seks mandemåneder på at få .Net til at virke på iPhone,« siger han.


Tilføj kommentar