Kann man das XTC Kampfsystem entscheidend verbessern?

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

Cronos988
Posts: 691
Joined: Mon, 27. Aug 07, 12:34
x3tc

Post by Cronos988 »

Hey,

Erstmal Danke für die vielen Beiträge wieder, ist schön dass es doch einige Leute gibt die hier Raum und Bedarf für Verbesserungen sehen und sich beteiligen.

Die Diskussion ging ja hier bisher in zwei Richtungen, zum einen wurden viele gute Vorschläge gemacht, wie man mit den Waffen und Schiffstats die Balance korrigieren kann, zum anderen haben wir über Skripte diskutiert.

Ich möchte nur noch einmal kurz darlegen, warum ich der Meinung bin, dass wir beides, nämlich neue Skripte und neue Stats, brauchen.

Ich habe mir dazu ein kleines Beispiel überlegt: Angenommen wir erstellen ein Schiff, dass Speziell zur Vernichtung anderer GKS dient. Wir geben diesem Schiff eine neue Waffe, die gegen große Ziele vernichtent ist, gegen kleine aber viel zu ungenau und zu energieaufwendig. Dann lassen wir dieses Schiff gegen eine gemischte KI-Flotte antreten:

1. Mit Ego-KI: Das Schiff wird auf alles feuern, was in der Nähe ist, egal ob M5 oder M2. Dabei verbraucht das Schiff viel zu viel Waffenenergie und Zeit für kleinere Gegner, und wird höchstwahrscheinlich verlieren.
2. Mir MARS: Das Schiff wird zuerst nur auf Gegner schießen, die es auch trifft. Dabei konzentriert es sich notwendigerweise zunächst auf die größten Ziele. Erst wenn die vernichtet sind, geht es an die schwer zu treffenden Jäger, die dann ja kaum mehr eine Gefahr sind. So könnte das Schiff gewinnen.

Wir haben hier eine Balance-Entscheidung, die ohne entsprechende Skripte verpufft. Genauso verhält es sich mit kleineren Schiffen auch. Man kann viele Spezialschiffe erstellen. Doch ohne der KI auch beizubringen, die Spezialschiffe effektiv zu nutzen, sind diese sinnlos.

Ohne überarbeitung der EGO-KI bleibt man mit der Balance innerhalb bestimmter Randwerte gefangen. Die EGO-KI verlangt bestimmte Eigenschaften an einer Waffe, die man nicht sinnvoll abändern kann. So braucht die Ego-KI immer eine gewisse Feuerrate, um genug Treffer zu erzielen, der Energieverbrauch muss vergleichsweise niedrig sein etc. Wie wichtig bestimmte Eigenschaftsmuster sind, zeigt sich zum Beispiel schön am CMod.

Ich kann innerhalb dieser Rahmenbedingungen zwar Waffen erstellen, die besser gegen Jäger sind als andere, oder Waffen die gegen GKS etwas mehr Schaden verursachen, aber eben keine Waffen die speziell gegen M6 gut sind oder die nur gegen Jäger funktionieren.

Damit ist es mit unmöglich, allen Schiffen sinnvolle funktionen zu geben. Ich kann einem M4 noch so effektive Waffen geben, wenn es den feindlichen M3-Bomber mit anti-M6 Waffen frontal anfliegt stirbt es. Ich kann einem M5 spezielle stats für ein Sniper-Schiff geben, aber es wird trotzdem irgendwann zu nah rankommen. Ich kann Paraniden einen Splitterbomben-Werfer geben der als Shotgun funktioniert und ihnen entsprechende Wendigkeit etc. geben. Wenn ich ihnen aber nicht beibringe, ihr Ziel von Hinten anzugreifen, werden sie nie treffen.

Der KI den Gebrauch spezialisierter Waffen zu ermöglichen, ist meiner Meinung nach das wichtigste, was ein verbessertes Kampfscript erreichen muss.

