Tagebuch: Tower Defense

Guter Punkt, eventuell die Möglichkeit bieten, Lebensbalken anzuzeigen. Per Button oder so an und abschaltbar

Das kommt definitiv. War mir für das MVP nicht wichtig genug, deswegen befindet der sich noch im Backlog ^^.

Ich hab mal meine Aufgaben geordnet. Für Version 0.2 hatte ich geplant, dass kosten eingeführt werden. Da ich damit schon angefangen hab, würde ich auch damit erstmal weiter machen.

Aber Version 0.2.1 dreht sich dann mit Priorität um das Feedback was bisher schon gekommen ist. 0.2.1 wird dann also Hauptsächlich ein Bugfix-Release. Momentan schaut das dann auch so aus:

image

Hier ist auch an Tags gut zu sehen, welche Tasks aus dem Forum kommen. Das einzige was nicht drin ist [sofern ich nix überlesen hab], ist der Punkt mit den Lebensbalken. Die würde ich glaub eher für Version 0.3 (frühestens) anpeilen.

Ok, konnte gerade unerwartet den Bug verifizieren:

Es ist kein Anzeigefehler. Wie man rechts sehen kann erkennt er die 3 Minions, aber updated warum auch immer nicht das Target.

Das dürfte ziemlich genau das Verhalten sein, was Ihr gemeldet habt.

So. Mir war dann auch relativ schnell klar, wo der Fehler lag. Schaut soweit alles gut aus. Also wird der eine Bugfix schon mit 0.2 kommen anstatt erst mit 0.2.1

Hey, wir sind hier immerhin in einem Programmierforum, raus mit der Sprache, woran lag es? Erleuchte die Nachwelt :smiley:

Schonmal dran gedacht, dass ich das so allgemein gehalten hab weil peinlich dummer Fehler? Hast du? Hast du? … NA GUUUT.

Ich hatte das Ziel brav geupdated, sobald ein Minion den Trigger-Collider (die Grüne Sphere aufm Bild) verlässt. Jeder Tower registriet sich sogar selber bei jedem Minion um zu erfahren, wann er stirbt. Nur dieses eine winzige Detail hab ich vergessen zu nutzen, um das nächste Ziel in der Liste auszuwählen :roll_eyes:

Edit Fix vergessen zu erwähnen: Aber solch einfache Dinge haben immerhin einen Vorteil - sie sind einfach zu fixen :stuck_out_tongue:. Um jetzt absolut sicher zu gehen, prüfe ich in der Update-Methode (wird 1x pro Frame aufgerufen) ob es ein aktuelles Target gibt. Ist dem nicht so, dann wähle ich das nächste in der Liste aus (sofern vorhanden).

War aber tatsächlich etwas mehr coding nötig als einfach nur ein target == null. Rider hat mir angemeckert, dass so ein Vergleich auf ein GameObjekt in Untiy wohl recht teuer ist. Und ausgerechnet in der Update-Methode möchte ich solche natürlich gerne vermeiden. Dementsprechend hab ich ein der Klasse neues boolean-Feld spendiert welches beim setzen vom Target geupdatet wird. Der Vergleich ist günstiger und sollte keinen Performance-impact haben.

So. Nun geht es in die Testphase für “Türme kosten Geld”. Bei dem ganzen ist mir im übrigen noch ein Bug bei dem Geschoss aufgefallen. Derzeit wird es ab und an fälschlicherweise getriggert. Da ich aber vllt heute noch ein Release hinbekommen könnte, hab ich den fix für v.0.2.1 geplant.

Ansonsten hier mal wieder ein Video vom aktuellen Stand:

Ok. Hab mal meine Aufgaben neu durchgeplant. Eigentlich wollte ich für das nächste Release die Funktion drin haben, dass man Türme verkaufen kann. Hab mich aber dagegen entschieden. Das wird Teil von v0.3. Denn um Türme verkaufen zu können, brauchen diese auch ein Kontext-Menü. Und wenn man sich überlegt, welche Aktionen da drin sein sollen, dann kommt wohl mit als erstes der Gedanke an Upgrades. Demenetsprechend hab ich daraus einfach ein eigenes Release geplant.

Also schaut meine Roadmap gerade so aus:

v0.2: Geld & Kosten
v0.2.1: Bugfixes und kleine Verbesserungen
v0.3: Turmmenü & Upgrades

So. Die neue Version ist eingereicht. Spätestens heute abend sollte das ganze dann im Playstore zum Download bereit stehen :slight_smile:


Edit: Ok - sollte bereits zum Download bereit stehen =)

Bin gerade dran einzubauen, dass Minions jetzt auch wirklich zwischen zwei Towern durchlaufen können. Und es schaut soweit ganz gut aus. Zum Vergleich (Die blaue Fläche ist „walkable“):

vorher:
image

nachher
image

Jetzt kommt der Minion auch durch, ohne eine Rakete zünden zu müssen:

War alles ohne Code lösbar. Hat zwar etwas gedauert, bis ich die richtige Stellschraube gefunden hatte - aber jetzt passts :slight_smile:

Puh und ich dachte erst, das ganze könnte ich nicht einbauen. Denn auf einmal spawnte das Minion geschoss schon zu anfang - auch wenn noch kein Turm platziert wurde. Hat wohl aber mit einem anderen Bug zu tun gehabt, welcher aber auch bereits auf meiner Todo-liste stand.

Vermutung: Der Minion befindet sich in der Luft - kein Weg ist frei: Booom. Jetzt hab ich eingebaut, dass der Minion 10 Frames lang keinen Weg haben darf bevor das Geschoss gespawnt wird. Das behebt das Problem :slight_smile:

Mh bei mir standen sie relativ lange rum, bis das Geschoss kam

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…