Friday, February 15, 2013

Afronding Prototype & Voodoo Runner

Donderdag heb ik mijn prototype afgemaakt. Ik heb alle functionaliteit in één Unity script gestopt, die met de back-end praat die vervolgens alle toegang tot de database regelt.

Je kan nu standaard op twee manieren 'remarks' plaatsen: onder de cursor of op de huidige positie van de speler. Welke je gebruikt is instelbaar in het script. Verder is er een optie om alle remarks voor het huidige level te laden zodra je begint met spelen.

De Remark Managing Behaviour script bevat alles om remarks te plaatsen en in te laden




 De remarks kunnen nu aan het begin van het level geladen worden. Ratings worden weergegeven met een duim. Welke kant de duim op richt en de kleur geeft de waardering van de speler aan. De rest heeft een eenvoudig icoon.


Daarnaast heb ik nog zogeheten 'events' ingebouwd. Je kan nu vanuit game logica een event signaleren dat in de statistieken database wordt opgeslagen. Voorbeelden van game events zijn dood gaan en het level afmaken. Er wordt gerapporteerd van wie de event is, wat er gebeurde, wanneer het gebeurde en in welk level. Daarnaast is er nog ruimte om een argument mee te geven. Zo kan je in plaats van elke keer als een speler dood gaat een event te sturen ook aan het einde van een level een PLAYER_DEATHS event sturen met als argument het juiste aantal keer dat de speler af is gegaan.

Overzicht van gerapporteerde game events


Ik heb nog vrijwel geen aandacht besteed aan security en schaalbaarheid, maar ik heb er al wel over na gedacht. Zo kan iemand met Wireshark opvangen waar remarks en game events naar toe worden gestuurd, en vervolgens een eigen programma bouwen om deze te versturen. Alle data wordt wel ge-escaped, dus er is geen SQL Injection mogelijk, maar het is een ongewenste feature. Een oplossing zou zijn dat de gamesessie zich voor een gelimiteerde tijd moet authenticeren aan de gameserver voordat er remarks kunnen worden verstuurd.

Verder kan een ietwat afwezige programmeur de server spammen door events heel vaak op te sturen. Een oplossing zou zijn om alle events in een buffer te stoppen en deze pas aan het einde van het level te versturen. Ik weet echter niet of je de buffer ook nog kan flushen als Unity abrupt wordt afgesloten, als dat niet zo is zou dat betekenen dat als spelers stoppen met spelen de statistieken van hun laatste level verloren gaan. Een oplossing hiertegen is om op willekeurige intervallen de buffer te flushen, dan kan je nooit meer dan 1 interval aan data mislopen.


Daarnaast heb ik nog wat meegeholpen aan één van Spil Games' projecten; Voodoo Runner. Ze hebben wat hulp nodig met 3D assets, dus gezien mijn prototype functioneel is was ik van plan vrijdag de hele dag in Hilversum mee te helpen met dat project. Dan zie ik meteen hun werkwijzen.

No comments:

Post a Comment