Ich weiß natürlich nicht wie die Strukturen im Programm aussehen, aber wenn sie so aussehen, wie ich mir das vorstelle, dann wäre das in einer modernen Sprache ein Einzeiler. In einer Sprache wie C oder C++ (schätze mal damit werden die Spiele größtenteils programmiert) wären es dann 3-5 Zeilen.
^^
Jeder Suchalgorithmus in einer Liste ist länger als 3 Zeilen. ^^
Du musst berücksichtigen, dass es sich hier um einen komplexen Code mit einer Engine handelt, wo man viele Dinge berücksichtigen muss. Alleine die Exceptions wären schon mindestens 5 Zeilen. Exceptions sind für Fehlerbehandlungen. Es ist realisierbar, keine Frage. Jedoch ist KI ein sehr komplexes Thema. Du kannst dir als Mensch zwar sehr abstrakt sowas vorstellen, wie "wähle alles im Zielgebiet aus", aber im Programmcode ist alleine dieser Vorgang schon komplizierter. Du sagst dem PC nicht einfach, wähle alles aus. Für den PC muss dass irgendwie verständlich geschrieben sein. Die Einheiten sind wahrscheinlich Punkte in einem drei oder vier Dimensionalen Raum, dessen Positionen ständig neu berechnet werden.
Dementsprechend muss der Algorithmus dafür auch programmiert werden, der überprüft, welche Einheiten befinden sich denn jetzt noch im Zielgebiet und das natürlich in dem System dieser Engine. Ich habe da keine konkrete Vorstellung von, aber ich weiß, dass es wesentlich mehr als 5 Zeilen Code sind sowas einzubauen.
Könnte man ja mal nach googln. ^^ Vielleicht findet man da was.
Naja, wenn ich einen Storm ins Leere setze werde ich dadurch bestraft, dass ich Energie verschwende. Das ist ja nach deinen Kriterien noch im Bereich der "Neutralität".
Die Kosten, die man beim Treffen einer Einheit hat, berechnet sich ja nach deren HP und dem Faktor. D.h. die fixen Kosten von 10 (subject to balance) Kosten sind nur beim Nichttreffen gegeben.
Wenn man trifft sind die Kosten aber immer höher als wenn man nicht trifft.
Das ist noch ok so.
Ja und? Nicht jede Einheit und Fertigkeit muss gegen jede Rasse nützlich sein. Ich habe z.B. selten einen Firebat im TvT gesehen.
Das ist richtig.
Das verstehe ich nicht. Wieso ist da ein Zufall im Spiel. Hier mal ein möglicher Algorithmus.
Es ging mir dabei darum, dass du selbst nicht entscheiden kannst, welche Einheit getroffen wird. Zum Beispiel ist es nicht möglich eine Drohne auszuwählen. Wenn ein Zergling und ein Ultralisk nebeneinander stehen, dann wird der Zergling ausgewählt.
Ich als Spieler hätte aber gerne die Kontrolle darüber was getroffen wird. Ich möchte zum Beispiel den Ultralisk auswählen, aber das ist unmöglich. Das schränkt die Kontrolle des Spielers ein und das will man nicht. Mit dem Mutalisk kannst du den Ultralisk als Ziel direkt auswählen. Bei deiner Mechanik ist das unmöglich. Deswegen sagte ich auch Zufallsgenerator zum töten von einer Einheit.
Ob man trifft hängt nicht alleine von der Fähigkeit des Spielers ab.
Beim Psi-sturm machst du sofort an der Stelle Schaden wo du ihn wirkst. Wieviel mehr Schaden du machst, hängt vom Gegner ab. Das ist ok.
Bei deiner Mechanik ist es so, dass man zwar das Ziel wählen kann, aber wenn der Feind das Zielgebiet sieht, was hoffentlich der Fall ist, dann hat er sehr gute Chance dem zu entkommen. Für Pros soll es kein Problem sein in 2 sek. Reapergranaten auszuweichen. Also wird es bei deiner Mechanik auch kein Problem sein in 2 sek. alle Einheiten rauszuschicken oder ein Zergling rein. Dieser Umstand alleine macht die Fähigkeit nicht schlecht. Sondern der zweite Umstand in Kombination mit dem ersten Umstand macht die Fähigkeit meiner Meinung nach schlecht. Und zwar das du dann die Einheit mit den wenigsten HP triffst. Das ergibt eine hiraische Struktur der Effektivität gegen verschiedene Einheiten. Ultralisken können z. B. so gut wie nie das Ziel sein, entseiden sie sind alleine das Ziel. Die Einheiten werden der HP nach absteigend sortiert und demnach wäre ein Zergling, den man sehr oft sieht, immer das Ziel, obwohl der Infestor daneben eigentlich viel gefährlicher ist. Bei den Protoss ist es genau so. Man möchte z. B. den Immortal tot haben, weil es strategisch klug wäre ihn auszuschalten und man möchte nicht den Berserker daneben töten. Dies passiert bei deiner Mechanik einfach. Dementsprechend hat man keine taktische raffines dahinter, sondern es ist ehr ein "Zufallsalgorithmus" um eine "schwache" Einheit zu töten. Welche Einheit, liegt nicht in deinem Ermessen, weswegen diese Mechanik taktisch unschön ist.
Um es nochmal ein bisschen krasser zu formulieren. Wenn man theoretisch davon ausgeht, dass immer alle Einheitentypen im Zielgebiet vorhanden sind, dann ist deine Fähigkeit nur gegen genau 3 Einheiten effektiv(Zergling/Baneling, schwächste Einheit bei Terra, schwächste Einheit bei Protoss). Da ist übrigens wieder ein Sonderfall, der im Programmcode beachtet werden muss, da Zergling und Baneling exakt gleich viel HP haben. Gegen den Rest bringt es nichts und das ist ein bisschen wenig. Deine Fähigkeit wird gegen mehr Einheit effektiv, so mehr Kombinationen auftreten. leider wissen wir selbst wie z. B. beim ZvZ, dass da 3 Einheitentypen auftauchen. Zergling, Muta und Terror. Welcher wird wohl getroffen? ^^ Daher ist diese Fähigkeit auch zu berechnend.
Naja, beides macht Schaden und kommt von Oben. Aber da hören die Gemeinsamkeiten auch schon auf.
Die Atombombe kostet z.B. Ressourcen (und 8 Supply!), der Sniper nur Energie.
Die Atombombe macht AE-Schaden, der Sniper tötet nur eine Einheit.
Die Atombombe braucht einen Ghost um sie abzufeuern, den Laser kann man überall einsetzen.
Genau. Und folgende zwei Punkte machen diese Fähigkeit unfähr.
Die Atombombe kostet z.B. Ressourcen (und 8 Supply!), der Sniper
nur Energie.
Die Atombombe braucht einen Ghost um sie abzufeuern, den Laser kann man
überall einsetzen.
Ohne es direkt aufhalten zu können. Man kann weglaufen, aber bei einer Fähigkeit die auf eine unendliche Distanz Schaden macht ist das zu wenig. Jedenfalls meiner Meinung nach.