Tagebuch: Feature Runner

Wenn man keine Details über das nächste Update verlieren möchte ist Tagebuch führen etwas kacke :smiley:. Aber so viel sei gesagt: ich hab heute wieder einiges machen können. Ich kann ja im groben beschreiben, was ich umgesetzt habe:

  • Einen Service erweitert
    – Inkl. 5 neuer Unit-Tests
  • Das Statistik-Panel hat einen neuen Wert zum Anzeigen
    – Da hab ich mich sehr über meine Erweiterung gefreut, die ich weiter oben mal beschrieben habe. Also konkret meine ich diese hier:
    image
    Das macht es doch schon einfacher, wenn man zwischen den einzelnen Panels hin&her navigiert :slight_smile:

Uuuh und was ich gerade noch sehe. Ich hab 50% von allen meinen erfassten Tasks in hacknplan erledigt :stuck_out_tongue::


Oooh und wie konnte ich das vergessen zu erwähnen: Heute waren die Unit-Tests auch echt Gold wert! Hab die Equals-Methode von einem Model neu generieren lassen und dachte „Das läuft“. Die tests haben mir dann Gegenteiliges bewiesen! Seit einem Update scheint Rider die wohl anders zu generieren als früher. Da war ein ganz widerlicher neuer Check drin - ob es sich auch um die gleiche Instanz handelt. Das war so vorher nicht drin und dementsprechend sind einige Tests auf die Schnauze gefallen. Also hab ich die Prüfung angepasst und jetzt läuft alles wieder wie früher :slight_smile:

2 „Gefällt mir“

Momentan muss ich neues Zeug für die UI erstellen. Und da hab ich wieder das Tool draw.io zu schätzen gelernt. In meinem Kopf geisterten nur so halb fertige Konzepte rum. Da ich keine Ahnung von meiner fertigen Oberfläche hatte, hatte es mir ziemlich davor gegraut mit den Aufgaben anzufangen. Also dacht ich mir, versuchst mal einen Grafik-Mock mit draw.io zu erstellen. Was im wesentlichen auch echt gut ging. Dazu hab ich mir einfach in der App ein leeres Panel anzeigen lassen und davon einen Screenshot gemacht. Diesen dann als Hintergrund verwendet und darauf schöne Komponenten gezeichnet.

Alles in allem war es aber sehr erfolgreich gewesen :slight_smile:. Es ist doch recht praktisch, wenn man seine Komponenten dann immer wieder neu ausrichten - und weitere Spielereien einfließen lassen kann. Zudem kamen mir auch ganz neue Ideen die ich beim „drauf los programmieren“ garantiert nicht gehabt hätte.

TL DR: Hab gestern jetzt also nicht wirklich etwas programmiert - aber ein Konzept für ein kommendes UI ausgearbeitet. Somit hab ich jetzt einen schönen Plan wie ich weiter machen werde.

So mal kurz ein Update geben. Am Wochenende war jetzt nicht soooo viel Zeit - aber ich hab auf jeden Fall Fortschritte gemacht.

Das was ich mit draw.io vorbereitet hab, hab ich schon (zumindest von UI-Seite) ziemlich weit umgesetzt. Dabei musste ich unter anderem eine eigene GUI-Komponente schreiben - die soweit auch erstmal fertig ist. Allerdings kennt diese noch keinen einzigen test - was auf meiner Todo-Liste für den Task aber noch drauf steht.

Ansonsten denke ich, werde ich auf jeden Fall noch die komplette Woche brauchen. Um es mal in Zahlen auszudrücken: von den Tasks her hab ich von dem Milestone jetzt etwa die hälfte erledigt. (Was komplett nichtssagend ist - weil nicht jeder Task die gleiche Komplexität aufweist. Da ich keine Schätzungen mache, kann ich es auch nicht in Punkten ausdrücken).

Aber auch wenn ich hier gerade etwas weniger schreibe (eben weil ich das nächste Update gerne etwas überraschend halten möchte ^^) - so bin ich trotzdem nach wie vor am Projekt dran :slight_smile:

So - letzte Woche bin ich ehrlich gesagt zu GAR NIX gekommen. Unsre Wohnung hat viel Zeit & Aufmerksamkeit gefordert sodass ich unter der Woche zu nix gekommen bin und das WE hatte ich mit Freundin & Familie verbracht. Aber in der Woche hab ich wieder vor weiter am Spiel zu programmieren :slight_smile:

Und heute gings mal wieder weiter :slight_smile:. Heute wieder einen Anfang zu machen war nicht einfach - da ich wusste: auf mich warten KomponentenTests die ich zu schreiben hab. JA es gibt definitiv interessantere Aufgaben (vor allem weil ich im Betrieb die letzten 2 Tagen ziemlich viel mit Tests verbracht habe). Kurz hab ich mir überlegt die zu skippen - hab mich aber zum Glück dagegen entschieden!