So, jetzt zu den Details:
UniTrader wrote: mehr wäre der ja nicht.. und wenn [THIS] aufhören soll mit schiessen dann startet man einfach auf demselben Task das return.null -Script
-> das einzige was somit dabei mehr rechenzeit verbraten würde wären die Projektile, die zusätzlich herum fliegen..
muss das Feuerkommando für Turret 0 nicht auf Task 0 laufen? Nicht wegen der Tasknummer sondern weil das Schiff bei dem Kommando auch z.B. den Kurs hält.
UniTrader wrote: Punkt "in gute Position manövrieren" -> könnte man das nicht mit nem kurzzeitigem "Follow Ship" lösen, wenn [THIS] gerade in keiner günstigen Schussposition ist und [TARGET] sich gerade auf jemand anderes konzentriert? denn der Spieler geht ja so gesehen mit einer solchen situation auch nicht anders um..
Follow ship ist kein besonders gutes Kommando für Kampfsituationen, es lässt sich nämlich nur ungern überschreiben oder abbrechen, wenn ich mich recht erinnere. Jedenfalls macht Follow ship meines Wissens auch nix anderes, als die kürzeste Strecke zum Ziel zu fliegen und ordnet sich erst dann neben oder hinter dem Ziel ein. Da hat Attack run on Target den gleichen effekt.
UniTrader wrote: Punkt Signale:
mit dem Cheat hast du meiner meinung nach unrecht - man gibt der KI mit sowas lediglich einen Überblick über die Gesamtsituation, die der Spieler eh hätte.. (ausserdem ist es ja einfach zu prüfen, ob der Pilot eine chance hätte die Schüsse zu sehen oder nicht..) und die Aussagekraft ist sicher in einem ähnlichen bereich wie die Sache mit den Vektoren.. (bezüglich des Attack runs: wenn dieser nur statt findet, wenn das Ziel wirklich getroffen werden KANN dann sind diese auch deutlich gerader, weil ja nur kleinere korrekturen nötig sind damit [TARGET] weiter im Fadenkreuz bleibt, statt dass das Schiff komplett herum gerissen werden muss weil [TARGET] gerade direkt an der Schiffsschnauze vorbei geschossen ist..)
Angriffe nur bei 100%iger Trefferwahrscheinlichkeit zu fliegen ist ineffektiv, und bei geringeren Werten kann es durchaus zu Kurven kommen. Opportunistisches Feuer darf man auch nicht unterschätzen, dass mach meinen Beobachtungen zufolge gerade in Massenschlachten schon einiges aus.
Ein Problem, dass ich bei SIgnalen sehe ist die Bedrohungserfassung: EIn M3 soll ja nicht vor einem M5 mit ISE ausweichen, sondern nur dann, wenn der Feind auch wirklich ne Gefahr darstellt. Und wie erfasst man, wann die Bedrohung wieder aufhört, soll heißen wie teile ich dem Zielschiff mit, dass ich wieder abgedreht habe?
UniTrader wrote: @Chronos
bezüglich Angriff: es macht einen Unterschied, ob man gerade Ziel von jemandem ist oder ob jemand gerade auf einen feuert.. zweiteres kann man ohne SIGNAL nur ziemlich performancelastig lösen (besonders wenn meherere potenzielle [ATTACKER] geprüft werden müssten), was ja sicher nicht ziel der sache ist... und gegen GKS ist diese prüfung sowieso sinnfrei, weil (bereits über umwege) nur erfassbar ist, OB ein schiff bereits feuert, aber die frage ist mit welchem Turret.. und plötzlich Ausweichen obwohl keine Schüsse angeflogen kommen hätte nicht viel Stil..

bezüglich des "Weiteren Problems": hier muss man zwischen 1 vs 1 und Massenschlacht differenzieren... meine bisherigen Gedanken gelten lediglich einer Massenschlacht, wo so ziemlich jeder auf jeden feuert und das [TARGET] NICHT gleichzeitig der [ATTACKER] ist.. in diesem fall ist nämlich ein völlig anderes verhalten nötig..
Solange der Angreifer ein Jäger ist, sehe ich da kein Problem. Wenn der mich im Ziel hat, weiche ich aus, egal, ob er schon auf mich schießt oder nicht. Wenn ein Gegner dich genau im Fadenkreuz hat, dann willst du nicht warten bis die Kugel schon auf dich zufliegt.

Bei GKS sehe ich das Problem schon eher. Nur weil das Geschütz feuern könnte, heißt das nicht dass es das auch tut, immerhin könnte es gerade mit einem anderen Feind beschäftigt sein (Situation Jägerkampf zwischen GKS). Wie man das ohne Signal hinkriegt, weiß ich ehrlich gesagt gerade nicht.

