Tagebuch: Tower Defense

War das vor oder nach dem Update?

Das war davor. Das Update kann ich mir erst heute Nachmittag anschauen :smiley:

Ok seltsam. Ja mal schauen ob ich das damit vielleicht ausversehen gelöst habe. Generell will ich das System nochmal überarbeiten, weil es potentielle Schwächen hat.

Z.B.: Man könnte einen Boss am Rande der Map fest setzen. Der Schuss würde den ja niemals befreien können. Von daher gesehen müssen Minions wohl doch angreifen können. Und dann weiß ich nicht, ob der Schuss überhaupt noch Sinn macht — oder ich den erste später aktiviere um die Schwierigkeit zu erhöhen (oder als Bestrafung, wenn jemand zu oft zu baut). Ka - das muss ich mir noch überlegen.

Die Minions laufen ja immer noch nicht zwischen den Türmen durch. Wird bei der Wegfindung Rücksicht auf die Größe vs Breite genommen?

Also zwischen den Türmen können die durchlaufen. Ob die es auch tun, dass muss ich mir nochmal genauer anschauen.

Da die Wegfindung von Unity3D kommt, kann ich dazu leider wenig sagen.

Zwei Sachen die mir aufgefallen sind. 1 ich hab es irgendwie geschafft einen Turm in den Bergen zu bauen. Der Turm ist einfach rot und schießt nicht, aber er er geht auch nicht weg

  1. Und ich weiß nicht warum bei dieser Anordnung die rote Kanone spawnt, da ja ein Weg zum Ziel frei ist und keiner meiner Türme von der Kanone getroffen wird.
1 „Gefällt mir“

Iewie verstehe ich diesen Satz nicht. A Du hast den roten Turm in den Bergen gebaut, dann kann dieser nicht spawnen. B Damit sei nicht der rote Turm gemeint, dann verstehe ich nicht, wieso es zwei rote Türme/Kanonen/Objekte gibt…

Ooooha

Iwas ist da kaputt gegangen und eigentlich dachte ich, ich hätte einen funktionierenden Test dafür (muss ich nochmal Nachschauen).

Das sollte natürlich nicht sein. Und das die nicht schießen ist einfach erklärt: Die Kanone wird erst bei der Platzierung aktiv geschaltet. Ansonsten würden die auch während des Platzierens schon auf Minions schießen.

Mit Kanone meinte ich oben das
“Miniongeschoss” das den Weg frei schießt. Warum wurde das bei diesem Setup oben agefeuert?

Kommt davon, wenn ich mitm Handy antworte - da vergess ich die Hälfte ^^.

Was das angeht … ja, das ist in der Tat eine gute Frage! Ich hatte schon Fehlzündungen beobachtet gehabt, dachte aber das behoben zu haben durch die 10Frames puffer. (Meine Vermutung war: eine neue Wegberechnung würde stellenweise länger als einen Frame dauern was zu dem Fehlverhalten führt. Scheint aber wohl nicht der einzige Grund gewesen zu sein).

Edit: Ok - verzeiht mir, es ist noch früh am Morgen. Die 10 Frames puffer sind ja noch gar nicht released ^^. Ich werde das ganze mal testen indem ich versuch,dein Setup nachzubauen. Danke für den Screenshot, der wird helfen. Und damit ichs nicht vergessen, hab ich das Ticket entsprechend erweitert und zurück in Test geschoben:

Ok - es war i.d.T. noch nicht komplett gelöst. Ich hab die Prüfung jetzt so geschaltet, dass sie am Ende des Frames statt findet. Zuvor konnte ich das Problem nachstellen - nun nicht mehr. Und ich würde sagen, mein Test-Setup war schon sehr “aggressiv”:

Ich hoffe inständig - es jetzt damit wirklich gelöst zu haben.

Und das Problem mit den „unnützen roten Towern“ war recht einfach zu fixen.

Also, die Tower werden anhand von einem Prefab (Sowas wie eine Blaupause) erstellt. Also es werden einfach Klone von dem Prefab erstellt und in der Welt platziert. Zuvor hatte ich als Referenz ein „GameObject“ erwartet. Das hatte ich erhöht auf „Tower“. Wenn ich das Objekt jetzt aber zerstören möchte, dann muss ich das GameObject zerstören. Dementsprechend musste aus:

Destroy(tower)
ein
Destroy(tower.gameObject)

werden. Nur so verschwindet es wirklich aus der Szene. Das ganze ist jetzt aber auch durch einen Test abgesichert :slight_smile:.

(Der spezielle Fall war zuvor tatsächlich nicht abgedeckt gewesen)

