R.U.S.T.: Studenten worden iPhone-ontwikkelaar (deel 2)

Enkele weken geleden deden we verslag van de iPhone-game die door onze studenten van de opleiding Gamedesign van ROC Friese Poort wordt gemaakt. Daarin vertelden we over het idee om een iPhone-game te ontwikkelen. In dit verslag kun je lezen hoe we Apple iPhone Developers zijn geworden (en de problemen die we daarmee hadden), onze […]
Marcel Kanon - · Laatst bijgewerkt:

rustwallpaperEnkele weken geleden deden we verslag van de iPhone-game die door onze studenten van de opleiding Gamedesign van ROC Friese Poort wordt gemaakt. Daarin vertelden we over het idee om een iPhone-game te ontwikkelen. In dit verslag kun je lezen hoe we Apple iPhone Developers zijn geworden (en de problemen die we daarmee hadden), onze ervaring met Unity en het ontwerpen van de gameplay.

Voordat een game gemaakt wordt moet deze eerst omschreven worden in een gamedesign-document. Aan de hand van dit document weet iedereen wat voor game gemaakt moet worden en hoe dit eruit moet komen te zien.


Hieronder staat een samenvatting van het gamedesign-document omschreven.

Dit is een gastbijdrage van Marcel Kanon, docent van ROC Friese Poort.

High concept

Wat vroeger een mooie planeet was, is nu de afvalhoop van het heelal. Vrijwel elke seconde wordt op de planeet R.U.S.T. afval gedumpt. Om te voorkomen dat de planeet onder het afval bezwijkt heeft het bestuur van de planeet een afvalrobot in dienst gesteld. Zijn taak is om het afval op te verzamelen en te dumpen in de vuilverwerkingsmachines. Hoe sneller hij dat doet hoe groter de beloning die hij krijgt.

Besturing

De speler bestuurt de robot door de iPhone naar links of naar rechts te kantellen. Omdat de robot onderhevig is aan de zwaartekracht, zweeft de robot omlaag. Door op het schermpje van de iPhone te drukken stijgt de robot.

Gameplay

In het level wordt telkens een willekeurig stuk afval gedumpt. Een teller start zodra het stuk afval in het level komt. De speler vliegt naar het afval en pikt deze op. Vervolgens moet de speler het stuk afval naar de daarbij horende vuilverwerkingsmachine transporteren. De teller stopt als dit is gelukt en de speler krijgt de resterende punten. Als de speler dat niet op tijd lukt, verliest de hij het spel.

Appletje-eitje!?

Om met Unity games voor de iPhone te ontwikkelen moet je naast Unity iPhone ook een Apple Developer-licentie hebben. Het aanvragen van een Apple-licentie was erg makkelijk. Toch duurde het een week voordat Apple onze gegevens had gecheckt en goedgekeurd. Na het betalen van de licentie kregen we eindelijk toegang tot de ontwikkelomgeving van Apple.

roc leeuwardenDe ontwikkelomgeving van Apple werkt met lokale licentiesleutels voor zowel de ‘ontwikkel’-iPhones als de Apple Mac’s waar Unity op draait. Het installeren van deze sleutels ging ondanks de duidelijke instructie van Apple niet zonder slag of stoot. We waren ruim een dag bezig geweest om uit te vinden hoe een licentiesleutel gekoppeld kan worden aan Unity.

Unity + iPhone = Magic

R.U.S.T. is de eerste iPhone game die we met Unity maken. We waren daarom erg benieuwd hoe dat zal gaan. Toen we de Apple Developers-licentie hadden konden we niet wachten om het prototype op de iPhone te testen. En ja, het werkt geweldig! De integratie van Unity met de iPhone werkt naadloos. ‘Push button solution’ gaat hier helemaal op. Je maakt iets in Unity, je klikt op de Build-knop en alles wordt zonder problemen automatisch gecompileerd en op je iPhone geïnstalleerd. Zonder één woord in XCode te schrijven. Programmeren in XCode (de programmeertaal van de iPhone) is dus niet nodig. Ideaal voor onze opleiding waarbij de focus op design ligt. We zijn er wel van bewust dat hier misschien verandering in komt. Dankzij de nieuwe ToS (Terms of Service) van Apple is het tegen de regels om een ander ontwikkelplatform (zoals Flash en Unity) te gebruiken voor de ontwikkeling van iPhone apps. Unity overlegt op dit moment met Apple om er voor te zorgen dat ze aan de ToS van Apple voldoen. Tot nu toe wordt Unity gelukkig door Apple gedoogd.

Dat we Unity gebruiken betekent niet dat we niet hoeven te programmeren. Sterker nog, ondanks de simpele game-mechanieken moesten we complexe programmeercodes schrijven. De besturing, het oppikken en laten vallen van objecten, puntentelling en de physics zorgden voor aardig wat hoofdpijn. Vooral de physics, de natuurkundige krachten, bleken een eigen wil te hebben. Regelmatig schoten objecten zonder enige logische verklaring door het scherm. Het oplossen van die problemen kostte ons erg veel tijd.

De programmeercodes die we schreven bewaarden we in scripts. Het voordeel daarvan is dat je in Unity zo’n script meerdere keren kunt gebruiken. Zo kunnen onze studenten zonder te programmeren een game maken door simpelweg de scripts in het level te plaatsen.

Het kale prototype kun je in het filmpje zien. Met deze versie kun je rondvliegen, objecten oppikken en objecten laten vallen. Wat nog geprogrammeerd moet worden is de puntentelling en de moeilijkheidsgraad. Daarnaast moet het level natuurlijk nog aangekleed worden met 3D modellen. We zijn heel benieuwd wat je van het prototype vindt!

Reacties: 21 reacties

  1. ziet er veelbelovend uit, hoeveel moet het gaan kosten als het uit is?
    ik zou er 4 euro voor overhebben:)

  2. Dit doet me wel heel erg aan Wall-E denken, niet echt origineel, een afvalplaneet, met een robot die dat moet opruimen…

  3. Erg leuk. Goed dat een studie zo praktisch wordt gemaakt. Ga zo door.

  4. @Fudge: De inspiratie voor de game komt inderdaad voor een deel van films zoals Wall-E. Hoewel dit niet ons eerste uitgangspunt was. Tijdens het brainstormen zijn er verschillende thema’s en concepten besproken. Uiteindelijk kwamen we hier op. De stijl en sfeer van deze film spreekt ons erg aan, dus vandaar.

    @muq: Bedankt! We proberen inderdaad het zo praktisch mogelijk te houden. Een mooie bijkomstigheid is dat de studenten hierdoor erg gemotiveerd zijn.

    @jerry: Bedankt Jerry! Leuk om dat te horen!

    @Jasper: Het bepalen van de prijs is denk ik erg moeilijk. Het zal in ieder geval niet veel zijn. Wij zijn een opleiding dus hoeven we er niet van te leven. De bedoeling van deze game is dat we er allemaal van leren. in dat opzicht zijn we al erg geslaagd. Natuurlijk zal het erg gaaf zijn als iets opbrengt al is het maar een paar dollar om de iPhone licentie te betalen 😉
    Jasper’s originele reactie is verwijderd i.v.m. verwijzing naar illegale software.

  5. Ziet ererg leuk uit zover hij af is! De concept art is ook erg mooi in elkaar gezet! Ik zit zelf op een programmeer opleiding en ik zou ook wel willen leren hoe je voor de iphone programmeert maar ik heb helaas geen apple computer tot mijn beschikking. Ik denk dat dit voor mij later nog wel gaat komen. Iig erg leuk spel hoor!

  6. Zonder één woord in XCode te schrijven. Programmeren in XCode (de programmeertaal van de iPhone) is dus niet nodig. Ideaal voor onze opleiding waarbij de focus op design ligt.

    Dat is wel duidelijk ja … Sinds wanneer schrijven we “woorden” bij het programmeren? En sinds wanneer is “XCode” (het is eigenlijk “Xcode”) een programmeertaal? Xcode is enkel een IDE, Objective-C is de taal die meestal op de iPhone gebruikt wordt. Maar C en C++ kunnen er ook gebruikt worden.

    Om nog maar te zwijgen over:

    De programmeercodes die we schreven bewaarden we in scripts.

    Nu, foutief jargongebruik terzijde, heb ik zonder vooroordelen naar ’t filmpje gekeken en is’ t enige waar ik kon denken: “Is het dat?” … Wat je hebt getoond zijn random drop points en random spawn points (dat heb je overigens óók verkeerd gespeld).

    Dit moest duidelijk door een student geschreven zijn … maar blijkbaar is het geschreven door de docent van dit vak?

    Even naar LinkedIn gegaan en ja hoor, nog meer gigantische taalfouten:

    Teaching webdeveloping which involves PHP, MYSQL and Actionscript 3.0 and Gamedeveloping Actionscript 3.0, UnrealED and Unity3D.

    Sorry als dit persoonlijk overkomt, maar van een docent verwacht ik correct taalgebruik en zeker correct jargongebruik. Het moet niet perfect zijn, maar dit is er wel érg ver naast. Ik zou me in ieder geval schamen.

  7. hoop dat ze wel met een iets bredere “grijper” komen om de afvalobjecten op te pakken.

  8. @Wim Leers: Bedankt dat je de tijd hebt genomen om feedback te geven! Zoals ik eerder had geschreven is dit project bedoelt om te leren.
    Het juiste gebruik van vakjargon hoort denk ik daar dan ook bij.

  9. @Wim Leers: Ik denk niet dat jij echt representief bent voor de gemiddelde bezoeker van iphoneclub. De schrijver van dit artikel heeft dan ook een andere doelgroep voor ogen en snapt waarschijnlijk zelf ook wel dat er geen ‘woorden’ geschreven worden bij het programmeren of dat Xcode zelf geen programmeertaal is. Dat is voor het doel van het artikel ook totaal niet relevant.

    Anderzijds ben ik het met je eens dat de grammatica en spelling beter had gekund.

  10. @Bashb: Bedankt voor de tip! We zullen daar zeker aan denken!

  11. @eM.: point taken i.v.m. doelgroep. Maar dan nog hadden ofwel de juiste woorden kunnen gebruikt worden, of een iets vagere – maar daarom nog wel juiste – beschrijving gegeven kunnen worden.
    Nu maakt deze onderwijsinstelling zichzelf belachelijk bij mogelijke toekomstige studenten die er al wat van kennen. De geloofwaardigheid/professionaliteit van de opleiding is wat mij betreft in ieder geval gekelderd. Ook omdat “random punten” blijkbaar als iets demowaardig beschouwd worden, terwijl dat de trivialiteit zelve is.

    @Frido: natuurlijk 🙂 Als het door een student was geschreven had ik ’t gewoon jammer gevonden, maar ’t feit dat het is geschreven door een docent, verschuift het eerder naar de grens van “schandalig”.
    Het gaat erom dat de studenten zoveel mogelijk leren (dat zal vast wel gebeuren!), maar ook zo juist/exact mogelijk, zodat ze later hun weg makkelijker kunnen vinden. Foutief jargongebruik helpt daarbij niet echt …

  12. @Wim Leers: Schandalig? Nou, dat is wel wat erg overdreven. Als ik jou was zou ik eerder een kruistocht beginnen tegen al die incapabele docenten die niet in staat zijn om hun leerlingen normaal Nederlands te leren schrijven (zie het gemiddelde taalniveau van veel reacties hier en op andere sites). Het gaat om een opleiding Gamedesign, daarin leer je levels, karakters, speelvelden en verhaallijnen maken. Het daadwerkelijk programmeren komt niet echt aan de orde. Voorzover ik het heb begrepen was dit voor de docent ook nieuw. Plus: dit is een ROC (= MBO-niveau, geen universitaire opleiding). Je hoeft niet de definities van allerlei programmeerconcepten uit je hoofd te kennen en alles correct taalkundig onder woorden te brengen, maar je hoeft het alleen te kunnen toepassen.

  13. @Wim Leers: Wim, bedankt voor je feedback, ik denk dat er taal en jargon-technisch misschien nog wel wat rammelt aan het artikel, we zullen hier op letten bij de volgende update. Wat betreft jou kritiek op het onderwijs wat wij geven vindt ik het knap dat je onze complete opleiding kan beoordelen op een artikel van twee a4tjes over het ontwikkelen van een iphone game. Ik zie ook niet de winst voor ons of voor jou om die kritiek hier op deze manier te ventileren. Ik nodig je daarom graag uit om je kritiekpunten verder te bespreken via email. En hier door te praten over de ontwikkelingen van een game door 1e jaars studenten op een MBO opleiding. Mijn email kun je vinden op mijn LinkedIn (waar je ook al uit ge-qoute had)

  14. Het ziet er veel belovend uit. Ik ben benieuwd wat het resultaat gaat worden 😛

    Keep up the good work!

  15. Zijn er mensen die meer weten over huidige status van Unity op iPhone?

  16. Ik ben een beetje bang voor de spanning van de game, maar vind het fantastisch hoe jullie dit proberen te doen. Was erg geïnteresseerd na het eerste artikel, goede reclame 😉 Gaan jullie en hebben jullie de tijd om de game af-klaar te krijgen? Ben erg benieuwd wat jullie met de mogelijkheden doen. Succes

  17. Rechtstreeks gegapt uit film ‘bateries not included’.

  18. Gaat de goede kant op! Mooi!

  19. @NoFearWizz: Bedankt voor het compliment!
    @Daniel: Wij worstelen nog met de juiste sfeer van de game. Tot nu toe hebben we “mysterieuze” muziek gebruikt. Of dit zo blijft moeten we nog zien. Verder hopen we het op tijd af te krijgen. Zo op het oog (en op papier) is de techniek erg simpel. Toch komen we nog vaak voor onverwachte problemen te staan.

  20. @Gonny: Hehe, zeker akkoord wat dat Nederlands in de comments betreft.

    @Marcel Kanon: Ik was aan het typen en heb ’t dus maar hier gepost, mijn excuses daarvoor. Ik heb geen behoefte om hier een e-mail discussie over te voeren though.

    Met ’t posten van die eerste comment ben ik vergeten de zeer positieve indrukken die ik had, met name de sfeer die het kleurgebruik opwekt, dat voelt erg warm en toch mysterieus aan. En de muziek heeft iets mystieks. Erg netjes 🙂
    En zoals ik begrepen heb uit de feedback op mijn comment, is dat waar het vooral om draait bij deze opleiding. Super dus 🙂