1 v 1 Kämpfe zwischen Jägern sind viel unproblematischer als Massenschlachten, da stimme ich dir zu. Es feuert aber auch bei Massenschlachten nicht "jeder auf jeden", sondern ein Jäger verfolgt sein Ziel solange, bis es vernichtet wurde oder er vom Skript ein anderes Ziel zugewiesen bekommt. Opportunistisches Feuer kommt natürlich dazu. Aber gerade wenn viele Feinde in der Nähe sind, ist es wichtig effektiv anzugreifen, denn ein Angriffsflug ist immer sehr riskant, weil man ja möglichst geradeausfliegt.
Wirklich koordinierte Staffelmanöver, um einen Feind mit mehreren Schiffen gleichzeitig zu beharken, sind natürlich ein riesen Aufwand. Aber wenn zumindest jeder Jäger für sich einen effektiven Angriffswinkel sucht, ist ja schon viel getan.
skylinedr
Posts: 1011
Joined: Wed, 30. Nov 05, 12:09
x4

Post by skylinedr »

Interessante Gedanken hast du da, ich stimme weitgehend zu. Wie bereits diskutiert bringen sinnvollere Stats schon gute Verbesserungen in die Fights. Doch hinsichtlich des Manövrierens bin ich nach wie vor skeptisch.

Ich greife mal nen 1vs1 zwischen zwei M4 ohne Heckkanzel als Beispiel raus. Vielleicht ist noch was bei den Geschwindigkeiten machbar. Plötzliche Beschleunigung des [TARGET] geht nicht, weil die Ego-Schiffe immer mit Maximalspeed fliegen, Antrieb abschalten und Schiff wenden um im "Rückwärtsflug" den [ATTACKER] zu beschießen geht auch nicht, weil der Rückwärtsflug auf 10m/s beschränkt ist. Bleibt noch plötzliches Bremsen, um den [ATTACKER] vorbeiziehen zu lassen und unter Feuer zu nehmen. Die Grenzen hisichtlich des Flugverhaltens sind leider sehr streng gesteckt.

Wenn du mal Scripte fertig hast die beim Jägerfight was bewirken könnten würd ich die sehr gern testen, vielleicht als Kampfsoftware MK3 oder MK4 gebastelt.
Ich mag den Gedanken einer "Spukhaften Fernwirkung" nicht. - A.Einstein
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Cronos988 wrote:1. Mit Ego-KI: Das Schiff wird auf alles feuern, was in der Nähe ist, egal ob M5 oder M2. Dabei verbraucht das Schiff viel zu viel Waffenenergie und Zeit für kleinere Gegner, und wird höchstwahrscheinlich verlieren.
2. Mir MARS: Das Schiff wird zuerst nur auf Gegner schießen, die es auch trifft. Dabei konzentriert es sich notwendigerweise zunächst auf die größten Ziele. Erst wenn die vernichtet sind, geht es an die schwer zu treffenden Jäger, die dann ja kaum mehr eine Gefahr sind. So könnte das Schiff gewinnen.
Missile Defense Mk2 macht sowas auch schon - allerdings nur eine ganz primitive Version.
Wenn eingebauter Laser > 20000 Schildschaden UND Reichweite > 4000, dann guck erstma ob da ein Dickschiff rumfliegt.


muss das Feuerkommando für Turret 0 nicht auf Task 0 laufen? Nicht wegen der Tasknummer sondern weil das Schiff bei dem Kommando auch z.B. den Kurs hält.
Nö.
Ich meine aber, daß bei FireFree aus dem Task 0 script, das Ziel in ein Array gepackt werden sollte.
Der Fire task sieht dann grob gesagt so aus:

$Shutdown = ($playtime) + 10
While $Fire.Free.Array[$turret.ID] and $Shutdown > $Playtime
fire lasers $turret.ID at Fire.Free.Array[$turret.ID]
$playtime = playtime
end

So räumt sich das Script selber auf. Braucht halt noch einen timeout, damit es sich nach X sec garantiert beendet. Das Task 0 Script kann ja schließlich mal beendet werden. =)
Follow ship ist kein besonders gutes Kommando für Kampfsituationen, es lässt sich nämlich nur ungern überschreiben oder abbrechen, wenn ich mich recht erinnere. Jedenfalls macht Follow ship meines Wissens auch nix anderes, als die kürzeste Strecke zum Ziel zu fliegen und ordnet sich erst dann neben oder hinter dem Ziel ein. Da hat Attack run on Target den gleichen effekt.
Follow benutzt die Formationseinstellungen des Zielschiffs - wenn überhaupt.

