Veckouppdatering v.21

Det har varit en intensiv sista vecka men jag har fått med det mesta jag behöver ha med. Jag har kommit på att jag behöver ha med en tutorial som körs i dialogform med fiskhandlaren men den får jag fixa under helgen som kommer. Borde inte vara något större problem.

Arbetet under den här sprinten dominerades av fiskhandlarens dialogträd, något som visade sig vara mycket mer komplicerat än fiskesekvensen pga de olika händelser som inträffar när spelaren talar med handlaren – logiken kollar om du har guldfisk i ryggsäcken och om du har det försöker den att uppgradera spöet, varpå den kollar om du har annan fisk i ryggan och tar i sådana fall hand om den och fixar så att berörda fält påverkas varpå denne avslutar konversationen med dialog som levereras om spelaren har en tom ryggsäck och pratar med handlaren. Under alla dessa steg körs ett antal coroutines och jag har typ lyckats med tajmingen. Det är vid ett eller två tillfällen som två kan råka köras samtidigt och om jag har tid över innan inlämning ska jag försöka att lösa det. Väldigt mycket tid har också gått åt till att testa spelet, speciellt dialogdelen pga dessa komplexitet.

Jag kom underfund med att jag har ganska tajta kopplingar mellan vissa klasser när jag designade dialoglogiken – i fiskemomentet är det fiske controllern som håller och styr hur vissa UI-element visas då jag för tillfället tyckte att det verkade rätt logiskt att komponenten skulle göra det men när jag designade UI-elementen för dialogsystemt insåg jag att dialogklassen också skulle behöva ha tillgång till det canvas som innehåller alla UI-element. Det optimala borde istället vara en UI-komponent som är fäst på game controllern som styr allt som har att göra med UI. Det borde också leda till att spelets andra objekt bara behöver ha ett objekt att hålla reda på – den singelton som skapats för just detta – istället för det virr-varr av kopplingar som existerar nu. Lite bakläxa att reda ut under sommaren.

Under helgen ska jag skriva leveransberättelsen och fixa det sista med spelet.

Kul och givande projekt.

Daily Scrum

Vad har jag gjort sedan igår?

Gjort klart dialogen, skapat titelskärm med önskad funktionalitet och skapat scener för intro och outro.

Vad ska jag göra idag?

Skriva texten till introt och outro och implementera typing metoden på dessa textstycken i vardera scen, och slutligen bygga spelet och testköra så att det fungerar ”live”

Vad har stört mitt arbete?

Inget.

Sprint #7

Sprint backlog

  • Spelaren ska kunna vinna genom att lämna in tillräckligt med fisk
  • Fiskhandlaren ska ge respons på samtliga handlingar spelaren kan göra i form av text som visas på ett UI-objekt
  • Fiskhandlaren ska ge respons även om spelaren inte har fisk att lämna in
  • Spelet ska ha en titelskärm
  • Titelskärmen ska kunna starta spelet
  • Titelskärmen ska kunna stänga applikationen
  • Spelet ska ha ett intro
  • Spelet ska ha ett outro
  • Vid outrots slut ska spelaren tas tillbaka till titelskärmen

Veckouppdatering v.20

Arbete har gått bra. Jag märker att saker och ting går lättare och lättare. Tidigare kändes det som om att man trampade vatten och inget hände men nu när grunden är lagd börjar saker bli mer och mer tydliga samtidigt som själv jag blir mer och mer bekväm med Unitys workflow.

Jag har gjort klart spelets inventory UI och det blev bra – det visas vid en knapptryckning och döljs med samma knapp, och vid visning kollar spelet vilka fiskar som finns i ryggsäckslistan i game controllern och hämtar relevant sprite förvarje objekt och visar det i relevant ruta.

Att lämna in fisk var inget större problem eftersom det bara var att ta bort alla fiskar ur ryggsäckslistan. Det enda som behövdes var att göra det bakifrån så att inte indexet i foreach-loopen ändrades under körning.

Uppgraderingen av spöt tänkte jag först att lösa genom att hålla koll på antalet guldfiskar som lämnats in men i slutänden valde jag att bara kolla vilken nivå på fiskespöt spelaren hade (finns fyra i spelet) och att spöet uppgraderades en gång per guldfisk som lämnades in upp till det mest kraftfulla spöet. Detta förutsätter att endast en guldfisk krävs per uppgradering och skulle jag ändra prissättningen skulle jag nog antagligen andända ett fält för att hålla koll på hur många som redan lämnats in och sedan referera till detta värde för att se om en uppgradering skulle kunna genomföras.

Det absolut svåraste, eller mest komplicerade, hittills är logiken för responsen från fiskhandlaren. Jag har velat animera texten som ska visas så att den successivt skrivs på skärmen och detta har jag löst via en coroutine, en async-process som vid fasta intervaller konkatinerar ett textfält med en ny bokstav parallelt med själva main loopen som kör spelet. Detta gör att jag måste tajma dialogflödet på andra sätt en tidigare eftersom programmet fortsätter att köra den Update-metod, som körs en gång per skärmuppdatering, under tiden texten körs och om logiken hinner kicka igång nästa coroutine som skriver nästa textstycke kommer bägge processerna att skicka bookstäver till dialogrutan samtidigt vilket i sin tur gör dialogen oläslig. Att komma på lösningen för detta kommer att ske under nästkommande vecka.

Värt att nämna är att jag inte implementerat kollen för att vinna ännu och att den delen av backlogen kommer med under sista sprinten, men jag planerar att köra en koll där inlämnad fisk ställs mot summan som krävs och om inlämnad fisk når eller överskjuter den summan vinner man varpå outro-scenen laddas.

Börjar känna mig lite stressad.

Skapa din egen webbplats, gratis på WordPress.com.Skapa din egen webbplats.
Börja gratis