Aber ich muss sagen: hat trotzdem Spaß gemacht. Hab zwei Komponenten fertig gemacht und beide haben KomponentenTests. Außerdem glaub ich, hab ich endlich das Unity-Komponenten-Model verinnerlicht :slight_smile:.

Insgesamt sind somit 9 weitere Tests hinzugekommen und das schöne: Alle meine nun insgesamt 117 Tests sind nach wie vor Grün :slightly_smiling_face: (Und ja, ihr könnt mir glauben: das macht richtig Spaß die auszuführen und das Ergebnis zu sehen!).

Ich kanns also nur weiter empfehlen: Auch wenn man es für private Projekte manchmal für übertrieben hält, schreibt Tests! Spätestens wenn so ein Projekt mal wächst werdet ihr froh drum sein!

Hab wieder einiges machen können. Neben weiteren Tests & Komponenten habe ich jetzt auch mal so einiges an Business-Logik umgesetzt. So zeigen meine Komponenten nun auch wirklich sinnvolle Daten an. Hab dafür zwar ein paar mehr Tasks erstellen müssen - aber fast alle zusätzlichen schon beinahe abgearbeitet. Aktueller Stand ist:

  • 5 Tasks in Todo
  • 13 Tasks in Done

Kann sein, dass da im laufe des Milestones noch ein paar Tasks finden - aber die “Erledigt”-Spalte sollte deutlich überwiegen.

Werde aber diese Woche vermutlich zu nicht mehr sonderlich viel kommen. Also: nächste Woche werde ich auf jeden Fall noch brauchen.

So - ich hab heute dann doch relativ viel Zeit für das Spiel gefunden. Mir ist auch aufgefallen, dass ich mir für den Milestone etwas zu viel vorgenommen hab. Denn ich hab zwei Tasks in dem Milestone gehabt welche definitiv noch einiges mehr an Plannung voraus gesetzt hätten. Warum? Ich wollte darin Funktionalität anbieten für die ich aber noch keinen Platz in der Oberfläche habe. D.h. ich müsste erstmal wieder Gedanken um das GUI machen. Diese zwei Tasks hab ich dann zu einem eigenen Milestone verschoben.

Dann konnte ich so gut wie alles andere erledigen - und habe noch einen Task offen. Danach geht es dann in die Testphase. Also stehen die Chancen mehr als gut, dass es nächste Woche ein Update geben wird :slight_smile:.

Ich hab gerade festgestellt, dass ich mind. 1 Feature habe, was nicht verwendet wird. Um sicher zu sein, wie es wirklich um meine Features steht, hab ich mir deshalb eine Ansicht gebaut - welche mir anzeigt:

1 Welche Features ich in Verwendung hab
1.1 Welche Komponenten diese verwenden
2. Welche Features ich nicht in Verwendung hab.

Und das ganze schaut so aus:

image

Es ist einfach saumäßig praktisch, dass man in Unity3d seine eigenen Views zusammenbauen kann - die entsprechende infos zum Projekt liefern :slight_smile:

DAS NÄCHSTE UPDATE STEHT VOR DER TÜR!!!

So - eben hab ich tolle Fortschritte gemacht. Alle tasks für das neue Release sind erledigt :slight_smile:.

Ich bin sehr gespannt, wie das nächste Update sich so macht - denn ich hab wirklich einiges geändert! Das sieht man auch daran, dass ich nun ein paar Tests weniger hab als vorher, den es ist auch das ein oder andere rausgeflogen :wink:.

Aber bevor ich das Update veröffentliche, werde ich erstmal selber etwas spielen müssen. Hoffentlich hab ich soweit alles gut umgesetzt, dass ich bald eine neue Version rausgeben kann :slight_smile:.

Zwischenfazit:
Ich habe gestern abend auf der Couch noch einige Runden Feature Runner gezockt. Aber mir ist kein Fehlverhalten bisher aufgefallen. Finde ich bis heute abend nichts, dann werde ich Version 1.3. veröffentlichen :slight_smile:

Hatte gestern keine Zeit fürs Release. Ich war gestern nicht mal in der nähe meines Laptops. Von daher gesehen verschiebt sich das Release auf heute abend.

RELEASE IST RAUS!

Es ist soweit. Ich habe Version 1.3 Freigegeben. Die Android-Version wird wie gewohnt nach einiger Zeit freigeschaltet sein und die Win-Version findet Ihr wie immer hier:

https://1drv.ms/u/s!Av4-trM0Vnk9tybTQfqeveVSdVrr

Ich wünsche euch viel Spaß beim Leveln :wink:

So, nun mal ein paar Worte zum letzten Update :slight_smile:.

