Tagebuch: Industry City

Coole Sache. Ich hab jetzt das hier:

image

Vereinfacht in eine Klasse. War es Leid jedes mal eine eigene Abstraktion für zu schreiben und hab das ganze neu aufgesetzt. Jetzt hab ich eine generische Lösung mit coolem Editor:

image

Die einzelnen Felder werden von oben nach unten Sichtbar - eben mit jedem Schritt den ich unternehme. Dadurch ist es ziemlcih idiotensicher. Das schöne: die Properties die ich unter Target angezeigt bekomme werden gefiltert, sodass nur Properties angezeigt werden, die auch zur Datenquelle passen :slight_smile:.

Jetzt kann ich wirklich ALLES mit ALLEM binden und brauch dafür nur noch eine Komponente. Überlege ob ich das vielleicht sogar im UnityStore bereit stelle.

Und wieder zahlt es sich aus, dass ich mir vorher so viel Gedanken gemacht habe. Letztendlich besteht meiner Vorarbeit ja nur aus Ideen und einem Workflow-Diagramm. Da ich nun zum Dashboard komme hatte ich ehrlich gesagt kurz so einen “Scheiße, was mach ich damit überhaupt?”-Gedanken. Meine Vorarbeit hat mir jetzt schon mal gut geholfen. Denn zum einen weiß ich, wie die Navigation von hier ausschaut und zum anderen hatte ich mir ein klein Wenig Gedanken gemacht, was ich für Infos anzeigen könnte. Das ganze hatte ich mir Stichpunktartig in den Design-Task gepackt und mit Draw.io etwas gezaubert:

Zum Anfang wird es auch bewusst erstmal so minimal gehalten. Aber damit ließ sich dann gut weiterarbeiten. Denn ich konnte jetzt zu jedem Punkt hier eine kleine Aufgabe erfassen die später angehe.

Und so schaut mein Board dann „fertig“ aus:

