Sprint 4.3

Inleiding

In deze post worden de drie onderstaande criteria behandeld. Het verloop en de belangrijkste gebeurtenissen van de afgelopen drie sprints zijn op deze pagina te vinden. Een omschrijving van dag tot dag met alle details is te vinden in de CLE-blogposts zelf waarnaar eventueel in de tekst zelf verwezen wordt. (Periode: maandag 4 mei 2020 tot en met woensdag 24 juni 2020.)

Professionele werkhouding (ONDERNEMEND)
Je bent proactief aan het werk, met je werkhouding laat je zien dat teamleden op je kunnen bouwen. Je kan projectmatig werken met je team en bent in staat feedback te geven en te ontvangen. Heb je je professioneel opgesteld naar de andere teamleden en docenten? Waaruit kunnen we dat opmaken? Waarin kan je je nog verbeteren in dit opzicht?

De afgelopen weken zijn we als geheel team zéér goed aan het werk geweest. Ik was erg gemotiveerd en daarom ook proactief aan het werk. Iedere maandag en woensdag was is zoals afgesproken om 9.00 uur te vinden op Teams met een webcam zodat we als team met Sara de dag konden openen. In het begin was ik hier niet echt fan van maar na al die weken thuis te zitten is het toch wel fijn om elkaar ook even te kunnen zien en een gesprek te kunnen voeren. Dit is een klein ding maar helpt wel om de sfeer erin te houden.

Als team konden we het heel goed vinden met elkaar, dit is in de eerdere retrospectives van sprint 4.1 en sprint 4.2 ook te lezen. Dit komt deels ook omdat Jesse en Max ook in dezelfde klas zitten als waarin ik zit. Wesley had ik nog niet eerder mee gewerkt omdat hij in een andere klas zit. We vullen elkaar goed aan omdat iedereen een andere specialiteit heeft, als we dit al zo mogen noemen. Ik ben bijvoorbeeld goed met het maken van video’s en beeldbewerking, juist omdat ik deze kennis al heb heb ik ervoor gekozen om dit niet al te veel toe te passen in deze CLE. Ik wilde graag mezelf uitdagen en ontwikkelen op een nieuw gebied. Zo heb ik feedback van bijvoorbeeld Jesse ontvangen op mijn programmeerwerk en heb ik Wesley en Max feedback gegeven en geholpen met taken die met Adobe Premiere Pro, Photoshop en Illustrator te maken hebben.

Dit haakt mooi in op het stuk professionaliteit. Natuurlijk maken we lol en hebben we het gezellig met elkaar, maar wanneer we serieus moeten zijn en doorwerken gebeurt dit ook. Er zijn dagen (meestal de woensdagen) dat we om half tien verder gaan aan de ontwikkeling van onze game en gewoon bijna aan één stuk doorwerken tot vier, soms bijna 5 uur. Waar iedereen zich ook goed aan houdt is dat we de tijd vol maken die voor de les staat en als je daarna nog door wilt gaan staat dit vrij voor iedereen. Het eerst volgende moment waarop we dan weer gezamenlijk werken praten we elkaar bij, wie wat gedaan heeft en waar we gebleven zijn in de voortgang van het project. Door gebruik te maken van Trello (Jesse werkte deze meestal bij) was het voor zowel ons als de docent inzichtelijk waar we gebleven waren in het proces.

Wat mij opviel was dat we meteen vanaf dag één heel gemotiveerd waren omdat dit wel in iedereen z’n straatje past. Allemaal zijn we in een zekere vorm wel een gamer. De introductie was erg leuk gedaan met de ‘fruitmachine’ waaruit drie elementen kwamen die in de game verwerkt moesten zijn. In ons geval waren dit narrative, betray en time traveling. In mijn enthousiasme heb ik de scope van het project te groot gemaakt. Het was ook erg lastig om te voorspellen hoe ver we zouden komen omdat er een hoop factoren onzeker waren. Denk hierbij aan: hoe goed is iedereen, hoe snel gaat de development, gaan we een framework gebruiken enzovoort? Al snel maakte Jesse de opmerking dat onze scope te groot aan het worden is en dat klopte ook. Maar ik wilde graag het concept wel uitgebreid maken zodat we in ieder geval een mooi concept hebben liggen waar we mee aan de slag kunnen. En vanuit daar kijken we wel hoe ver we komen. Met deze feedback vanuit mij zijn we het eens geworden en zijn we aan de slag gegaan. Hierdoor zijn de drie elementen niet letterlijk in de game verwerkt maar wel goed toegepast in het concept.

Reflectie op de Gamemarkt
Na de presentaties van de games die de teams hadden gemaakt was er ruimte voor feedback. Ik en de andere teamleden opbouwende kritiek geleverd en vragen gesteld. Als laatste waren wij aan de beurt. Zo goed als alle feedback was positief, hier en daar was er nog ruimte voor verbetering en dat was ik het ook helemaal mee eens.

We kregen van één iemand feedback die we niet verwacht hadden. De game zou ‘discriminerend’ zijn omdat er een bepaalde groep stereotype wordt afgebeeld. Het zou volgens deze persoon niet mogen dat wanneer je op een Chinese markt in Wuhan bent (dat is waar de storyline begint) de tegenstanders bestaan uit zombies die besmet zijn met het virus en de lokale bevolking die geen indringers wilt. Ook waren er Chinese tekens te zien rondom de tegenstanders om te benadrukken dat het zich in China afspeelt. Later in het spel kom je bij het Witte Huis aan richting the Oval Office, deze wordt beschermd door lange blanke bodygoards in pak. Mag dit ook niet?

Ik wilde het gesprek aan gaan met de persoon die kritiek leverde omdat ons gehele concept het duidelijk maakt waarom bepaalde keuzes gemaakt zijn. Helaas was hier geen behoefte aan en keerde het steeds terug naar hetzelfde punt waardoor een discussie voeren niet mogelijk was. Naar mijn mening kwam ik met een aantal valide tegenargumenten. Hij of zij vond het niet kunnen om een ‘racistische’ game te publiceren (als het al racistisch te noemen is). Dan denk ik: “waarom kan dit bij films wel?”. Kijkwijzer heeft een aantal beeldmerken die aangeven wat een film bevat. Nogmaals, ik pleit er niet voor om het labeltje ‘racistisch’ op onze game te plakken omdat de game dat simpelweg niet is. Dit geeft ook aan dat een game niet voor iedereen bedoelt is, en dat is ook zo.

Mijn mening (en die van vele) verschillen behoorlijk. Ik ben van mening dat je als artiest – in welke vorm dan ook – niet beperkt moet worden door de gedachtegang van anderen. Ja, dit spel bevat een aantal stereotype beelden. Waarom, omdat een stereotype beeld heel herkenbaar is voor de speler.

Niemand van ons heeft ooit de intentie gehad om mensen te beledigen. Achteraf hebben we met het team nog overleg gehad over deze feedback. Geen een van de developers heeft er überhaupt aan gedacht dat iemand het zo zou kunnen opvatten. Ik ben ook van mening dat dit niet een beperking moet worden voor het ontwikkelen van games, maar een probleem is van de mensen die er niet van houden. Met tegenzin hebben we achteraf nog de tegenstanders aangepast met een design van een gewone zombie. Liever had ik dit niet gedaan aangezien we nu toch zwichten voor de minderheid.

Creativiteit (ONTWERPEND)
Wat was je bijdrage aan de ontwikkeling van het product? Welke uitdagingen (technisch, vormgeving) ben je tegen gekomen en welke alternatieven heb je in kaart gebracht om tot een goed resultaat te komen? Op welke manier heb je inspiratie opgedaan? Een game ontwikkelen die helemaal klopt is taai en pittig werk. Neem je met open eindjes genoegen of lukt het je om je te richten op de details en alles er uit te halen wat er in zit? Hoe ben je omgegaan met tegenslag?

Veel mensen denken bij het kopje ‘creativiteit’ enkel aan ‘grafische’ creativiteit, maar ook de techniek vereist creativiteit. Om toch maar met het eerste deel te beginnen. In de eerste instantie had ik me voorgenomen om me zo min mogelijk bezig te houden met de vormgeving omdat ik hier zoals eerder benoemd al veel ervaring mee heb (mede dankzij mijn vooropleiding mbo mediavormgeving). Waar ik me wel mee bezig heb gehouden (net zoals de andere teamleden) is het ontwikkelen van een concept. Toen duidelijk werd wat de opdracht was kregen we ook de opdracht om de volgende les een basisversie van een concept te presenteren. Ik kwam met het voorstel om allemaal individueel minimaal één conceptje te bedenken die voldoet aan de drie elementen die we kregen. En uit die concepten hebben we democratisch besloten met welk concept we verder wilden gaan. Toevallig werd ‘mijn’ concept gekozen, hiermee zijn we verder gegaan om dit door te ontwikkelen naar een kloppend concept waar we mee verder kunnen en dat van ons allemaal is geworden.

