3D Game bouwen voor pro's

Door wildewouter op vrijdag 30 november 2012 10:38 - Reacties (21)
Categorie: Development, Views: 3.700

De Afgelopen vijf weken was ons projectteam, 12Villains, bezig om een 3D game te bouwen voor onze minor Game Design and Devlopment. Deze minor bestaat uit een tweetal opdrachten: een mobiele game maken, meer hier te lezen, en een 3D game maken. Ik richt mij in deze blog op de 3D game; ik mag wel zeggen dat de 3D game het ‘echte’ project is.

Het verhaal van de game

Natuurlijk heeft de game een verhaal. Hieronder de beschrijving zoals wij die hebben opgesteld in ons concept plan.

http://www.makeathumbnail.com/thumbnails/image132489.jpg

On a dark and growl planet filled with death and decay, a civilization works hard for a better life. Poor and unreliable is probably the best way to describe them. The only thing they own is their soul. Even a body is not entrusted to them. The feeling of love and compassion has been perished from the darkness in which they live. But would they have any, it had to be for the saddest creature on the planet, the wandering soul of Rho.
Once it was a happy planet. But when their sun ended in a catastrophic supernova Rho’s planet got swung out it's orbit. The planet became dark and cold and he simply wasn’t able to survive out there. Being tired of surviving he stole a spaceship to escape the planet and a better place to live. But the journey didn't last long. As inexperienced as he was, he crashed with his spaceship unto an unknown planet. His only escape route was to fix his spaceship. But to do this he had to collect his ship parts that were spread out after the crash. This is were his undefined journey begins.


http://www.makeathumbnail.com/thumbnails/image132427.jpg

De speler krijgt de besturing over Rho op het moment dat deze op de nieuwe planeet terechtkomt. Rho is alleen geen sterke krachtige speler. Om door de levels heen te komen moet Rho, omdat hij een ‘ziel’ is, dieren overnemen die rondlopen in de levels. Elk dier heeft een eigen special ability. We hebben ook al wat concept art:

http://www.makeathumbnail.com/thumbnails/image132426.jpg

Dit is een Wobi. Een Wobi heeft de mogelijkheid om te catapult jumpen. Dus om op verschillende plekken terecht te komen kan een Wobi worden ingezet.

http://www.makeathumbnail.com/thumbnails/image132425.jpg

Dit is een DumDum. Zoals je kunt zien in het plaatje is een DumDum erg sterk. Een beetje te vergelijken met een stier. Hij kan chargen en objecten omstoten om zo obstakels te overwinnen.

Tijdens het spelen van de game kom je orbs tegen. Deze orbs dienen om het ‘focus level’ te verhogen van Rho. Wanneer Rho een hoger focus level heeft kan hij grotere dieren overnemen. De orbs hebben ook als doel om de spelers te motiveren om de verschillende puzzels in de game grondig te doorzoeken zodat later in de game ook bijvoorbeeld de eindbazen, wanneer ze verslagen zijn dan, kunnen worden overgenomen. Ook zal de mogelijkheid bestaan om de quests opnieuw te doen, zodat je bijvoorbeeld dit keer met een sneller of een groter dier kan beginnen en zo meer orbs te halen.

http://www.makeathumbnail.com/thumbnails/image132424.png
Eťn van de levels uit Rho.

Ontwikkeling

Als game engine gebruiken wij Unity 4.0. Voor de 3d modellen en de levels gebruiken we 3ds Max en, ja verrassend genoeg, Google Sketchup. Als programmeertaal is nu C# in gebruik. De engine nodigt niet heel erg uit om volledig object georiŽnteerd te gaan. Het is vooral scripts schrijven. We hebben wel een eigen structuur opgezet om zoveel mogelijk object georiŽnteerd te programmeren.

De komende weken zijn we nog bezig met de ontwikkeling van de game. De release datum staat nu op februari/maart. Het lijkt ons erg leuk als jullie feedback leveren op onze game. Alles wat je leuk en minder leuk vindt willen we graag weten. We hebben ook nog beta testers nodig. Als je geÔnteresseerd bent, kun je jezelf hier opgeven.

Rho Facebook

Team blog

Schiet vogels op Android

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

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.195

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.