Wie Ihr seht: einiges hab ich schon geschafft bekommen. Zudem waren hier auch noch Aufgaben aus dem Backlog mit drin, dann gibt es auch Aufgaben die on-the-fly kommen (#85-Hintergrundmusik) und natürlich Aufgaben die mir das Leben erleichtern sollen, aber jetzt so erstmal keinen Code für das Spiel generieren (letzte Aufgabe unter dem Punkt planning).

Alles in allem versuche ich meine Aufgaben möglichst klein zu halten. Also wirklich: sehr sehr klein. Schon alleine aus dem Grund, weil es mir Spaß macht die zu verschieben und Aktivität auf dem Board zu sehen. Das motiviert.

Neben der Aufgabengröße überlege ich mir auch immer, wie wichtig dieser Task jetzt tatsächlich für die erste Version des Spiels ist. Ich möchte so schnell wie Möglich eine spielbare Version haben - dementsprechend kann ich nicht von Anfang an alles Umsetzen was mir im Kopf rumschwirrt. Z.B.: Wenn man auf Continue klickt, dann ändert sich auch die Hintergrundmusik. Dabei wird der Titel einfach hart geändert (Titel A stoppt, Titel B startet). Diesen Übergang könnte man sicherlich etwas weicher gestalten. Aber ist das wirklich wichtig für die erste Version (v0.1?). Richtig: Nein ist es nicht. Dementsprechend wird dafür ein Task angelegt, welcher dann im Backlog verschwindet. Das gehe ich regelmäßig durch und bewerte meine Tasks immer wieder neu. Damit stelle ich sicher, dass kein Task unter geht :slight_smile:.

Der Dashboard-Meilenstein bläht sich ziemlich auf muss ich sagen ^^. Aber ich komme voran. Bisher schaut es so aus:

(Das Industry City oben ist der Firmenname. Ähnelt gerade nur “zufällig” dem Namen des Spiels^^). Aber alles andere sind derzeit noch Dummy-Daten.

Btw. möchte ich an der Stelle noch eine Sache betonen: Man wird sich auch in der Beta DSGVO-Konform schützen können (via Opt-Out). Da ich wohl trotzdem noch Analyse-Daten bekomme (nach der Austragung anonym!) muss ich persönlich da keinerlei Abstriche machen. Zudem hab ich eine Möglichkeit gefunden, wie ich das sammeln der persönlichen Daten wohl auch ohne Opt-Out einschränken kann:

Analytics.limitUserTracking = true;

Das befindet sich auch schon im Code (derzeit im GameManager). Auch wenn es das Sammeln der persönlichen Daten defaultmäßig wohl nicht aus schaltet - so reduziere ich es an der Stelle auf jeden Fall mal.

Die verschiedenen Textarten sehen ziemlich passend aus. :slight_smile:

Dann kann ich dich ja direkt mal auf den Prüfstand stellen: Mit Bezug auf den Artikel 15 und Artikel 17 der EU-DSGVO, möchte ich ein Auszug aller meiner von dir gesammelten persönlichen Daten, sowie eine Löschung dieser Daten beantragen :smiley:
Scherz beiseite, aber sowas könnte natürlich trotzdem kommen.

Kein Problem TMII. Nur Unity sammelt Daten und ich verwende ein Plugin von denen für die DSGVO. Damit kommst du auf eine Seite von denen wo du deine Daten anfragen lassen und auch eine Löschung verlangen kannst. Die Löschung ist wohl eine Mischung aus Löschung und Anonymisierung.

So. Aufgrund des Umzugs weiß ich nicht wieviel ich hier in den nächsten Tagen an Zeit in die Spieleentwicklung stecken kann. Kann gut sein, dass gar nix. Werd mich jetzt auch direkt aufmachen zum Schrank, der abgeschlagen werden will ^^.

Hab heute in der Mittagspause mal etwas am Spiel weitergearbeitet (eine Kleinigkeit). Nämlich, dass man seinen „Kontostand“ sehen kann. Und das schöne daran war, dass es komplett ohne eine Zeile Code möglich war. Alles durch 3 Komponenten auf einem GameObject realisiert:

  1. Objekt: Text-Komponente: Kümmert sich logischerweise um das Anzeigen und Formatieren vom Text.
  2. Objekt: MoneyText-Komponente: Setzt voraus das eine Text-Komponente da ist. Dann nimmt diese einen Betrag entgegen und definiert die genauere Formatierung. Zum einen setzt es das Währungssymbol und das Tausender-Trennzeichen zum anderen ändert es noch TextFarbe.
  3. Objekt: DataBinding: Da musste ich dann einfach nur noch meine Komponenten lustig reinziehen. Als Quelle logischerweise den Spielstand#Geld und als Ziel das MoneyText#Amount.

So einfach kanns gehen :stuck_out_tongue:.

Über den Udemy-Kurs den ich damals angefangen hatte um Spieleentwicklung zu lernen bin ich in eine Community gekommen - mit anderen Kursleuten und Lehrern. Dreht sich also alles um Unity3d. Die haben jetzt auch eine Plattform hochgezogen unter anderem mit Blog. Und dort hab ich jetzt gestern abend noch 2 Artikel reingestellt:

https://gamedevhq.com/user/47-tomate-salat/

Hab auch noch ein paar Sachen über die ich schreiben möchte :slight_smile:.

Hab mal wieder etwas Zeit mit 3D-Modellierung verbracht und das hier zustande bekommen:

Ist jetzt aus Blender heraus. Bin aber ganz zufrieden damit. Ja, ich weiß - weiter oben hatte ich schonmal ein komplettes Haus gepostet - aber darum geht es nicht ^^. Hier geht es mehr um die „einfache Texturierung“. Ich hab jetzt besser raus wie ich mit Shadern arbeite um Glanzeffekte - und hier noch zusätzlich Glaseffekte erzeugen kann.

Keine Ahnung warum Blender da Artefakte reingerechnet hat - aber bei Bild 2 sieht man den Glas-Effekt besser :slight_smile:.

So hab heute mal wieder am Code weiter machen können :slight_smile:. Was ich so hauptsächlich die letzte Zeit gemacht habe, war mir Gedanken um die Datenhaltung zu machen. Ich denke, früher oder später wird es notwendig sein, eine Datenbank zu haben. Dafür hab ich schon recherchiert und werde LiteDB verwenden. Schaut ganz nett aus =).

Ansonsten hab ich heute viel an meiner internen Datenstruktur gearbeitet und das alles ein wenig besser nun gegliedert.

