Tagebuch: Industry City


#21

Was im übrigen auch toll am Workflow-Diagramm ist: es ist wie ein Fortschrittsbalken :slight_smile:.

Ich arbeite mich vom Startpunkt an einfach den Pfeilen nach durch und sehe dann auch was erledigt ist und was nicht. Dementsprechend “markiere” ich mir auch meine Fortschritte im Diagramm. Allerdings sehr einfach gehalten indem ich den entsprechenden Punkten einfach einen Schatten zuweis:

Alles was einen Schatten hat ist bereits erledigt - oder Teil des nächsten Milestones. An der Stelle noch ein paar Worte zu den Farben: die markieren mir bestimmte Bereiche vom Spiel. So ist alles was Grau ist Teil des Hauptmenüs. Manche Punkte haben einen Verlauf (indem Fall Grau<–>Weiß). Das symbolisiert dann die Aktion die einen Übergang von einem Bereich in den anderen ermöglicht. Und wie Ihr sehen könnt: der Bereich für das Hauptmenü ist nun fast komplett abgedeckt :slight_smile:.

Und das schöne: Dadurch, dass ich eine sehr lose Kopplung habe ist auch tatsächlich schon teilweise die Aktion “Spiel fortsetzen” implementiert. Das Spiel feuert schon jetzt das richtige Event ab. Bedeutet: Das Hauptmenü tut (evtl) schon alles notwendige. Ich muss lediglich nur noch das Event konsumieren.


#22

Hab heute mal wieder mit Blender rumgespielt. Ein wenig Erfahrung hab ich damit ja schon gemacht und einfache Dinge bekomme ich hin:

Vielleicht kann ich meine Ressourcen-Dateien echt selber designen :slight_smile:.

Muss ja keine High-End-Grafik werden und matschiges Texturieren bekomme ich auch grad noch so hin :smiley:.


#23

Hab heute mal weiter mit Blender rumgespielt und mal fokus drauf gelegt mit wiederverwertbarem zu arbeiten. Also konkret: Ich hab ein Haus gebaut und Fenster und Tür sind eigene 3D-models die zum Haus angefügt wurden.

In Unity3D schaut das Ergebnis dann so aus:

image

Wie oben: sehr minimalistisch und sehr detailarm. Aber ich ich find das hat was. Irgendwie erinnert es mich an Figuren von Brettspielen. Z.B. Monopoly. Die waren einfarbig - hatten eine einfache Form und es hat funktioniert.

Keine Ahnung ob ich das Haus jemals brauchen werde - aber es hat Spaß gemacht es zu bauen ^^. Mal gespannt was noch so alles auf mich zukommt :stuck_out_tongue:


#24

Hallo Tomate…, verzeih die Frage, wie hast du das mit dem Licht/Beluchtungsmodell gemacht, weil das ist ja jetzt schon ambient, diffus (und specular)… wenn ich das richtig sehe. :slight_smile:


#25

@CyborgBeta Das ist eine ganz normale per Vertex Beleuchtung über die Normalen.
(Wahrscheinlich in Blender geschossen)


#26

gegossen?

Dankö für deine Antwort. :smiley:

(Ach so, ein Schnappschuss aus Blender meintest du. :man_facepalming: )


#27

Alles falsch. Blender export in fbx. Das Ding in Unity gepackt und zwei Spotlights platziert und ein wenig mit dem Material rumgespielt. Und mit dem Snipping Tool hab ich einen Screenshot vom Ausschnitt gemacht. Fertig :wink:

Irgendwelche tollen Effekte kommen out-of-the-box-powered-by-unity3d.


#28

So. Mal etwas zum aktuellen Stand. Momentan ist abgeschlossen:

  • Haupmenü
  • Einstellungen
  • Hintergrundmusik fürs Hauptmenü

Als nächstes kommt also die Firmengründung.

Dafür brauche ich aber ein paar Models. Zum einen muss ich rudimentär Städte beschreiben können zum anderen brauche ich schon sowas wie ein “Savegame-File”. Eine Idee wie die Ansichten zum erstellen der Firma ausschaut hab ich auch schon in Form von Mockups :slight_smile:.


#29

Gerade eben mal getestet ob ich wirklich alles Notwendige eingecheckt hab. Und tatsächlich - scheint alles da zu sein :slight_smile: und nix ist gebrochen.

Ich glaube es war kein fehler auf Git gesetzt zu haben anstelle von dem scheiß Collaborate


#30

Git ist rein technisch gesehen top, nur die Bedienung lässt manchmal jegliche Logik vermissen (jedenfalls, wenn man sich nicht mit dem zugrundeliegenden Urschleim auseinandersetzen will). Aber dafür gibt es Tools.


#31

Ich arbeite nur sehr wenig mit Git auf der Kommandozeile. Vieles geht viel einfacher aus Rider heraus. Und es ist einfach viel angenehmer und besser als Collaborate. Wenn ich das gebraucht hatte, hatte es mich immer bitter enttäuscht. Vor allem find ichs kacke, dass man dort keine branches hat. Auch wenn ich diese für private Projekte eher seltener verwende - so manches mal hätte ich mir diese dann doch gewünscht gehabt.

Ach und was noch hinzu kommt: du hast keinen gescheiten DIFF-View mit Collaborate - generell ist die Übersicht eher schlecht gemacht. Man hat nur ein kleines Fenster mit einer Liste an geänderten Dateien. Will man ein Diff sehen, dann braucht man ein externes Tool dafür.

Weitere Nachteil: keine Integration in die Rider-IDE. Rider und Git arbeiten sehr gut zusammen. Aber mit Collaborate arbeitest du in Rider so als ob du gar keine Versionierung dahinter hast. Zum commiten von Source Code musst du dann auch immer wieder in Unity wechseln.