Attack run arbeitet halt mit einer unangenehm hohen Frequenz sobald FireFree gegeben ist so daß man aufpassen muß, daß nicht jedesmal das komplette Script durchgeackert wird.

Follow ist in der Tat schwieriger zu kontrollieren, läßt sich aber problemlos beenden durch einen Task0 interrupt mit Follow [THIS], 1 ms.
Problematisch ist dabei nur, daß man die "taktische Logik" komplett in einen anderen Task auslagern muß.
Die MARS Drohnen funktionieren übrigens so. Die "Logik" läuft auf 17046 und hat so ihr ganz eigenes Timing. Task0 wird nur überschrieben mit wasauchimmer gerade gebraucht wird.
Das eigentliche "Kampfscript" auf Task 0 ist eine übelst vereinfachte Version des ES Kampfscripts und kann nichts anderes als Attack Run.

Ein Problem, dass ich bei SIgnalen sehe ist die Bedrohungserfassung: EIn M3 soll ja nicht vor einem M5 mit ISE ausweichen, sondern nur dann, wenn der Feind auch wirklich ne Gefahr darstellt. Und wie erfasst man, wann die Bedrohung wieder aufhört, soll heißen wie teile ich dem Zielschiff mit, dass ich wieder abgedreht habe?
Vielleicht... gar nicht?
Sich darauf zu verlassen würde nämlich bedeuten, sich darauf zu verlassen, daß das Task0 Script des Angreifers nicht überschrieben wird UND daß der Angreifer überhaupt noch existiert, wenn er mir das mitteilen sollte.
Das sind schon mal mindestens 2 WENN zuviel. Klappt also langfristig nicht.

Warum also kein diffuses System, daß auf die allgemeine Gefährdung reagiert und sowohl einzelne als auch multiple Angreifer korrekt bewertet?

Eigentlich simpel. Wenn Angreifer auf Ziel feuert, dann addiert er seine "laser strength in turret" zu einer local var des Ziels.
Das Ziel halbiert diesen Wert regelmäßig, sagen wir 1x pro Sekunde. (geht aber nicht so genau)

- Wenn ein sehr starkes Schiff auf das Ziel schießt oder mit sehr starken (pro Schuß) Lasern: hohe Bedrohung wird addiert.

- Wenn 5 M4 auf das Ziel schießen: hohe kollektive Bedrohung.

- Wenn die Schiffe aufhören, auf Ziel zu feuern (aus welchem Grund auch immer), dann reduziert sich der Wert ganz fix.

Den Wert, der addiert wird, kann man natürlich noch verfeinern durch Zielgröße und Geschoßflugzeit. Damit werden dann nur wahrscheinliche Bedrohungen bewertet. Komplexer sollte es aber nicht sein.

Das ist natürlich nur ein System. Ich will nicht sagen, daß /2 genau der ideale Wert ist...
Allerdings ist es ein sehr betriebssicheres System, da es nicht an bestimmte Scripts, Angreifer, oder wasauchimmer gebunden ist.
Das Script kann auch jederzeit neu gestartet werden und ist nicht darauf angewiesen, daß ein Overmind das ganze orchestriert.
Innerhalb von 1-2 Sekunden nach dem Neustart ist die Bedrohung wieder erfasst.

Und 1x pro Sekunde einen Wert halbieren - das ist nun wirklich nicht performancelastig.

Die Wahrscheinlichkeit, daß ein so abstraktes System funktioniert, ist viel höher als bei einem, daß auf bestimmte Signale und Kommunikationsprotokolle angewiesen ist und jedes einzelne erhaltene Signal laufend auf "noch gültig" prüfen muß - oder überhaupt "unwichtige" Signale verwerfen muß. Letzteres bedeutet nämlich, daß ein "Comm Log" (array) abgearbeitet werden muß, da sonst ja Signale verlorengehen würden. Viel zuviel Verwaltungsaufwand. Das klappt nie.
MARS benutzt so ein System um mit turrets "Schilde angreifen" zu können.
Es spielt dabei überhaupt keine Rolle, wieviele Schiffe mit wievielen turrets welcher Art das Ziel angreifen. Die geschätzten Schadenswerte laufen alle auf dem Zielschiff auf einer local var zusammen und die Angreifer können so koordinieren, wieviel sie noch feuern dürfen ohne das Ziel zu zerstören. Ist im Prinzip genau das Selbe - nur andersrum.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

