Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› Quellcode / Programmierung —› [Bodeneinsatz-Skripte] Sammlung von Ideen und Konzepten

Autor Mitteilung
verfasst am: 19.06.2006, 20:18
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Im Zusammenhang mit den Überlegungen zum PSI hat mich Azrael666 darauf aufmerksam gemacht, das vieles im Bereich PSI auch über Skripte mit den gleichen Befehlen gelöst werden kann, die sowieso irgendwann für Spezialmissionen nötig werden.

Hier möchte ich jetzt erstmal die Gedanken dazu sammeln, damit man besser abschätzen kann was mit solchen Skripten möglich ist und was nicht.


1.) Man braucht Gegenstände, die Skripte bzw. Skriptevents starten können. Sei es nun für den Schlüssel zur unzerstörbaren Stahltür, für die Kampfdrogen, für PSI-Verstärker oder die Fernsteuerung zum Abschalten der wild gewordenen Fabrikroboter.
Imho am besten wäre ein Gegenstand mit ca. 3 möglichen Skriptzuweisungen, wobei für jedes Skript dann ein anderes Symbol auf der Schaltfläche zum Auslösen steht.
Dies ist weniger um dem Gegenstand mehrere Funktionen zu ermöglichen (obwohl das auch möglich ist), sondern mehr dafür das der Spielsatzersteller die Symbole je nach Funktion zuordnen könnte (das erste Symbol steht immer für hilfreiche Skripte, die Gegenstände wo nur das zweite Symbol genutzt wird machen rums etc.)

2.) Vollständige Einheitenliste (Soldaten, Aliens, sonstige) mit Zugriff auf alle Werte und Daten

2a) insbesondere sollten alle Einheiteneigenschaften paarweise Werte für normal (read only) und aktuell (read/write) haben - der aktuelle Wert beginnt den Einsatz mit dem Normalwert, kann aber beliebig erhöht oder verringert werden und zählt für die Engine als ausschlaggebend.
Natürlich ist das nicht für jede Eigenschaft sinnvoll - aber zum einen dürfte es einfacher sein alle Eigenschaften identisch zu programmieren statt Abfragen einzusetzen welche Eigenschaften vorübergehend manipuliert werden dürfen und welche nicht, und zum anderen kann man je nach Spielsatz von Drogen über PSI bis hin zu fremdartiger Umgebung zig Gründe finden, weshalb eine beliebige Soldateneigenschaft bei einer Spezialmission verändert wird.
Allerdings ist das Zukunftsmusik, die wohl erst bei einer eventuellen Überarbeitung des Einheitenkonzeptes umgesetzt werden wird...

2b) Es sollten mehrere Countdown-Zähler dem Soldaten zugeordnet werden, die jede Runde automatisch herunter gezählt werden bis null.
Einige dieser Zähler könnte man intern schon festlegen wie z.B. auf Zeitdauer Bewußtlosigkeit oder Wirkungsdauer Kampfdroge - aber mindestens 2-3 solcher Zähler sollten auch zur freien Verwendung durch den Spielsatzersteller keine feste Wirkung und auch kein Event bei Null haben (damit alles per Skript gesteuert werden kann).

3.) Events für Rundenanfang jeder Seite, damit z.B. die Auswirkungen der Zähler geprüft werden können und ähnliches.

4.) Zugriff auf Kartendaten
Dies möchte ich noch nicht genauer festlegen, da es wesentlich von der Art der geplanten KI-Scripte abhängen wird welche Zugriffe man braucht. Klar ist auf jeden Fall, das man die Existenz von Objekten überprüfen können muss.

5.) Liste mit erweiterten Hotspots
Man braucht Zugriff auf eine Liste mit allen Hotspots, und die Funktionen der Hotspots müssen über die aktuelle Funktion eines Startpunktes hinaus erweitert werden.
- Hotspot, der ein Skriptevent auslöst sobald er betreten wird
- Hotspot, der nur zur Ziel-Markierung von KI-Befehlen dient
- Hotspots, an denen Einheiten die Karte verlassen können (Soldaten ins Raumschiff, Aliens geben passendes Signal an Skripte)
- Hotspots für Zielpunkte, an denen z.B. Objekte platziert und auf intaktheit geprüft werden können (je nachdem wie das gelöst wird, kann z.B. auch über Registrierung von Objekten ähnlich wie UFOs laufen - dann braucht man keine Hotspots dafür)


6.) Möglichkeit, Gegenstände auf der Karte zu platzieren

