Van Java naar iPhone: uitdagingen en oplossingen voor gamebouwers

Deze week worden in Keulen enkele grote Europese game-evenementen gehouden. Ellen doet voor iPhoneclub verslag en vertelt deze keer over het omzetten van Java-games naar de iPhone.
Ellen de Lange-Ros - · Laatst bijgewerkt:

galaxy on fireDeze week worden in Keulen enkele grote Europese game-evenementen gehouden. Naast de GamesCom, waarbij uitgevers hun najaarscollectie aan het grote publiek tonen, is er ook een developers conferentie waarin de industrie een kijkje in de keuken geeft. Namens iPhoneclub is Ellen bij deze GDC aanwezig en vertelt ze over de meest interessante presentaties over de iPhone en games.


In een lekkere technosessie tijdens de GDC vertelt Marc Hehmeyer, Chief Technology Officer van Fishlabs open over z’n ervaringen met het omzetten van een bestaande mobiele Java-game naar de iDevices (iPod, iPhone, iPad). Zijn bedrijf maakte al meerdere jaren games in Java en heeft daarmee 2 miljoen downloads gehaald sinds 2004. Dit was in een enorm versplinterde markt met maar liefst 160 verschillende operators en telefoons. Omdat dit zorgt voor een grote diversiteit aan contracten en afspraken besloten ze eens een game op de iDevices uit te brengen. Dat werd Powerboat Challenge, een game die in oktober 2008 werd uitgebracht en binnen twee jaren meer dan 30 miljoen downloads heeft gehaald. Vergeleken met de 2 miljoen downloads van Java-games, was het duidelijk een succes. Fishlabs had al verschillende mooie games op het Java-platform ontwikkeld. Daarom besloten ze een bestaande titel, Galaxies on Fire 2, naar de iDevices over te zetten. Wat komt er nou kijken bij het overzetten van een game van Java naar iOS? Hehmeyer vertelt de aanwezige ontwikkelaars uitgebreid over alle technische uitdagingen die z’n studio de afgelopen periode heeft overwonnen.

Totaal nieuwe concept art
Om de technische diversiteit voor de iDevices te beperken, koos Fishlabs er voor om de game alleen geschikt te maken voor devices vanaf de iPhone 3G en de tweede generatie iPod touch. In Java was Galaxies on Fire een titel met relatief mooie beelden en geluid. Daarom wilde men ook op de iDevices een hoge kwaliteit leveren. Men had daarbij zelfs het gevoel dat de hoge kwaliteit die men eigenlijk altijd al wilde leveren nu met de iDevices echt binnen bereik kwam. Het enthousiasme van de art director werd daardoor zo groot, dat men besloot om alle mood concepts opnieuw te maken en alles opnieuw te tekenen. Ook vanwege de grotere schermen van de nieuwe devices was een herziening van de graphics nodig.

galaxy on fireGrafische uitdagingen
Hoewel de iDevices veel meer kunnen dan Java, moet toch ook hier het detailniveau van beelden soms worden beperkt om de framerate (een term om aan te geven dat beelden niet haperend worden) goed te houden en moet de GPU worden gelimiteerd. Om dit goed te laten werken, werd een zogenaamde Level-Of-Detail-mechanism geïmplementeerd die het detailniveau van beelden kan aanpassen. Andere belangrijke verschillen in beelden waren veel meer pixels en textures die veel mooiere beelden mogelijk waren. Ook op het gebied van texture compressie was veel meer mogelijk. In het spel gaf dit bijvoorbeeld veel meer mogelijkheden voor het special effects, zoals het particle system, de engine, de animaties bij explosies en realtime belichting.

Uitdagingen bij de game engine
Naast de visuele aspecten, waren er ook op het gebied van de game-engine de nodige uitdagingen. Een belangrijk verschil is de sterke FPU op de iDevices waarmee een snelle float based engine mogelijk werd, in plaats van de integer based engine op de Java-devices. Om de prestaties van de engine te optimaliseren werd in Java een rendering strategy van immediate mode gekozen, zonder caching. Op de iDevices was dit, met veertig verschillende materialen en textures, niet mogelijk. Daardoor werd gekozen voor caching en later gerenderd in een vaste volgorde. Deze technische aanpassingen waren nodig om de details en pracht van alle beelden toch vloeiend te laten zien en de game vlot te laten draaien.

