donderdag 4 september 2014

Leren van het verleden


Afgelopen week ben ik bezig geweest met het overdragen van Queenbee naar de nieuwe ontwikkelaar. Minutieus gekeken naar het traject van afgelopen jaar. Kan er nog iets verbeterd worden aan het ontwerp? Wat ging er mis? Hoe voorkom ik dezelfde valkuilen?

Wijziging
Aan het hele raamwerk/ontwerp wordt niets veranderd. Dat was en is mijn inziens goed.
Wel geef ik de nieuwe ontwikkelaar de vrijheid dat er in overleg dingen anders mogen. Als dat gebruiksvriendelijker is, of als dat ontwikkeltijd bespaart.
En er wordt een intro toegevoegd die automatisch afspeelt als je Queenbee downloadt. Mensen lezen niet. En al zijn er slechts 2 spelregels, je moet ze toch kennen voordat je het spelbord ziet.

Vormgeving
Een lastige. Ik ben daar niet tevreden over. Had een hele enthousiaste partij gevonden die dat gelijk zou aanpakken maar twijfelde omdat ik vreesde dat Queenbee teveel hun ding zou gaan worden. Besloten dat de vormgeving altijd later nog kan. Eerst maar eens investeren in een goed functionerend spelletje dat je probleemloos tegen elkaar kunt spelen. Voorrang gegeven aan een Android versie ten koste van de vormgeving.

Completer
Dingen die ik zo logisch vind dat ik verzuimd heb ze te melden staan nu wel in de overdracht:
- Dat spelers hetzelfde speelbord hebben als ze tegen elkaar spelen.
- Naar welk scherm je terugkeert als je mèt account een singleplay doet.
- Welke data/tijdstippen er moeten worden weergegeven.
- Dat als je na 72 uur een opgestart spel niet speelt je dat spel verliest. (En niet dat de tegenspeler verwijderd wordt).
Dit zal veel tijd besparen!!

Database
Waar het echt misging is met de database. Ik verwijt het mezelf dat ik dat stukje niet duidelijk genoeg heb overgedragen. Ik had geen kaas gegeten van speldatabases. Nog nooit eentje gezien. (Wel winkeldatabases :-)). Me niet gerealiseerd wat de gevolgen zijn van bepaalde wensen voor de inrichting van een database.
Zoals jullie misschien wel weten ben ik dol op "zo simpel mogelijk". Zo min mogelijk data (niveaus en velden) in een database. Velden bij een verversing overschrijven oftewel oude gegevens gelijk opruimen.
Ik had dan ook bedacht dat er maar één spel tegelijk mag openstaan met een bepaalde tegenspeler. Je sluit een ronde af en je start een nieuwe ronde op. Gespeelde spellen kunnen zo automatisch worden verwijderd (overschreven). Je voorkomt dat uitnodigingen dubbel verstuurd worden waardoor je meerdere spellen met dezelfde speler hebt openstaan. Je voorkomt tevens dat spelers uit beeld verdwijnen omdat beiden vergeten een nieuwe uitnodiging te sturen.
Helaas kreeg de database toch 3 niveaus; account, contact en ronde, i.p.v. de beoogde 2. (Ik schrijf dat nu soepeltjes neer, maar het duurde even voordat ik dit snapte). Er konden daardoor meerdere rondes per contact aangemaakt worden, wat dus niet de bedoeling was.......
Vanaf dit punt werd de database aangepast en aangepast; Het 3e niveau werd opgeheven en de ronde werd toegevoegd aan het 2e niveau. Zover ik echter kon zien werden er per contact gegevens van 2 rondes toegevoegd, een huidige en een voorgaande ronde. Ik wilde dat liever overschreven hebben maar werd op de vingers getikt dat dit niet tot mijn takenpakket hoorde. Ook van buitenstaanders hoorde ik dat ik me niet zo druk moest maken om een kolommetje meer of minder. Dat het volstrekt normaal is dat er data in databases staat die niet gebruikt wordt. Als alle verwijzingen maar goed staan. Met veel moeite liet ik het los.
Er kwamen vele versies. Heeeeeeel veel uren testen. Bij de laatste versie die ik gekregen heb kreeg de ene speler bij een nieuwe ronde het spel van de vorige ronde...... De doorslag om in ieder geval de database toch opnieuw te laten maken.

In app aankopen. IAP (In App Purchases)
Je kunt de reclame afkopen bij Queenbee. Dat wordt geregistreerd op je Apple id. Zodat je als je de app opnieuw of op een ander apparaat installeert je dat via je Apple id kunt restoren. Dit werkt.
De andere IAP die in de multiplayer zit werkt helaas nog niet foutloos. Deze IAP kun je alleen kopen als je ingelogd bent met een account. Ik had het liefst gezien dat die aankoop geregistreerd werd op het Queenbee account. Maar dat was niet mogelijk volgens de ontwikkelaar; aankopen moeten geregistreerd worden op een Apple id zodat je kunt restoren. Daar had ik me bij neergelegd. Ik vond het wel typisch want het gaat ten koste van de opbrengsten; met één Apple id kun je meerdere Queenbee accounts aanmaken, en wat je koopt op een van die accounts kun je gebruiken voor alle accounts. Bovendien moet je iets heel ingewikkelds inbouwen om die aankopen te synchroniseren met de Queenbee server. Ik heb dan ook overwogen deze IAP te schrappen.
Doch met uitschrijven van de overdracht deze week bedacht ik me dat andere spellen toch ook IAP's hebben die aan het account gekoppeld zitten en niet aan een Apple id. Muntjes verbruik je en kun je niet restoren. Dochters hebben eigen accounts bij Minecraft met hetzelfde Apple id. doch aankopen komen niet bij elkaar terecht.

Zucht. Weer met frisse moed verder. Wat geweest is geweest. Ik heb het afgelopen jaar in ieder geval veel geleerd. Opleidingen kosten ook tijd en geld. Dit blog heet niet voor niets autodidact.......