Die Änderungen sind sehr krass - ich weiß. Das Feature-konzept habe ich so wie es da war komplett entfernt. Dabei bin ich auch eben die angesprochenen Tests losgeworden. Denn das ganze umfasste:

  • Einzelne FeatureModels
  • FeaturePersistenceModel (wie der Name schon sagt: wird verwendet zum persistieren und enthielt im wesentlichen nur eine Liste der IDs gekaufter Features)
  • FeatureService (+ Tests)
  • FeatureController (hat gesteuert ob eine Komponente angezeigt wird oder nicht)
  • Unity3D-View (von dem hab ich voller stolz vor kurzem noch ein Screenshot gepostet. Hat sich also nicht lange im Projekt gehalten ^^).

Das maximal Level ist derzeit 7 und darauf sind auch alle bisher erwerblichen Features verteilt. Momentan geplant ist dieses mit dem nächsten Update auf 9 zu erhöhen. Level 8 & 9 sollen Skills bringen, die ihr leveln könnt (Sprunghöhe & Decrease Speed).

Letztendlich glaube ich damit einen Weg gefunden zu haben, welcher dafür sorgt, dass Münzen nicht so schnell an Wert verlieren. Und zudem soll es anreiz schaffen, das Spiel länger zu spielen.

Ich hoffe euch gefällt die Änderung :slight_smile:.

Das ist doch dein Spiel oder? :open_mouth:

Ne und dummerweise ist die Idee eine bessere als meine^^. Gut möglich, dass noch mehrere Spiele umgesetzt werden, die von den Assets hier meinem gleichen. Denn ich hab dieses Paket hier verwendet:

https://assetstore.unity.com/packages/2d/environments/free-platform-game-assets-85838

So. Hab heute auch wieder ein wenig was machen können. Bin gerade wie gesagt an den Skills dran und arbeite an der UI wo man das diese sehen & upgraden kann. Im wesentlichen steht das UI-Design auch schon - es muss aber noch ausprogrammiert werden. So muss ich für die Anzeige neue Komponenten schreiben, testen und mit der Logik verzahnen. Momentan bin ich bei ben ersten zwei Punkten (schreiben & testen) :slight_smile:.

Und die Assets gibt es nicht nur im Unity Asset Store sondern auch auf diversen anderen Seiten kostenlos. Meist relativ weit oben im Ranking. :smiley:
Ich glaube das ist sogar das offizielle Spiel zu dem Paket. Sehr ähnlich zu dem von Tomate_Salat’s Feature Runner, aber technisch… äh… naja… äh… ausgereifter.

Ja, stimmt - auf anderen Seiten hab ich das auch schon gefunden gehabt. Nur meine Version davon (noch ohne Jahreszeiten) stammt halt ausm Unity-Store :wink: .

Ich kenne das Spiel jetzt nicht - aber ausgereifter als Feature Runner zu sein ist jetzt nicht die Herausforderung. Letztendlich ist es ja als „kleines Lernprojekt“ gestartet um Erfahrungen im 2d-Bereich zu sammeln. Hätte nicht gedacht, dass es ein Projekt über Monate wird (bin ja schon fast bei 4 Monaten Entwicklungszeit! Und dabei arbeite ich wirklich fast täglich daran!). Aber die Erfahrungen die ich bisher sammeln konnte waren Gold wert. Ich hab ja einiges über Unity, Spielearchitektur und Projektmanagement gelernt.

Glaubt mir: Spiel 2 werde ich anders starten als Feature Runner. So Sachen wie hacknplan für meine Aufgaben und TDD werden direkt zu beginn an zu meinen festen Werkzeugen gehören. Auch hab ich mittlerweile durch die vielen refactorings endlich eine Architektur gefunden, die mir zusagt und (in ähnlicher Form) auch von Studios so eingesetzt wird (welche ganz gute Erfahrungen damit gemacht haben und die haben sicherlich größere Spiele als ich ^^). Außerdem ist es das erste private Projekt wo ich mir vorab wirklich Gedanken über einzelne Tasks und Aufgaben mache. Es gab Abende wo ich nichts anderes gemacht habe als mein Backlog und Milestone-Planung aufzuräumen. Tasks zu öffnen und brainstorming zu betreiben. Und seit kurzem schreibe ich diese auch mehr in Form einer User-Story (bekannt aus Scrum :stuck_out_tongue:).

Also was mich betrifft, hat das Spiel auf jeden Fall sein Soll erfüllt. Denn ich hab unglaublich viel dabei gelernt! Jetzt gilt es halt, dieses noch zu einem Abschluss zu bringen und dann bin ich gespannt, wenn ich mein 2tes Spiele-Projekt mal starten kann :slight_smile:.

Das ist sehr gut :wink: Diese schreibe ich auch immer. Damit sind alle Aspekte des (Scrum-)Projektmanagements vervollständigt…

Offtopic: Ich weiß immer nicht, ob es bei Dir sarkastisch ist, aber zur Vollständigkeit: User Stories sind kein Muss für Scrum. Sie sind auch nicht Scrum-Only. Sie sind nur ein „Best Practice“ :smiley: