Updates over mijn taken als developer

Schiet vogels op Android

Door wildewouter op vrijdag 12 oktober 2012 11:55 - Reacties (11)
Categorie: Development updates, Views: 3.630

Na een aantal weken zeer intensieve ontwikkeling is mijn projectteam erin geslaagd om voor onze minor Game Design and Development een game neer te zetten voor Android. Afgelopen donderdag 11 oktober is deze dan ook online gekomen onder de naam Birdy Boom in de Play Store.

Ik zal in deze blog een aantal dingen vertellen over de game zelf, de ontwikkeling van Birdy Boom en over de gebruikte technieken. Om maar gelijk te beginnen:

Birdy Boom

Birdy Boom is een game geÔnspireerd door een oude lightgun classic onder vele van jullie beter bekend als Duck Hunt. Maar daar hebben we wel geprobeerd het bij te laten. De inspiratie, vooral visueel, is naar mijn mening niet zover gekomen dat het een kopietje is geworden van een al succesvolle game. Birdy Boom gaat om het neerschieten van vogels. Deze vogels vallen op het moment van neergeschoten worden naar beneden. De extra toevoeging die wij bedacht hebben is het plaatsen van een dier aan de onderkant van het scherm. Dit dier dient ťťn enkel doel: het opvangen van de verschillende vogels. Tot nu toe denken jullie: maar dat is Duck Hunt ook! Ja dat klopt, maar nu gaat het vooral om dat dier onderin, en niet alleen maar het neerschieten van de vogels. Op het moment van neergaan van de vogel moet de speler met het dier de vogels opvangen. Indien de speler de vogels mist, gaat er health vanaf. Dit ook wanneer een vogel de kans krijgt om weg te vliegen.

Er zijn natuurlijk ook vrij te spelen objecten in de game zoals nieuwe dieren waarmee je vogels opvangt. Na een totaal van 150 gevangen vogels kan de speler al een nieuw dier kiezen. Dit wordt in de toekomst ook uitgebreid met meer content.

Framework

Geen enkele rede om het wiel opnieuw uit te vinden dus we maakten natuurlijk gebruik van een framework. Wij hebben uiteindelijk voor Cocos2D gekozen. Cocos2D is van oorsprong een iOS framework maar is recentelijk geport naar het platform van Google. De basis van Cocos2D zijn de verschillende scenes die moeten worden opgebouwd en uitgevoerd door de Director. Deze scenes kunnen dan weer ingevuld worden met verschillende lagen zoals dat ook in programma's als Photoshop gewoon is. Dit brengt als grootste voordeel met zich mee dat je de logica per laag gescheiden kan houden. Dit komt de overzichtelijkheid zeer ten goede. Acties die veel voorkomen in games zijn ook al voorzien; ik noem een verplaats animatie, of een spritesheet die ingeladen moet worden.

Het nadeel van Cocos2D is alleen wel dat er weinig documentatie voor beschikbaar is. De officiŽle documentatie is alleen voor iOS en er is, vooral over de ingewikkeldere functies weinig te vinden op het gebied van Android ontwikkeling. Ik, als leek in iOS, heb me vele malen moeten storten in objective c code die voor mij tot dat moment vrij onleesbaar was. Maar hier blijkt weer dat de aanhouder wint en de game is uiteindelijk wel in de Play Store verschenen.

Ik hoop dat ik jullie in deze blog wat leuks verteld heb over onze game. Ik nodig jullie van harte uit om hem te downloaden uit de Play Store en we horen graag jullie reacties, positief en/of negatief.

Voor screenshots verwijs ik nu nog even naar de Play Store zelf en die vind je hier.

Update:

Er is nu een update beschikbaar die het voor landscape oriented tablets mogelijk maakt om de opvangdieren op de normale manier te besturen i.p.v. de inverted richting.

Development update - Stage opdracht

Door wildewouter op woensdag 20 juni 2012 11:00 - Reacties (8)
Categorie: Development updates, Views: 2.809

Dit is mijn eerste blog als devver bij Tweakers.net. Ik wil jullie hier wat meer vertellen over mijn werkzaamheden bij Tweakers en in deze blog zal ik het met jullie hebben over mijn stageopdracht.

In februari 2012 begon ik als stagiair bij Tweakers Technology in Amsterdam. Mijn opdracht bestond uit het onderzoeken van de mogelijkheid om een beta systeem te implementeren in Tweakers.net. Indien die mogelijkheid bestond, dan zou ik ook een proof of concept schrijven.

Na het uitschrijven van mijn plan van aanpak bleek al snel dat een beta systeem prima mogelijk was binnen Tweakers (surprise surprise). Na enkele weken had ik een systeem draaiend dat ervoor zorgde dat wanneer je met de juiste rechten de pricewatch bezocht, het zoekveld blauw werd (niet heel mooi, wel zeer effectief om te testen). Uiteindelijk zijn er twee manieren ontwikkeld om een beta te implementeren binnen de website.

Omdat Tweakers.net al een vrij oude website is bestaat er aardig wat legacy code, wat sinds de start van Tweakers 7.0 trouwens steeds een stuk minder wordt, waren er meerdere, twee, manieren om nodig om beta's draaiend te krijgen op de website. De eerste, en ook de gemakkelijkste, is de injectie methode. Deze houdt simpelweg in dat wanneer een functionaliteit niet object geŲrienteerd (OO) is er simpelweg op basis van beta rechten runtime code wordt geÔnjecteerd. De tweede, wat ingewikkelerde methode is de loader methode. Deze methode behelst het laden van een object op basis van rechten (dependency injection).

Het beta systeem is nog niet helemaal af. De versie die ik bouwde was geoptimaliseerd voor de huidige Tweakers versie en op dit moment is er nog geen tijd geweest om deze om te zetten naar Tweakers 7.0. Dit gaat gebeuren zodra 7.0 de deur uit is en we wat meer tijd hebben om andere dingen op te pakken.

Tijdens mijn stage is mij ook een baan aangeboden bij Tweakers zoals jullie misschien wel voorbij hebben zien komen in de development roundups. Ik werk op dit moment mee aan Tweakers 7.0 en ben voornamelijk nog bezig geweest met de vernieuwde pricewatch.

Ik zal af en toe een blogje posten over hoe het gaat en jullie zien ons werk vanzelf verschijnen in Tweakers 7.0.