Cronos988 wrote:
UniTrader wrote: mehr wäre der ja nicht.. und wenn [THIS] aufhören soll mit schiessen dann startet man einfach auf demselben Task das return.null -Script
-> das einzige was somit dabei mehr rechenzeit verbraten würde wären die Projektile, die zusätzlich herum fliegen..
muss das Feuerkommando für Turret 0 nicht auf Task 0 laufen? Nicht wegen der Tasknummer sondern weil das Schiff bei dem Kommando auch z.B. den Kurs hält.
nö, der Task ist so ziemlich schnuppe so lange man beim Feuerbefehl den richtigen Turret angibt.. nur das abbrechen desselbigen kann der Spieler nicht durchführen, wenn es nicht im bereich bestimmter Tasks ist (also 0-6 und 10, 11 kann der Spieler bei Schiffen über die Kommandokonsole beenden, der rest kann nur per Script gekillt werden..)
UniTrader wrote: Punkt "in gute Position manövrieren" -> könnte man das nicht mit nem kurzzeitigem "Follow Ship" lösen, wenn [THIS] gerade in keiner günstigen Schussposition ist und [TARGET] sich gerade auf jemand anderes konzentriert? denn der Spieler geht ja so gesehen mit einer solchen situation auch nicht anders um..
Follow ship ist kein besonders gutes Kommando für Kampfsituationen, es lässt sich nämlich nur ungern überschreiben oder abbrechen, wenn ich mich recht erinnere. Jedenfalls macht Follow ship meines Wissens auch nix anderes, als die kürzeste Strecke zum Ziel zu fliegen und ordnet sich erst dann neben oder hinter dem Ziel ein. Da hat Attack run on Target den gleichen effekt.
schon möglich, hab mich nie mit dem punkt auseinander gesetzt ^^'' nen attack run wäre an der stelle dan sinnvoller - nur ohne dass dabei die Kondensatoren leer geballert werden :D
UniTrader wrote: Punkt Signale:
mit dem Cheat hast du meiner meinung nach unrecht - man gibt der KI mit sowas lediglich einen Überblick über die Gesamtsituation, die der Spieler eh hätte.. (ausserdem ist es ja einfach zu prüfen, ob der Pilot eine chance hätte die Schüsse zu sehen oder nicht..) und die Aussagekraft ist sicher in einem ähnlichen bereich wie die Sache mit den Vektoren.. (bezüglich des Attack runs: wenn dieser nur statt findet, wenn das Ziel wirklich getroffen werden KANN dann sind diese auch deutlich gerader, weil ja nur kleinere korrekturen nötig sind damit [TARGET] weiter im Fadenkreuz bleibt, statt dass das Schiff komplett herum gerissen werden muss weil [TARGET] gerade direkt an der Schiffsschnauze vorbei geschossen ist..)
Angriffe nur bei 100%iger Trefferwahrscheinlichkeit zu fliegen ist ineffektiv, und bei geringeren Werten kann es durchaus zu Kurven kommen. Opportunistisches Feuer darf man auch nicht unterschätzen, dass mach meinen Beobachtungen zufolge gerade in Massenschlachten schon einiges aus.
Angriffsflüge bei 0%iger Trefferwarscheinlichkeit ist aber sinnfrei.. und genau auf die hab ich mich bezogen.. (wie gesagt: wenn das Ziel getroffen werden KANN :roll: ) -> wenn der KI dazu noch beigebracht wird die volle Schussrate der Laser zu nutzen verschwendet ein solches Manöver zudem noch unnötig Energie und ein kurz darauf folgender Angriffsflug könnte trotz optimaler bedingunen ins leere gehen, weil die Energie fehlt..
Ein Problem, dass ich bei SIgnalen sehe ist die Bedrohungserfassung: EIn M3 soll ja nicht vor einem M5 mit ISE ausweichen, sondern nur dann, wenn der Feind auch wirklich ne Gefahr darstellt. Und wie erfasst man, wann die Bedrohung wieder aufhört, soll heißen wie teile ich dem Zielschiff mit, dass ich wieder abgedreht habe?
ich denke du missverstehst hier was ich mit ausweichen meine: ich beziehe mich da auf die leuchtenden Projektile, die aud einen zugeflogen kommen.. nicht auf die Schiffe, denn Scripte für Kamikaze-Manöver gibt es ja noch nicht.. (wäre aber ne idee :D ) deswegen ist ne Mitteilung wann der Angriffsflug beendet ist auch unnötig: wenn der Angriffsflug beginnt und der Pilot das mit bekommt wird ein Haken geschlagen und dann weiter gemacht, wo man aufgehört hat.. denn länger als 2 sekunden am stück feuert ja niemand im Kampf Jäger -> Jäger oder?? :D
und was da angeflogen kommt kann man dem Signal ja als Argument übergeben.. und das Signalscript wertet dann für sich den Bedrohungsstatus aus.. beispiel für M3:
Angriff mit ISE -> Ignorieren
Angriff mit PBK -> wenn gerade im Angriffsflug auf jemanden Ingnorieren, sonst ausweichen
Angriff mit EPW und grösser -> Ausweichen
UniTrader wrote: @Chronos
bezüglich Angriff: es macht einen Unterschied, ob man gerade Ziel von jemandem ist oder ob jemand gerade auf einen feuert.. zweiteres kann man ohne SIGNAL nur ziemlich performancelastig lösen (besonders wenn meherere potenzielle [ATTACKER] geprüft werden müssten), was ja sicher nicht ziel der sache ist... und gegen GKS ist diese prüfung sowieso sinnfrei, weil (bereits über umwege) nur erfassbar ist, OB ein schiff bereits feuert, aber die frage ist mit welchem Turret.. und plötzlich Ausweichen obwohl keine Schüsse angeflogen kommen hätte nicht viel Stil..