Da ich die momentanen Bugs als ziemlich nervig empfinde hab ich eben das nächste Update in den Playstore eingereicht. Eigentlich war für Release 0.2.1 noch geplant, dass man Minions nicht mehr trappen kann. Aber das halte ich momentan für noch nicht so tragisch - weswegen ich das in v0.3 verschoben hab.

Komme hier in letzter Zeit zu kaum was - Priorität liegt Grad woanders. Unsre Häsin geht es nicht so gut und wir müssen sie seit Mi zwangsernähren. Und dazu noch eine Antibiotika Spritze, eine mit Schmerzmittel und eine zum Hunger anregen. Und Lola mag keine einzige davon. War dafür auch mi, do und heute morgen beim Tierarzt wegen ihr. Immerhin ist sie auf dem Weg zur Besserung. Dienstag muss ich nochmal mit ihr hin und hoffe das sie fit ist und wir dann alles absetzten können.

Ich kann euch sagen: die Zwangsernährung ist echt unschön. Ich hasse es, sie tut mir auch unglaublich leid - aber es muss halt leider sein.

Ich hab heute mal wieder ein klein wenig Zeit für mein Spiel gefunden. Mir ist aufgefallen, dass es sehr stark laggt, wenn man einen Tower platziert (gut zu sehen, wenn Minions unterwegs sind). Problem hierbei ist das NavMesh (welches Informationen zum begehbaren Bereich enthält).

Gelöst hab ich das ganze dadurch, dass ich einen neuen Update-mechanismus nutze. Ich Update nun wirklich und baue nicht komplett neu. Zudem passiert das ganze asynchron.

Scheint das Problem perfekt zu gelöst zu haben. Und der neue Weg wird nach wie vor schnell genug berechnet, sodass der Nutzer von der asynchronität nichts mitbekommen sollte :slight_smile:.

Hab mich die letzten Tage mal etwas mit Styling in Unity3D auseinander gesetzt. Leider ist Unity3D was das angeht sehr … erbärmlich.

Zuerst wollte ich gerne sowas wie CSS verwenden. Von Haus aus kein Support und die libs die ich gefunden hab, haben nicht wirklich funktioniert (und scheinen zudem noch überaus komplex).

Das nächste was ich gefunden hab, war USS - was von Unity kommt und so ähnlich wie css sein soll. Hat aber wohl mit UXML zu tun, was noch experimentell ist. Und die komplette UI auf einem experimentellen System aufzubauen … das klingt doch sehr abschreckend für mich.

Also denk ich mir: SVG.

SVG hat ja nur 19+ Jahre auf dem Buckel. Das sollte doch kein Problem sein.

image

Unglaublich oder? Aber hier riskiere ich es. Das Plugin (was offiziell von Unity kommt) schaut mir doch schon relativ weit aus. Und zur Not sollte es kein Problem sein die svgs ins pngs zu konvertieren.

Immerhin, jetzt kann ich so einfache Sachen wie das hier darstellen:

image

Und svg ist wirklich nicht kompliziert. Einfache grafiken bekommt man auch super ohne Grafikprogramm hin:

Und um ehrlich zu sein: das würde ich mit einem Grafikprogramm vermutlich nicht hinbekommen ^^. Von daher gesehen ist SVG echt ein super Sache für mich :slight_smile:

Bin heute bisher schon zu relativ viel gekommen. Ich hab jetzt das kontext menü ziemlich fertig was das aussehen & verhalten angeht. Als nächstes muss ich die Logik umsetzen. Außerdem hab ich die SVGs nun global angewandt.

Hier mal ein kurzes Video zur Menüanimation:

Und jetzt funktioniert auch alles wunderbar im Zusammenspiel mit den Towern:

:slight_smile:

… UUUUUND ich konnte gerade meine Tests etwas beschleunigen :slight_smile: + stabiler machen. Nämlich in dem ich mal alle erstellten Objekte hinter mir wieder aufräume. Gerade bei den Integrationstest könnte das halt dummerweise schnell zu false-positives führen (weswegen 2-3 Tests schon von sich aus aufgeräumt hatten).

Jetzt gibt es aber mal eine Basis-Klasse, welche das out-of-the-box im TearDown macht :slight_smile:.

Hacknplan ist seit über einer Stunde im Wartungsmodus und das find ich kacke (komme ja so nicht an meine Tasks ran -.-).

Hab aber gestern abend noch die Selektierung sehr weit gebracht und heute morgen dann entsprechend erweitert. Man sieht jetzt wirklich, welchen Tower man ausgewählt hat + auch dessen Ziel:

Außerdem überlege ich die Kamera näher zu positionieren. Momentan erscheint dir mir als etwas zu weit weg.