De inspiratie hebben we overal vandaan gehaald, in mijn geval was het eigenlijk een kwestie van de laatste ontwikkelingen in het nieuws samenvoegen met de geruchten/speculaties/complot theorieën rondom het coronavirus. Dit leidde tot een concept wat perfect bij deze tijd past en voldoet aan de eisen van dit project. Het enige waar we een beetje moeite mee hadden was het toepassen van het tijdreizen. Dit is opgelost door de speler tussen levels door de keuze te geven om lineair door te spelen of terug de tijd in te reizen om bepaalde beslissingen ongedaan te maken waardoor je in een nieuwe verhaallijn terecht zou kunnen komen.

Echte tegenslag hebben we niet mee te maken gehad naar mijn mening, dit is omdat we allemaal realistisch keken. Ik had inderdaad ook door dat we de game nooit af zouden gaan krijgen. Daarom is er ook voor gekozen om het concept goed uit te werken en minimaal één level te ontwikkelen waar we trots op kunnen zijn. Dit is ook grotendeels gelukt, het is alles behalve een AAA (Triple-A) game maar ik ben behoorlijk okay met het eindresultaat.

De creativiteit in het technische proces was ook zeer interessant. Waar ik voorheen heel zelfstandig werkte (het reserveringssysteem) heb ik ervoor gekozen om meer contact te zoeken. Zelfstandig werken kan heel fijn zijn en snel werken, maar als ik ergens op vastloopt blijf ik hier ook op haken in veel van de gevallen. Dat is zonde van de tijd. De eerste paar weken van het programmeren hebben Jesse en ik veel samengewerkt aan het opzetten van de basis. Het is waarschijnlijk niet de meest efficiënte manier maar het beviel mij erg goed. De reden dat het me goed beviel is omdat je iemand hebt die over je schouders meekijkt met een ander perspectief, we vulden elkaar goed aan en gaven bijna real time feedback aan elkaar. Toen de basis (een player, inputsysteem, collision en gravity) er was zijn we wel zelfstandig gaan werken. Middels Trello hebben we bijgehouden waar iedereen mee bezig was.

Waar ik veel van geleerd heb is het simpelweg googlen van dingen die ik wilde toepassen in de game. Omdat we geen gebruik hebben gemaakt van een framework (dit heeft weer voor- en nadelen) moesten we alles zelf ontwikkelen. De grootste klus was het maken van de gravity (zwaartekracht). Door veel, heel veel deskresearch te doen leer je beetje bij beetje hoe het gemaakt zou kunnen worden. Eerst kwam ik bij heel veel pagina’s uit over Phaser (dit is een framework) en daarna een aantal tutorials waarin ze het in C++ deden. Hier had ik niets aan dacht ik, maar toen ik de uitleg ervan las begreep ik wel hoe ze het gemaakt hebben. Dit heb ik doorgestuurd naar Jesse en dit principe hebben we in TypeScript toegepast. Af en toe heb ik ook gebruik gemaakt van de momenten waarop de programmeerdocenten beschikbaar waren voor vragen. Dit was erg fijn!

Zoals bij ‘professionaliteit’ te lezen was, was er kritiek op de designkeuzes van ons spel. Ondanks dat ik het hier totaal niet mee eens ben heb ik wel geleerd om meer te de kijken vanuit iemand anders zijn of haar schoenen. Echter, alle zes de mensen die de game getest hebben hebben hier ook geen kritiek op geleverd.

Baas over je leerproces (BETROKKEN)
De opgeleverde planning en taakverdeling bij aanvang was nadrukkelijk ook gebaseerd op jouw leerwensen. Je kan aantonen dat je hebt gewerkt aan eerder opgestelde leerdoelen, hierin heb je eerdere feedback uit sprint 1 en 2 meegenomen. Was je in dit proces ‘in control’ van wat JIJ wilde leren en heb je invloed uitgeoefend op de planning en verdeling van taken?