Spielerisch gibt es auch ein neues Feature - etwas was ich bei Feature Runner nicht hatte: SaveGames haben eine Versionsnummer. Und da werde ich es so halten, wie ich es von anderen EarlyAccess Titeln her auch kenne:

  1. Schauen, dass von Version zu Version SaveGames kompatibel sind
  2. Wenn nicht: Pech gehabt. Ist ja immerhin EarlyAccess.

Grund dafür ist auch sehr einfach: Noch bevor Feature Runner damals „offiziell“ released wurde, gab es schon zu viel Legacy Code. Einfach weil ich alte Datenformate migriert habe um einen Spielstandverlust zu vermeiden. Was nett erscheint ist aber an und für sich eine ziemlich hässliche Sache. Denn Sie bringt kosten mit sich:

  1. Zeit: Das muss natürlich erstmal programmiert werden. Und dann auch irgendwie getestet. Im worst-case muss dass auch nach und nach weiter angepasst werden, wenn sich das Format weiter ändert
  2. Risiko: Alles was man schreibt kann bugs enthalten. Eine fehlerhafte Migrierung kann natürlich auch für unschöne Seiteneffekte sorgen. Werden diese Reportet, muss man sich darum kümmern. Also kostet das dann auch wieder Zeit.
  3. Unnötiger Code: Man weiß nie, wie lange man diesen Code supporten muss.

Letzteres wäre sicherlich mit Monitoring zu lösen, da es nur Android als Plattform und den Play-Store zur Verteilung geben wird. Aber dann bleiben noch immer die ersten beiden Punkte.

So. Ich habe heute tatsächlich einiges geschafft bekommen und bin kurz davor das Dashboard abzuschließen (vorerst :stuck_out_tongue:). Neu ist das Popup-menü:

Wenn nicht noch bugs/ideen auftauchen, dann fehlen mir nur noch 2 Aufgaben damit ich den Meilenstein zum Abschluss bringen kann :slight_smile:.

Eben noch schnell einen (für die erste version nicht wichtigen) Bug erfasst und aus neugier mal auf meine Statistik geschaut:

image

Das Projekt hat schon 77 abgeschlossene Tasks :slight_smile:. Und da werden noch etliche dazu kommen (wie gesagt: viele Ideen sind noch im Backlog und diese werden alle noch einige Tasks mit sich bringen).

Und wenn ich das so sehe überlege ich mir tatsächlich - ob es nicht interessant wäre die Aufgabe mit Punkten zu schätzen. Denn momentan mach ich sowas „ähnliches“. Kleine Tasks erhalten von mir einen Tag „Kleiner Task“.

So - das Dashboard hätte ich soweit mal fertig (vorerst). Es geht weiter mit dem Baumenü. Meine Mockup-Grafik sieht dabei so aus:

Und ja: ich will mich an eigenen 3D-Modellen für versuchen :slight_smile:. Begonnen hab ich jetzt mal mit dem Produktionsgebäude. Ich möchte es mir relativ simpel halten und dachte dabei an sowas wie ein „Feld“ wo etwas wachsen könnte. Das Wachstum versuche ich mit Partikeln ein wenig zu „simulieren“.

Um mich damit etwas wohler zu fühlen, habe ich mal ein Testprojekt erstellt und mir alles so Szene gesetzt, wie ich mir das in etwa vorstellen kann:

Hab jetzt mal weiter mit 3D rumgespielt. Es ist eher Zufall, dass dabei was rausgekommen ist, was wohl eher in ein Horror-Genre reinpassen würde. Aber ich hab einen “Gegner” designed mit richtig “tollem” Blutfluss:

Schon mal viel besser als “Agony”…

Kenne ich jetzt nicht. Aber ich sag trotzdem mal danke :smiley:. Auch wenn ichs nicht gebrauchen kann für Industry City, so find ichs doch (für meine Verhältnisse) ganz gut. Momentan bau ich gerade das 3D-Modell für die Fabriken und ich bin jetzt schon MEGA ZUFRIEDEN damit:

image

Es braucht halt noch Materialien und Texturen. Aber im wesentlichen war es doch sehr einfach zu bauen :slight_smile:. Und das schöne: Die Schornsteine werden auch mit Partikeleffekten glänzen können :stuck_out_tongue:.

Und das ganze texturiert:

Und hier das ganze in Action :smiley::

Respekt! …

1 „Gefällt mir“