dinsdag 19 maart 2013

Week 1 -> 5 Eric


Tijdens deze weken had ik mijn blog niet goed bijgehouden. Ik had door middel van logs wel alles bijgehouden wat ik gedaan had, en dus kon ik nu deze blog post maken over alle afgelopen weken.



Week 1
02-04 : 02-10

Deze eerste week was vooral introductie en kennismaking met het Game Lab in het GGzE, en het hoofdkantoor in Helmond. In deze week was er ook overleg over het project met verschillende mensen, vaak ging dit samen met de introducties en diende vooral als verduidelijking van het project.

Belangrijk voor mijn studie heb ik mijn POP en PAP weten af te maken. In het begin was dit lastig voor me, doordat ik niet precies wist wat er gevraagd werd in het POP en PAP. Nadat ik een voorbeeld had gezien, was mijn eigen POP en PAP snel genoeg ingevuld, opgestuurd en goedgekeurd.

Later op de week begon ik alvast aan het brainstormen van een mogelijke aantal variaties van WaterDraw. Ik koos ervoor om dit te doen omdat het mij, en anderen, een beter beeld zou kunnen scheppen tot wat er allemaal mogelijk is met het spel. Hiermee hoopte ik het makkelijker te maken om voor anderen mensen iets te zien wat beter bij hun toepassing paste.
In deze brainstorm probeerde ik vrij globale spel variaties te bedenken die ieder niet veel verschillen in wat de spelers moeten doen, maar wel veel verschil hebben in de hoeveelheid competitiviteit, samenwerking, frustratie en spanning.



Week 2
02-11 : 02-17

Deze week was tijdens de voorjaarsvakantie, waardoor het niet druk was op het GGzE Game Lab.

Ik had deze week mijn aandacht gericht op het opzoeken van een template voor het Project Initiatie Document, oftewel PID. Deze template begon ik dan naar zo ver mogelijk in te vullen met informatie.

Deze week hadden we voor het Game Lab verschillende Wii U games uitgetest, beide zodat we aan het Game Lab konden laten weten welke games op wat voor soort manier spelen, en om zelf inspiratie op te doen naar coöperatieve of competitieve gameplay elementen die mogelijk toepasbaar zijn in WaterDraw.

Hiernaast was ik ook begonnen met een Unity project te maken en in te richten. Met dit Unity project wou ik al vast beginnen met de software die webcams op de PC kan vinden, deze laten zien in de GUI, en uiteindelijk gekleurde objecten detecteren. Er was geen twijfel dat we deze software nodig hadden, omdat dat de kern is van WaterDraw, en WaterDraw is wat het GGzE game lab wil toepassen in dit project. Ik had ervoor gekozen om de code geheel overnieuw te schrijven omdat de code van het prototype uit de Swimgames heel erg onoverzichtelijk en inefficiënt was. Wel was ik van plan om de code van het origineel gebruikt als inspiratie en referentie, zodat ik niet alles opnieuw hoefde uit te werken.

Ik begon ook al mijn werk aan het prototype te documenteren in een document, zodat het later gemakkelijk terug te lezen zal zijn wat en waarom ik iets gemaakt heb.



Week 3
02-18 : 02-24

Deze week heb ik vooral besteed aan het ontwikkelen van de eerste scripts van de webcam kleuren detectie prototype. Ik begon hiermee door eerst in een document op te schrijven welke onderdelen er allemaal nodig zijn voor de software, en in welke stappen ik te werk ging.

Ik heb in het begin de mogelijkheden van webcams in Unity3D opgezocht. Er is makkelijk een lijst van webcams op te vragen en hier is gemakkelijk mee te werken. Ik had in het prototype scripts verwerkt die een webcam kunnen uitkiezen om uit te lezen en laten zien in de GUI.

In mijn vorige projecten vond ik het gemakkelijk om een debug mode script te maken die gemakkelijk aan en uit te zetten is, die dan door alle scripts gebruikt kan worden om op de juiste tijden console prints uit te geven, en informatie te weergeven op het scherm.

Tijdens het werken aan het prototype heb ik mijn best gedaan om de scripts georganiseerd en modulair te houden, zodat ze gemakkelijk samen kunnen werken en ingesteld kunnen worden in de Inspector Editor van de Unity3D engine. Dit heb ik gerealiseerd door duidelijk andere functionaliteit in verschillende scripts te stoppen, zodat niet alles in dezelfde scripts gepropt is.
Ook heb ik mijn best gedaan om redundantie van code te voorkomen door middel van inheritence voor de juiste scripts.