Nieuwe manier van programmeren

Naast de technische aspecten was ook het programmeren zelf een issue. De lead designer bij Fishlabs was goed bekend met werken in Java en werkte bijvoorbeeld graag met garbage collection. In C of C++ werken deze zaken anders en dit leverde een redelijke leercurve voor de programmeur op. Tijdens het testen traden er onverwachte problemen op, waar men niets van begreep. Dat bleek te komen door ontbrekende variabelen. Het bleek afhankelijk van de compiler of de variabelen correct binnen kwamen en deze moesten al in de code goed worden geinitieerd, waar de programmeur geen rekening mee had gehouden. Hehmeyer raadt de programmeurs in de zaal dan ook aan om dit direct goed in hun code op te nemen.

Besturing moest opnieuw worden ontworpen
Naast de beelden, werd ook de besturing onderhanden genomen. In plaats van besturing met knoppen moest een touch besturing van de grond af worden ontworpen met een totaal nieuwe interface en een nieuwe gameplay die beter aansluit bij de iDevices. Om dit helemaal goed te laten werken was de nodige tweaking en optimalisatie nodig.

powerboat challengeRijker geluid
Geluid is essentieel voor de ervaring van de game. In Java waren hierin beperkte mogelijkheden, vanwege de bestandsgrootte was bijvoorbeeld MP3 niet mogelijk maar alleen midi. Op de iDevices werd gekozen om wel MP3 te gebruiken, met een veel rijker geluid met enorm veel meer variaties en rijkdom.

Tips voor gamedevelopers

Hehmeyer sluit z’n verhaal af met een aantal tips:

  • Geen poort: Z’n eerste tip is om de game geen ‘poort’ te noemen. Feitelijk moet je een totaal nieuwe game opzetten en ontwerpen dus is het beter om niet over een poort te praten.
  • Console benadering: als ontwikkelaar moet je bij het maken van een topgame voor de iPhone denken aan de benadering die ook voor de grote consoles nodig is. Topgames gaan al naar 60 frames per seconde en is daarmee beter dan de Playstation 2 of Xbox. Als de iDevices nog 1 of 2 jaar vernieuwd worden, zitten ze qua technische kwaliteit dicht aan tegen de Playstation 3 en Xbox360 en zo moet je het ontwikkeltraject ook gaan behandelen.
  • Belangrijke betafase: onderschat de betafase niet. Op dit moment zie je de game pas als geheel en zie je wat er ontbreekt. Onderschat deze fase niet en neem de tijd om in deze fase alle aspecten van de game te perfectioneren en alle bugs op te lossen. Bedenk daarbij dat ontwikkelaars slechte testers zijn en laat ze niet zelf hun tests doen.
  • Vermijd features-verliefdheid: de iDevices vernieuwen erg snel en elk jaar komt er een nieuwe iPhone met nieuwe features. Het is verleidelijk om al die features in je game op te nemen. Let er op dat je op een gegeven moment in de ontwikkelfase geen nieuwe features meer opneemt. Doe je dat toch, dan zal dit heel veel aspecten in je game beïnvloeden die je allemaal weer moet aanpassen en testen.
  • Heb lol: het spelen van een game draait om lol. Zorg ervoor dat je die lol ook bij het maken van een spel hebt, anders kun je nooit een echt goede game ontwikkelen.

rally master proAl met al laat Hehmeyer zien dat het voor bedrijven met een mooie collectie Java-games interessant kan zijn om deze over te zetten naar de iDevices. Toch levert dit ook de nodige uitdagingen op. Het is belangrijk om hier vanaf het begin rekening mee te houden en deze technische uitdagingen niet te onderschatten. Het was interessant om te horen welke zweetdruppeltjes Fishlabs in het traject rond Galaxies on Fire 2 tegen is gekomen. Binnenkort zal de game in de app store beschikbaar zijn en kunnen we zelf beoordelen of het werk de moeite waard is geweest.

De games van Fishlabs:

Informatie

Laatst bijgewerkt
24 augustus 2010 om 15:47
Categorie
Apps