bezüglich des "Weiteren Problems": hier muss man zwischen 1 vs 1 und Massenschlacht differenzieren... meine bisherigen Gedanken gelten lediglich einer Massenschlacht, wo so ziemlich jeder auf jeden feuert und das [TARGET] NICHT gleichzeitig der [ATTACKER] ist.. in diesem fall ist nämlich ein völlig anderes verhalten nötig..
Solange der Angreifer ein Jäger ist, sehe ich da kein Problem. Wenn der mich im Ziel hat, weiche ich aus, egal, ob er schon auf mich schießt oder nicht. Wenn ein Gegner dich genau im Fadenkreuz hat, dann willst du nicht warten bis die Kugel schon auf dich zufliegt.
sicher dass du das siehst? im Kampf wirst du doch sicher mehr auf die grünen/blauen Projektile achten als auf die Ausrichtung des gegnerschiffes im roten Rahmen (der NICHT dein aktuelles Ziel ist) oder? (und ausserdem: nur weil jemand gerade genau auf dein Schiff sieht wirst du doch keinen Haken schlagen um nicht getroffen zu werden oder? :D )
1 v 1 Kämpfe zwischen Jägern sind viel unproblematischer als Massenschlachten, da stimme ich dir zu. Es feuert aber auch bei Massenschlachten nicht "jeder auf jeden", sondern ein Jäger verfolgt sein Ziel solange, bis es vernichtet wurde oder er vom Skript ein anderes Ziel zugewiesen bekommt. Opportunistisches Feuer kommt natürlich dazu. Aber gerade wenn viele Feinde in der Nähe sind, ist es wichtig effektiv anzugreifen, denn ein Angriffsflug ist immer sehr riskant, weil man ja möglichst geradeausfliegt.
komplizierter vielleicht nicht.. nur eben anders.. in ner Massenschlacht gibt es sowas wie Zielauswahl usw. - in nem 1 vs 1 entfällt das aber dafür sollte sich mehr darauf konzentriert werden, was der Gegner macht.. ausserdem sind hier folge-manöver öfter und ausführlicher erlaubt, weil man da ja nicht getroffen werden kann wenn der Gegner nix unternimmt.. (ausser der Gegner hat ne Kanzel..), in ner Massenschlacht dagegen wäre das tödlich weil jemand anderes diesen längeren Geradeausflug nutzen kann..
Wirklich koordinierte Staffelmanöver, um einen Feind mit mehreren Schiffen gleichzeitig zu beharken, sind natürlich ein riesen Aufwand.
na ja, soo kompliziert wäre es warscheinlich auch nicht..
meine idee dazu wäre jedem am Kampf beteiligtem Schiff nen Array zu übergeben, in dem sämtliche zu bekämpfenden Feinde nach Priorität sortiert gespeichert sind (Priorität richtet sich nach Gefährlichkeit für die Staffel und nach Gefährlichkeit der Staffel für den Gegner..)
wenn nach neuen Zielen gesucht wird dann werden nicht die Feinde in der nähe abgefragt sondern eben dieses Array nacheinander durchgegangen.. und ne Lokale Var auf dem Zielschiff verhindert, dass sich zu viele Schiffe auf dasselbe Ziel stürzen..
Aber wenn zumindest jeder Jäger für sich einen effektiven Angriffswinkel sucht, ist ja schon viel getan.
es würde schon reichen einen sinnfreien Angriffsflug zu vermeiden denke ich ^^