Ik had deze week al een goed werkende versie van de kleuren detectie, en het was toen al vele malen efficiënter in performance en kleuren detectie dan de originele versie.

Details over hoe ik de webcam kleuren detectie aangepakt en uitgewerkt heb is te vinden in het document 'Unity Webcams'.

Naast het werken aan het prototype had ik deze week ook de opdracht gekregen om informatie op te zoeken over de mogelijkheid van bio feedback implementatie in WaterDraw. Dit omvatte vooral onderzoek naar bestaande games die bio feedback gebruiken in hun spel, waarvan een aantal voorbeelden te vinden waren. Ook bevatte dit onderzoek naar welke soorten hardware er beschikbaar waren en welke toepasbaar zijn voor WaterDraw. Uiteindelijk leek Arduino een mogelijkheid, of de Garmin heartrate sensor die wireless is.



Week 4
02-25 : 03-03

Deze week had ik ook grotendeels besteed aan 'DrawTech', de benaming van de webcam kleuren detectie software.

In het begin van de week richtte ik me op de detectie van wanneer een pixel de juiste kleur heeft. Eerst gebeurde dat door de RGB waardes direct te vergelijken, wat voor een probleem in precisie zorgde. Dit had ik toen veranderd naar het vergelijken van de hue, saturation en brightness van de kleur, wat voor een gigantische verbetering zorgde in de detectie van de juiste kleur.

Verder in de week richtte ik me op het uitdenken en uitwerken van de Drawpoint techniek. In plaats van dat het programma elke pixel na gaat of het de juiste kleur is, kijkt het selectiever naar een gelimiteerd aantal punten. Bij elk punt waarvan de kleur overeen komt wordt dieper op in gekeken. Als genoeg van de kleur aanwezig is, dan word er een nieuw 'drawpoint' aangemaakt.
Vanuit dit drawpoint wordt vervolgens berekend waar het object zich dan naar toe beweegt.

Deze techniek is een stuk efficiënter omdat er veel minder pixels bekeken worden. Dit drawpoint is ook te gebruiken voor andere doeleindes dan alleen laten zien welke pixels er matchen, en kan gebruikt worden om de snelheid van het object te meten.

DrawTech was aan het einde van deze week bijna af. Er kunnen nog een aantal algoritmes geoptimaliseerd worden, en het hele calibratie proces kan stukken verbeterd worden, maar verder werkte de software en kon het bijna gebruikt gaan worden voor spel varianten.



Week 5
03-04 : 03-10

Deze week begon met een aantal bugs op te lossen voor DrawTech. Deze bugs waren simpelweg positie omreken fouten dankzij het gebrek van komma getallen bij integers, makkelijk opgelost. Ook heb ik geprogrammeerd dat er nu meer drawpunten van verschillende kleuren gevonden en bijgehouden kunnen worden, zodat er meerdere spelers met dezelfde kleur kunnen spelen.

Dinsdag waren we naar de testruimte gegaan, die beschikbaar wordt gesteld door het GGzE. We hadden daar mensen ontmoet die daar werken, en we hadden bekeken en een beetje gebrainstormd op welke manier het spel het beste opgesteld zou kunnen worden.

Dezelfde dag ging ik op verzoek van Menno naar Fontys toe om WaterDraw te demonstreren aan twee R&D werknemers van SEGA, als één van de spellen van de swimgames.

Woensdag heb ik verder gewerkt aan Draw Tech en heb die dag de Tracked Draw script gerealiseerd. Deze zorgt ervoor dat er bij elk bestaand drawpoint de juiste kleur wordt getekend op een texture, zodat mensen kunnen tekenen op het scherm.

Donderdag gingen we naar het game lab in Nijmegen voor de onofficiële opening daar van, om het spel de Ontdekker te demonstreren, de toepassingen daar van uit te leggen en uit te leggen wat het doel is van het Game Lab in Nijmegen.

De laatste dag waren we begonnen met de Territory Game prototype, wat een re-make is van de originele WaterDraw game. Hiervoor heb ik ook een makkelijk uit te breiden code geschreven voor mogelijke andere spel types. Ook zijn de eerste art delen geimplementeerd.


Geen opmerkingen:

Een reactie posten