Direct vanaf het moment dat het concept er lag zijn we het onder gaan onderverdelen aan de hand van MoSCoW. Hierdoor heb ik prioriteiten gesteld. In de eerste instantie had ik niet een concrete planning wat de building blocks betreft maar vanaf het einde van sprint 4.1 heb ik dit wel gemaakt. Deze CLE was mijn doelstelling om 3 á 4 building blocks af te ronden om op een totaal te komen van 9 á 10 blocks. Dit gaat lukken! Ik heb er al twee gehaald (Front-end en Oplever) en het derde block (Content) staat gepland voor volgende week maandag. Deze blocken sluiten ook aan op mijn leerwensen omdat ik me deze CLE wilde focusen op het programmeerwerk in plaats van op de vormgeving. De feedback welke in in Sprint 4.1 heb gehad heb ik meegenomen direct toegepast in Sprint 4.2 De feedback die ik vervolgens daarop kreeg was positief en ik kreeg het advies om dit zo door te zetten. Dit heb ik gedaan en is naar mijn mening ook zeker gelukt.

Ik heb ook mondeling aan het team aangegeven aan welke blocks ik wilde werken. Dit hebben we allemaal gedaan en gecommuniceerd naar elkaar. De reden hiervoor is, is dat we elkaar dan taken kunnen geven die aansluiten bij de blocks die iedereen wilt behalen. Hiermee toon ik ook aan dat ik ‘in control’ was van mijn eigen leerproces en dat ik taken op me genomen heb waar ik iets van leer en iets aan heb. Binnen Trello heeft Jesse die kolommen aangemaakt welke voor de Sprints staan. Daarin hebben we allemaal ‘kaarten’ geplaatst met User Stories welke afgerond moeten worden. Op basis van de blocks en de eigen leerdoelen hebben we overlegd wie welke User Story op zich zal nemen om de doelen te kunnen bereiken. Af en toe wordt er wel van kaart gewisseld of komt iemand helpen als het niet wilt lukken.

Wat ik concreet geleerd heb deze CLE is het object georiënteerd programmeren in TypeScript. Ook het samenwerken heb ik heel veel van geleerd, dit had ik eerlijk gezegd niet verwacht. Als je een team hebt wat het goed met elkaar kan vinden motiveert dit echt, iedereen duwt elkaar vooruit. Door de verschillende blikken op het project blijft iedereen ook kritisch en de een ziet dingen die de ander niet direct zou opmerken.

Extra leerpuntje
Op de dag van de oplevering liepen we wel tegen een aantal puntjes aan. Waar ik achter kwam is dat we niet de de juiste breedte van de Arcade Machine hadden overgenomen waardoor de uitlijning niet klopte. Ook hadden we wat problemen met browser compatibility. Iedereen heeft een taak op zich genomen om dit last minute nog op te lossen, aangezien een paar kleine dingen samen voor veel problemen zorgen en dat willen we niet. Wat ik hier van geleerd heb is dat we op tijd hadden moeten controleren of alles werkte. Maar het is uiteindelijk goedgekomen. 🙂

Speel het spel op: http://brambenik.nl/cle4/
(Mocht de game niet direct beginnen, ververs de pagina.)


CLE blogposts en speedcourses

Week 1
Maandag 4 mei – introductie, werkomgeving opstellen, ideeën
Woensdag 6 mei – presenteren basisconcept, feedback verwerken, taakverdeling, deelproducten

Week 2
Maandag 11 mei – groepsgesprek met feedback, storyline, game rules/mechanics en planning
Woensdag 13 mei – retrospectivegesprek, UML, GitHub , typescript objecten en basis opzet

Week 3
Woensdag 20 mei – Planning aanpassen, MoSCoW toepassen, besturing fine tunen, springen

Week 4
Maandag 25 mei – Meerdere user stories af, hit animatie, CSS overlay, versiebeheer
Woensdag 27 mei – Collision detection, gesprek Erik hitbox, schieten, X-as flippen, testplan maken

Week 5
Maandag 1 juni – Uitgebreide tests uitgevoerd onder meerdere personen met conclusie
Dinsdag 2 juni – Testplan uitgevoerd onder 3 testpersonen, gedocumenteerd
Woensdag 3 juni – Bullet aanpassen, HP indicator redesigned, audio toegevoegd, input uitgebreid

Week 6
Maandag 8 juni – Scrollable background, veel research, contact met Erik, HP
Woensdag 10 juni – Samenwerken, audio, individuele gun, power ups, debugging, structureren

Week 7
Maandag 15 juni – Spawn areas, damage per gun, fire rate and range, 2.5D graphics
Woensdag 17 juni – Bullet positie relatief, GUI CSS, zombies flippen, transitions, waves

Week 8
Maandag 22 juni – Retrospectivegesprek, laatste dingen, animatie, code opschonen
Woensdag 24 juni – Laatste development, opleveren, presenteren, Gamemarkt

Beeldmateriaal

Presentatie-testresultaten