7.) Möglichkeit, einen Rangeeffekt auf der Karte auszulösen
(z.B. Hotspot steht für Auslöser einer Mine)

8.) Befehle zur Veränderung der Karte
(z.B. der Gegenstand "Schlüssel" tauscht ein Wand-Tile mit Türgrafik gegen ein echtes Tür-Tile aus)
verfasst am: 19.06.2006, 20:34 · Edited by: azrael666
Registrierdatum: 14.06.2006, 19:44

 Beiträge: 16
Zitat: DirkF
aber mindestens 2-3 solcher Zähler sollten auch zur freien Verwendung durch den Spielsatzersteller keine feste Wirkung und auch kein Event bei Null haben

Man könnte doch auch ein Array machen, dessen größe im Editor angegeben wird. Die Elemente müsste dann noch nichtmal umbedingt als Zähler eingesetzt werden sondern könnte alle Werte beinhalten die der Spielsatzersteller während der Mission dem Soldaten/Alien zuweisen möchte.
Da diese freiverfügbaren "Variablen" dann aber warscheinlich alle vom typ DWORD (unsigned long?) währen, sollte man vielleicht noch ein zweites Array vom typ real (float?) machen.

Spieler.DWORD_Vars[0]--; //Spieler.DWORD_Vars[POISON_COUNTER]--;
Spieler.DWORD_Vars[1]++; //Spieler.DWORD_Vars[ROUNDS_IN_POISONGAS]++;
Alien.DWORD_Vars[0]=true; //Alien.DWORD_Vars[IS_PSI_CONTROLLED]=true;

Solche und andere sachen könnte man dann machen. Aber das ist nur so eine Idee von mir. *hihi*
verfasst am: 19.06.2006, 20:51
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Zitat: azrael666
Man könnte doch auch ein Array machen, dessen größe im Editor angegeben wird

Theoretisch ja - aber die Frage hatten wir schonmal bei Schadenseigenschaften. Und da wurde das dann praktisch verneint.

In Kurzfassung:
Wenn der Editor eine Variable Anzahl von Werten festlegt, steigert dies die Komplexität eines KI-Skriptes für Aliens enorm und macht gleichzeitig die entstehenden KI-Scripte Spielsatz-gebunden (existiert ein Wert in einem anderen Spielsatz nicht genau so, ist das KI-Skript nicht mehr sauber kompatibel).

Damit würde sich dann aber kaum ein Spielsatzersteller mehr die Mühe machen, von der vorgegebenen Anzahl und Funktion abzuweichen, weil er sonst aufwendig eine komplett eigene Alien-KI skripten müsste oder aber die Alien-KI diese Optionen nicht vernünftig planen könnte (d.h. seine Aliens würden schlechter sein)

Und das berücksichtigt noch nicht den deutlich höheren Arbeitsaufwand für Jim...
verfasst am: 19.06.2006, 20:56
Registrierdatum: 14.06.2006, 19:44

 Beiträge: 16
Naja es könnte ja die Standard KI geben, die ohne die Variablen im Benutzerarray arbeitet und dann noch die möglichkeit Spielsatzspezifische KI-Erweiterungen einzufügen. Sowas natürlich nur für ferne Zukunft andenken, weil es wohl wirklich sehr kompliziert werden würde. :o)
verfasst am: 19.06.2006, 21:01
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Zitat: azrael666
weil es wohl wirklich sehr kompliziert werden würde

da fehlt noch das "extrem" und eine reihe weiterer "sehr"'s vor dem "kompliziert" ;-)

Im Ernst:
Einer der Gründe weshalb Jim die KI gerne in Skripte auslagern möchte besteht darin, das eine allgemeine Standart-KI sehr schwer zu programmieren ist. Deshalb nutzen die Aliens mit dieser Standart-KI aktuell ja weder Sensoren noch Granaten.

Durch die Auslagerung kann man aber jedem Alien ein anderes spezielles Skript zuweisen, das dann besser auf die Werte des Aliens und seine Ausrüstung abgestimmt ist - insgesamt ist das nur ein Bruchteil der Arbeit einer Standart-KI, wobei die Arbeit in so einer Form auch über die Community verteilt werden kann - eine interne Standart-KI wäre ein Alleingang von Jim...
verfasst am: 19.06.2006, 21:23 · Edited by: azrael666
Registrierdatum: 14.06.2006, 19:44

 Beiträge: 16