Auch wenn ich zu Projektstart etwas sorge hatte, dass ich möglicherweise Probleme mit Git bekommen könnte, so hat sich das nicht bewahrheitet. Und jetzt bin ich tierisch froh gewechselt zu sein. Vor allem hab ich einen weiteren Vorteil: ich kann frei bestimmen wo meine Sourcen liegen (derzeit bei gitlab). Aber dank git kann ich ja jederzeit umziehen auf z.B. bitbucket oder irgendwann möglicherweise mal einen eigenen Server.


#32

Ja und das ist wirklich nicht zu unterschätzen!
Kleine Anekdote:
Auf Arbeit hatten wir das Problem, dass der alte Server wo git lief, den Geist aufgegeben hat (hatte ja aber das Repository lokal). Dann wir uns ein BitBucket Server installiert und konnte einfach lokal git sagen er soll alles dorthin pushen (importieren) und siehe da, alles war da wie erhofft


#33

Ich denke die von Unity haben eine gute Absicherung gegen genau solche Fälle - aber man weiß ja trotzdem nie was dort die Zukunft bringt. Theoretisch könnten die auch von heute auf morgen das Ding einstellen oder kostenpflichtig machen. Oder aber einfach den Speicherplatz limitieren sodass ich irgendwann plötzlich nichts mehr pushen kann — zumindest sofern ich nicht für zahlen möchte.

Da gehe ich mit Git einfach viel weniger Gefahr ein. Unity bietet zwar wohl eine Export-Funktion an und möglicherweise bekomme ich sogar alles nach Git migriert (inkl. Historie). Aber man weiß ja nie wie gut das tatsächlich funktioniert. Zumal meiner Erfahrung nach das Collaborate mehr Probleme macht als das es löst.


#34

Noch eine Anekdote:
Eine Firma hatte ihr SVN Repo auf einem uralten, ausgemusterten Prod server, die Daten wurden auf dasselbe Disk Array gespiegelt, als die Platten aufgaben, waren es nur 5 Tage ohne Repo und ca. 30K Euro fuer die Datenrettung um zu erkennen dass Sourcecode doch wichtig ist…


#35

Hab jetzt vermutlich endlich mein Speichersystem richtig umgesetzt :slight_smile: … mithilfe des 2ten Versuchs. Während ich sowas im herkömmlichen Sinne eher als so implementiert hab:

  • Speichern: Schreibt halt die Daten in eine Datei.
  • Laden: Lädt die Daten und füllt ein neues Objekt damit, was dann zurück gegeben wird

Verhält es sich hierbei etwas anders. Speichern bleibt gleich - aber Laden ist mehr ein … Update. Ich erstelle zur Laufzeit praktisch keine neuen Model-Instanzen mehr sondern update nur existierende. Was zugegeben eine krasse Umstellung von meinen bisherigen Projekten war. Denn privat hatte ich mir eine ganze Zeit lang intensiver React, Redux & Spring Boot angeschaut gehabt. Und gerade bei Redux sind Immutables Pflicht. Wohingegen Immutables bei meiner Unity3D-Architektur die reinste Pest wären.


#36

Hier mal ein bisschen Einblick in was schon geht :slight_smile::


#37

Und gerade gemerkt, dass ich vorhin einen dummen Fehler gemacht hab. Ich hatte mein Städte-definition mit ins Savegame gepackt. Das spiel zu spielen hätte diese auch angepasst und damit hätte man eine einfache Möglichkeit gehabt ein neues Spiel mit vielen Resourcen zu starten.

Nun hab ich es so umgebaut, dass er die Werte aus den Städtedefinitionen in das SaveGame kopiert und von dann an nur noch damit arbeiten wird.


#38

So. Bin gerade mit meinem nächsten Milestone fertig geworden. Und wieder voll begeistert von der Architektur. Ich hoffe das schlägt nicht irgendwann um xD.

Hier mal ein Beispiel wie das mit den ScriptableObjects läuft :slight_smile::


Hab jetzt nur ein Problem. Hacknplan ist gerade im Maintanence mode. Ich komm grad nicht an meine Aufgaben dran :frowning:

Sieht aber schon interessant aus, wie dieser das Layout plötzlich hijackt:


#39

So. Nachdem Hacknplan nach ~3h ENDLICH wieder erreichbar wurde konnte ich wieder arbeiten. Die haben das Tool wohl komplett überarbeitet, was ich aber nicht unbedingt gut finde. Aber was solls - muss ich mich dran gewöhnen und dann wirds schon gehen.

Einen Punkt hatte ich in meiner Planung ganz vergessen. Nämlich die tolle DSGVO. Diese findet jetzt auch Ihren Einzug ins Spiel. Nur bin ich mir um ehrlich zu sein noch unsicher, ab wann ich das “Opt-Out”-Verfahren unsterstützen soll. Solange die App unveröffentlicht ist, brauche ich wohl nicht DSGVO-Konform zu sein. Problematisch an der Sache ist halt folgendes:

Ich werde nicht so viele Beta-Tester haben. Tragen die sich aus dem Opt-Out-verfahren aus, dann bekomme ich keine Spieldaten mehr. Mir ist es (wie bei Feature Runner) egal von wem die Daten kommen. Es geht viel mehr darum ein Balancing für das Spiel zu finden. Und ohne die Spieldaten hab ich praktisch nur mich als Referenz.


#40

Hmm. Vielleicht baue ich das Opt-out doch fix ein. Es scheint wohl nur zu beeinflussen, dass Unity Analytics das Spiel optimieren kann. Was ich eh nicht nutze. Mit ein bisschen Glück bekomme ich dann einfach nur anonymisierte Daten zugesendet was für mich im Endeffekt also keinen Unterschied machen würde.