Reacties: 8 reacties

  1. Fijn, duidelijk en correct verhaal hoor, maar misschien dat iphoneclub eens aan een aparte gamesite moet beginnen, want van die promotiestukken over games hier begin ik toch wel een beetje de balen van te krijgen.
    Maar goed, dat ligt ook aan mij, want ik hou nou eenmaal niet zo van games… en ja dan valt het meer op.

    Even voor de duidelijkheid. Interpreteer die niet als negatief aub.
    iPhoneclub heeft voor mij de allerhoogste waardering !!

  2. @Vakantieganger:
    Helemaal mee eens, een Iphone is nou eenmaal geen gaming device… dat is weliswaar mijn persoonlijke mening.
    Ik heb het geprobeerd, maar vind de besturing gewoon bagger.
    Een simpel spelletje in de trein is nog wel te doen, maar bovenal is het een telefoon.

    Ik neem aan dat dit voor het gros van de mensen zo is, als we een device alleen voor games willen hebben, zijn er veel betere oplossingen niet waar?

  3. @Hierboven:
    Het is gewoon makkelijk om als je in de trein zit, op het station staat te wachten, als je aan het wachten bent tot je vriendin eindelijk klaar is of ’s avonds in bed als je niet in slaap kunt komen gewoon even je telefoon te kunnen pakken en een spelletje kunt spelen. Tuurlijk, het is geen PlayStation 3, maar de graphics van sommige spelletjes zijn echt super. Dan erbij, er zijn veel spelletjes die je ‘eventjes’ kunt spelen, dus tijdens korte wachtperiodes. Dan is het makkelijker om dit op je iPhone te doen dan op een PSP/DS. Dat is trouwens ook weer een extra device dat je mee moet nemen. Bij mij gaat het echt om gemak. xD

  4. Wat meer waardering voor alle moeite mag wel…
    Bovendien, Apple brengt niets voor niets een Game Center uit. Daaruit blijkt al dat gamen op iDevices een serieuze aangelegenheid is geworden. Het kan concurreren met PSP en Nintendo DS.
    Als fervente gamer kan ik zeggen, dat ik tegenwoordig mijn PSP en DS niet meer oppak, zo goed zijn de games op iDevices geworden. En met de komst van de grote scherm van de iPad wordt gamen letterlijk grootser.

  5. Sommige games zijn gewoon geweldig op de iPhone. Bijvoorbeeld Pocket God heeft de spijker op z’n kop geslagen. Mooie Graphics, uren speeltijd terwijl je bij elk sigaretje even kan inloggen. Een concept wat ik alleen maar bij de wireless handheld media heb gezien. Tof!
    Overigens vind ik het geen slecht idee om een iPhone gamesite te openen, volgens mij os daar wel animo voor. Ik zal in elk geval een regelmatige bezoeker worden, terwijl iPhoneclub voor anderen juist overzichtelijker wordt. Win win situatie denk ik zo, al heb ik geen zicht op de hosting kosten.

    Ben btw net terug uit Keulen van de gamecomp. Eén woord: intens!

  6. Hear hear, niet alleen entrylevel artikelen maar ook dit soort uitstapjes. Ben geen portable gamer overigens maar vind dit informatie nuttig!! En screenprotectors en Biebel interesseren mij nul komma nul. Dus ga vooral door met mikken op een breed publiek!!

  7. Ik hou juist van zulken artikelen! Ben aan het verdiepen in ontwikkelen maar omdat er niemand in de buurt om te helpen is dat vrij lastig om hoogwaardige Apps te maken om echt uit te brengen. Hopelijk vind ik ooit hulp of een goed Nederlands boek/website waar ik iPhone apps kan leren van maken! Groete!!

  8. @Maxi – Wat voor ons natuurlijk ook wel duidelijk is, is dat simpele en snel te maken artikelen over een gratis screenprotector of een celebrity die ‘iets’ met de iPhone heeft, enorm goed scoren op iPhoneclub.

    Toch vinden we dat we ook aandacht moeten besteden aan ‘ingewikkelder’ onderwerpen en er ruimte moet zijn voor kwalitatief hoogwaardiger artikelen, ook al wordt daar relatief minder op gereageerd. Het wordt een saaie boel als we elke dag alleen maar zouden schrijven over onderwerpen als ‘Justin Bieber krijgt iPhone naar zijn hoofd gegooid’. Zal ongetwijfeld enorm goed scoren (vooral bij de Bieber-haters) maar nuttig en informatief zijn voor iPhone-gebruikers lijkt ons een betere basis van volkse sentimenten.