Nunja dann wären aber auch die 2-3 frei verwendbaren Zähler schon zuviel, weil die ja auch schon ausreichen würden, dass die KI-Scripte nichtmehr richtig funktionieren. :o)

Edit: Zumahl ich mit Standard-KI eigendlich nur meinte, dass diese ohne Zugriff auf die freiwählbaren Variablen sind. Das schließt nicht aus, dass sie von der Comunity mit externen Scripten geschrieben werden. :o)
verfasst am: 19.06.2006, 21:39
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Zitat: azrael666
Nunja dann wären aber auch die 2-3 frei verwendbaren Zähler schon zuviel, weil die ja auch schon ausreichen würden, dass die KI-Scripte nichtmehr richtig funktionieren

Nicht ganz - da diese Zähler fest implementiert sind, kann man sie auch allgemein bearbeiten - schließlich weiß ja jedes KI-Script das da etwas vorhanden ist.

Entweder würde das so funktionieren wie mit den ALL-Funktionen in meinem UKI-Scriptsatz, oder aber sie würden nur von speziellen KIs für einzelne lokale Funktionen genutzt (deshalb auch mehrere, damit man vorher bei der Definition eines AKI-Scriptsatzes einen Counter für lokale Kartenfunktionen (wie lange überlebt der abgestürzte XForce-Pilot) und die anderen für die Verwendung im Scriptsatz definieren kann oder wie auch immer - das geht jetzt schon weiter ins Detail als momentan sinnvoll ist, noch gibt es ja kein KI-Scripting.
verfasst am: 23.06.2006, 00:01
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Details zu 5) Hotspots

Nach einigem Überlegen bin ich von der ursprünglichen Idee einer größeren Menge von verschiedenen Hotspots abgerückt - man bräuchte einfach zuviele verschiedene Hotspots für Markierungen, Bedingungen und ähnliches.

Stattdessen sollte ein Hotspot Eigenschaften folgende Eigenschaften erhalten:

Hotspot.Bezeichnung - wird vom Kartenersteller für jeden Hotspot in jedem Raum der Kartendatei gesetzt, wobei verschiedene Hotspots durchaus gleiche Namen haben können.

Hotspot.Position - dies wird nach der Kartenerzeugung mit den Koordinaten des gesamten Einsatzfeldes belegt.

Hotspot.Funktion - dies wird bei der Erstellung gesetzt, hat aber nur eine geringe Auswahl:
Entweder ist der Hotspot ein Startfeld für eine bestimmte Seite oder er erzeugt bei jedem Betreten durch eine Einheit ein Event mit sich selbst als Objekt (das Kartenskript braucht dann eine Funktion zur Abarbeitung aller Hotspot-Events wie Explosionen von Minen oder Erzeugung neuer Aliens etc.) oder aber er macht gar nichts (d.h. die KI kann die Position anhand des Namens in der gesamten Hotspot-Liste identifizieren und für Bewegungen (Patrouillengang), Angriffsziele (hierhin gehen und zerstören) oder anderes nutzen).

Im Bodeneinsatz müsste es dann noch Zugriff auf eine Liste mit allen auf der Zufallskarte erzeugten Hotspots geben. Wenn ein Raum mit einem Hotspot auf der Zufallskarte dann mehrfach auftaucht, dann enthält die Hotspot-Liste auch mehrere dieser Hotspots mit identischen Namen und identischer Funktion, aber unterschiedlichen Koordinaten (und unterschiedlicher ID/Index-Nummer).

Auf diese Art kann man jede Variante besonderer Ereignisse und Zielpunkte im Bodeneinsatz skripten, egal ob auf einer genau definierten Spezialkarte oder auf Zufallskarten.
verfasst am: 13.01.2007, 14:21
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Um mal diese alte Diskussion neu zu starten und in die Richtung für die nächste(n) Versionen zu lenken:

Was benötigt man genau an Skripten zur Manipulation der Karte und Kartendaten?
D.h. was muss man in einem Skript mit der aktuellen Karte machen können um alle Spezialmissionen programmieren zu können?

Meine Liste bisher:
- Verändern der Tile-Daten: Sei es um Türen zu schaffen, unzerstörbare Kraftfeldwände verschwinden zu lassen oder eine Explosion zu simulieren.
- Platzieren und entfernen von Gegenständen, Objekten und Einheiten

