Hallo Rttr - Community,
zuerst möchte ich mich bei den Entwicklern für die mittlerweile sehr fortgeschrittene Arbeit an diesem S2-Remake bedanken. Ich habe lang überlegt, ob ich diesem Thema einen Foreneintrag widme oder das ganze im Bugtracker einbringe. Zur Diskussion ist dieser Weg vielleicht der bessere.
Nachdem mir die Fehler in den Missionen der röm. Kampagne aufgefallen sind, habe ich mich mit der hervorragenden Arbeit von CrazyL (Ersteller der LUA's für die röm. Kampagne) auseinandergesetzt. Als Laie war das nicht ganz einfach, aber mithilfe der bestehenden Skripte, einiger Diskussionen mit Spike (Vielen Dank dafür), vielen Versuchen und dem Wiki hat es dann doch geklappt.
Ziel war es, die bestehenden Probleme in den LUA-Skripten aufzuarbeiten, um die Missionen so spielen zu können, wie im S2 Original. Da ich früher schon viel in den Originalen RTX-Skripten "rumgedoktort" habe, sollte das eine machbare Aufgabe werden, die es leider nicht geworden ist.
________________________________________________________________________
Nun zum Thema:
Folgende Funktionen mussten aus meiner Sicht noch implementiert werden:
1. Grenzen für das Baugebiet der KI wie im Original
2. Bündnisse, die einseitig durch den menschl. Spieler aufgelöst werden können - mittels Angriff
3. Tiere in der entsprechenden Anzahl, wie im Original
4. Farben der Gegner, da die Standardwerte im Laufe des letzten Jahres wohl mal getauscht wurden
Weitere Themen, die sich ergeben haben und diskutiert werden sollten:
a. Anpassung der Zwangsvorgaben zum Bau von Gebäuden, da teilweise fehlerhaft
b. Spawnen von Tieren wird im Original nicht so ausgelöst, wie in RttR (IMHO in RttR schneller und mehr)
EDIT - Punkt c und d:
c. Manchmal werden Gebäude, die mit ConstructionOrder gebaut werden einfach wieder abgerissen. Beobachtet habe ich das in Mission 10 der röm. Kampagne. Ist dort relativ häufig, aber zufällig passiert. Die linke Festung wurde zu einem mMn zufälligen GF wieder abgerissen. (Das sollte nicht passieren, ist für die Mission 10 relevant, dass die Festung dort steht)
d. In Mission 7 fehlt das HQ und in Mission 9 die Bauplätze für Häfen in der Map. Im Original wurde das HQ per Skript
gesetzt. Das geht mMn in RttR nicht. Wie die fehlenden Bauplätze nachträglich hinzukamen ist mir nicht bekannt, wahrscheinlich nicht per Skript. mMn sollten hier die Maps korrigiert und dem Spieler einfach per Update zur Verfügung gestellt werden.
________________________________________________________________________
Punkt 3 und 4 sind relativ schnell abzuarbeiten (gewesen).
Punkt a kann schnell abgearbeitet werden. Das Problem hierbei ist, dass die Gebäude (explizit: 1 Festung in Mission 10) an den Stellen lt. Original S2 Skripten nicht gebaut werden können. Somit baut die KI diese auch nicht. Eine Versetzung wäre meiner Meinung kein Problem hinsichtlich der Spielbarkeit, wie im Original.
Punkt b ist nicht verifiziert. Mir kommt es nur so vor, dass in RttR mehr Tiere spawnen, bzw. eher bei weniger Wald.
________________________________________________________________________
Zu den kritischen Themen - 2. vor 1. da kürzer:
2. Wie schon beschrieben: Bündnisse, die einseitig durch Start der Kampfhandlung aufgelöst werden können (durch Mensch) sind nicht möglich. Das hat auch die Diskussion mit Spike ergeben. Das sollte implementiert werden, um das Original-Feeling zu erhalten. Auch aus taktischen Gründen in den Missionen. Mit den bestehenden Befehlen habe ich hier
nichts erreichen können.
1. Die Grenzen für das Baugebiet der KI können aktuell in den LUA-Skripten nur per Befehl "SetRestrictedArea"
definiert werden. Problem hierbei ist die Funktionweise dieses Befehls. Einigen wird das schon bekannt sein. "Restricted Area" definiert entweder einen Bereich, in dem die KI bauen kann (mithilfe eines Polygons, das durch Koordinaten im
Uhrzeigersinn definiert wird) oder es schließt Bereiche aus (durch ein Polygon entgegen des Uhrzeigersinns).
Das ist der grundlegende Unterschied zur Funktionsweise der Begrenzung aus dem Original S2.
In S2 wurde mit dem Befehl "!GLOBAL_SET_COMPUTER_BARRIER" lediglich ein Bereich definiert, in dem die KI keine
Militärgebäude bauen darf. Die Karten der Missionen sind in der Regel so designt, dass diese Bereiche in irgendwelchen Täler oder Gebirgspässen liegen, sodass hier nur ein kleiner Bereich nicht bebaut werden kann. Ausgewirkt auf die Spielbarkeit hat sich das folgendermaßen:
Sobald die KI den Bereich erreicht hat, konnte sie keine Militärgebäude an dieser Stelle bauen. Sobald der menschl. Spieler diesen Bereich erreicht hat, konnte die KI diesen angreifen, die Gebäude einnehmen und mit dem eigenen Gebiet verbinden. Die Restriktion für den Bereich blieb bestehen, was sich aber nicht weiter auswirkte. Die KI baute nun im neuen Bereich einfach weiter.
Das Ganze habe ich nun versucht mit "RestrictedArea" nachzubauen.
Möglichkeit 1: Setzen des möglichen Baugebietes der KI mit positivem Polygon (im Uhrzeigersinn). Das Baugebiet wird somit auf einen Bereich X begrenzt. KI kann nur dort bauen. Problem: Wenn KI außerhalb des Baugebietes ein Gebäude einnimmt, dann wird das Gebäude nicht übernommen. Es bleibt in einer Art "schwebendem" Zustand. Es gehört weder der KI, noch dem menschl. Spieler.
Lösungsversuch: Mithilfe der "OnOccupied" Funktion die RestrictedArea auflösen, bzw. neu definieren. Das hat leider nicht geklappt. Beim Besiegen meiner Soldaten wird das Gebäude nicht richtig eingenommen und dadurch der Befehl nicht ausgelöst, um die Area neu zu definieren.
Möglichkeit 2: Es wird nur das Gebiet definiert, dass nicht bebaut werden darf (ähnlich dem Vorgehen wie im Original - aber eben nicht gleich) Hier besteht die Möglichkeit, dass die KI Gebäude vom Gegner einnehmen kann, wenn
diese nicht im Gebiet der "RestrictedArea" stehen.
Problem: Zum Zeitpunkt des Einnehmens bleibt die "RestrictedArea" bestehen, es seidenn sie wird neu definiert. Auch das
habe ich mit OnOccupied probiert. Diesmal folgendes Phänomen:
Sobald Das Gebäue eingenommen wird, wird der Befehl ausgeführt. Die Area wird neu definiert (in meinen Versuchen immer zur gesamten Map). Es wird allerdings nicht die vorher definierte "verbotene" Zone sofort zum Gebiet hinzugefügt. Das
geschieht erst, wenn ein neues Militärgebäude dort in der Nähe gebaut wird. Das führt dann zu folgenden Ergebnissen:
https://imgur.com/a/dpNqloa
Das sieht nicht nur nicht schön aus, sondern entspricht auch nicht dem Original. Hinzu kommt, dass wenn die Restricted Area so definiert war, dass sie bspw. zwischen 2 Schneeflächen liegt, kann die KI gar nichts mehr bauen, obwohl die
Restriktion aufgelöst ist.
https://imgur.com/a/NevnkgE
Aktuell ist das für mich der größte Gamebreaker bezüglich der Missionen. Man kann die Areas theoretisch so bauen, dass
sie nicht bebaut, aber im Nachgang wenigstens Wege gesetzt werden können. Man könnte auch noch eine ConstructionOrder einbringen, die die KI dazu zwingt noch ein Militärgebäude zu bauen. Den Platz kann man vorher mit statischen Objekten
reservieren, die dann zu Map-Objekten werden (Vorschlag Spike). Das kommt dem Original allerdings nicht mehr wirklich
nah, was immerhin Ziel des LUA-Scripting hierzu sein sollte.
Mein Vorschlag hierzu war lange Zeit die Funktion so zu verändern, dass sich das Gebiet sofort nach Auflösen der
Restriktion anschließt. Mitterweile wünsche ich mir allerdings eine Funktion, wie im S2 Original, mit der Gebiete
definiert werden können, an denen kein Militärgebäude gebaut werden kann. Das hat noch einen weiteren gewichtigen
Grund -> Das Original-Feeling
In S2 war es so, dass die KI in den Gebieten keine Militärgebäude bauen konnte, alles andere aber schon. Das sieht erstmal schöner aus. Außerdem konnte man das taktisch nutzen. Wenn man die verlorenen Gebäude wieder zurück erobert hat und dann abriss, konnte die KI mMn trotzdem nicht weiter bauen, da immer noch die Resktriktionen für den Bereich vorlagen. Somit konnte man sich taktisch zurückziehen (korrigiert mich, falls das doch falsch sein sollte).
Ob das Jetzt als schön oder spielerisch besonders wertvoll zu bewerten ist, sei mal dahingestellt. Für mich ist das ein
Glitch. Aber es ist eben absoluter Bestandteil des Original Siedler 2. Mit der aktuellen "RestrictedArea" und dem
Auflösen dieser innerhalb des Skriptes ist das nicht mehr möglich.
Für mich wäre daher ein wichtiges Thema die Implementierung der Original S2 "Barrier"-Funktion und des einseitigen
Bündnisses inkl. Auflösung durch den Menschen mittels Start der Kampfhandlung, um die Skripte und Missionen zur
Vollendung zu bringen.
Ich freue mich auf die Diskussion. :)
VG
etother
---
I'm doing gaming stuff.
Bin mit Siedler 2 groß geworden und bastel jetzt an Skripten *sigh*.
Manchmal spiele ich auch.
Steam
Twitch
Discord: Sparrow#8771
Editiert von
etother am 12.10.2019 16:38