PS und wir sollten und auf einige gemeinsame Nenner einigen.. sonst reden wir öfter aneinander vorbei..
-> wer gegen wen? (also jäger vs. jäger allgemein, leichter vs. schwerer Jäger, schwerer vs. leichter Jäger, Jäger vs. Mittlere Schiffe, Jäger vs. GKS usw. -> leichter/schwerer Jäger ist hier relativ zu verstehen, sprich M5 vs. M4 und M4 vs. M3 sind beides kämpfe leicht vs. schwer..)
-> Massenschlacht gleicher/ähnlicher, 1 vs 1 oder many vs. 1 (viele Jäger gegen ein GKS ^^)
-> Vor-kampfverhalten (z.B. bewertung der Gegnerstärke, um die richtige Taktiv zu finden oder die Flucht zu ergreifen),Allgemeines Kampfverhalten (Gegnerwahl, Gegnerwechsel, Staffelangriff etc.) oder Spezielles Kampfverhalten (also einzelne Aktionen im Kampf wie Angriffsflug oder Ausweichflug; bewegt sich idr. im rahmen von 1-3s)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

UniTrader wrote:
Wirklich koordinierte Staffelmanöver, um einen Feind mit mehreren Schiffen gleichzeitig zu beharken, sind natürlich ein riesen Aufwand.
na ja, soo kompliziert wäre es warscheinlich auch nicht..
meine idee dazu wäre jedem am Kampf beteiligtem Schiff nen Array zu übergeben, in dem sämtliche zu bekämpfenden Feinde nach Priorität sortiert gespeichert sind (Priorität richtet sich nach Gefährlichkeit für die Staffel und nach Gefährlichkeit der Staffel für den Gegner..)
wenn nach neuen Zielen gesucht wird dann werden nicht die Feinde in der nähe abgefragt sondern eben dieses Array nacheinander durchgegangen.. und ne Lokale Var auf dem Zielschiff verhindert, dass sich zu viele Schiffe auf dasselbe Ziel stürzen..
Das sehe ich aber gar nicht als Hauptproblem bei X3 Jägern. Es ist der Interrupt durch Signal.Attacked.
Dadurch wird sämtliche Organisation über Bord geworfen sobald der Jäger von irgendetwas getroffen wurde.

Deshalb splittert sich jeder Angriff (bei mehreren Jägern auf beiden Seiten) automatisch in viele Einzelkämpfe auf.

Deshalb ist es so schwer, seinen Jägern die Rückkehr zu befehlen. Durch den nächsten Treffer wird der Jäger sofort wieder zum Gegenangriff überredet.

Beim NICE script hatte ich mal eine Funktion eingebaut, um Jägern per Hotkey eine Liste von Angriffszielen zu befehlen.
(das Script hatte nur leider andere Probleme)
Die haben sie dann der Reihe nach abgearbeitet ohne sich durch irgendwas ablenken zu lassen.
Ist eine Änderung von einem Byte...
Dann kann auch der ganze tolle Staffelkram funktionieren.

Der Interrupt sollte auch gar nicht abgeschafft werden. Er ist sinnvoll und sollte auch vom Staffelführer interpretiert werden - aber nicht von jedem einzelnen Schiff.
Der Führer einer Staffel M8 sollte z.B. nicht erlauben, daß seine Schäfchen den Angriff auf das Dickschiff abbrechen und statt dessen lieber mit den 20 Kampfdrohnen spielen.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”