Es geht mir schwerpunktmäßig um die Kartenmanipulation, weil das auch mit beeinflusst wie die Neudefinition der Tilesets endgültig aussehen soll...
verfasst am: 19.05.2008, 01:19
Registrierdatum: 18.05.2008, 11:29

 Beiträge: 15
ich bin mir zwar jetzt nicht sicher ob das hier reinpasst, aber wenn hier schon so fleißig über bodeneinsätze diskutiert wird würde ich doch glatt vorschlagen für diese auch gleich missionsziele einzubauen, weil anfangs mag es vielleicht spannend/schwer/wasauchimmer sein, aber da es immer dasselbe ist (und zwar alle aliens auf der karte auszuschalten) wird das mit der zeit langweilig, da hilft selbst die beste balance nix.
ich persönlich wäre für missionsziele alâ: rette diese person, beschütze das eine bestimmte rundenzahl, zerstöre dies in einer bestimmten rundenzahl, erreiche folgenden endpunkt, usw.
wäre das programmiertechnisch durchsetzbar?

greetz
verfasst am: 19.05.2008, 07:25
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Wenn man Skripte im Bodeneinsatz verwenden kann, dann kann man natürlich auch verschiedenste Siegesbedingungen programmieren.
In wieweit dies ohne Skripte möglich wäre (d.h. indem die Editoren passende Einstellungen kriegen) kann man noch nicht sagen - außer das die aufwendigeren Siegesbedingungen auf jeden Fall Skriptkenntnisse vorraussetzen werden.

Und es kann gut sein das wir eine unvollständige Umsetzung von Siegesbedingungen per Editor komplett weglassen - sowas erfordert einiges an Aufwand, und wenn das Ergebnis trotzdem für alles aufwendigere nur per Skript funktioniert dann könnte es effektiver sein nur per Skript Sonderbedingungen zu realisieren.
verfasst am: 19.05.2008, 12:35
Registrierdatum: 18.05.2008, 11:29

 Beiträge: 15
und heisst das ihr überlegt es in eine der nächsten updates einzubauen oder eher nicht?
verfasst am: 19.05.2008, 13:22
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Skripting im Bodeneinsatz kann nicht vor 925 realisiert werden, vorher müssen noch die Kartenformate und die Modelle umgestellt werden, sonst machen Skriptbefehle gar keinen Sinn...
verfasst am: 19.05.2008, 15:33
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Und es kann gut sein das wir eine unvollständige Umsetzung von Siegesbedingungen per Editor komplett weglassen

Ich glaub eher, er meinte das Standardmäßig zu machen.
Also im normalen Zufallseinsatz dann manchmal Eskorte, manchmal Ziel ausschalten etc., so wies ja auch bei der After...-Reihe war. (klingt jetzt irgendwie fäkal ^^)
verfasst am: 19.05.2008, 17:15
Registrierdatum: 08.03.2006, 17:49

 Beiträge: 247
Tja, das einzige was mir jetzt einfällt wäre:
- Aliens töten (so wie es jetzt ist)
- Bestimmte Artefakte einsammeln (bei Ufo Absturzstellen
etc.)
- Aliens betäuben und Informationen sammeln (wie in X-Com;
UFO Extraterestials)
- Alienbasen einnehmen
- Basen verteidigen (eigene und Alphatronbergwerke)
- Stadtverteidigungen (wie in X-Com)
- Spezialmissionen (da weis ich aber nicht, was ihr da
Intern plant)
verfasst am: 19.05.2008, 18:09
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Zitat: LennStar
Ich glaub eher, er meinte das Standardmäßig zu machen.
Also im normalen Zufallseinsatz dann manchmal Eskorte, manchmal Ziel ausschalten etc.

Das habe ich schon verstanden, aber mit größter Wahrscheinlichkeit lässt sich dies nur über kartengebundene Skripte erreichen und nicht über Editoreinstellungen.
Und wenn man dann in ein- und derselben Karte verschiedene Aufgaben haben will, dann muss man diese Karte mehrfach kopieren und mit verschiedenen Skripten versehen. Der Zufall wäre dann welche der Karten mit identischer Grafik aber unterschiedlichen Skripten ausgewählt wäre.
verfasst am: 19.05.2008, 20:36
Registrierdatum: 18.05.2008, 11:29

 Beiträge: 15
okay, aber immerhin ist es in planung es einzuführen, wenn es auch noch ein weilchen dauern mag :)
danke für die info (und übrigens: bisjetzt habt ihr wirklich ne tolle leistung hingelegt, nur weiter so ;))

greetz



Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.027 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003