<p>OpenApoc generiert nicht die gesamte Palette an OG-Karten für jede Mission</p>

Erstellt am 28. Juni 2019  ·  3Kommentare  ·  Quelle: OpenApoc/OpenApoc

Wie speziell in Bezug auf Slum-Karten in Nr. 396 erwähnt, scheint das Problem, dass OpenApoc nicht die gesamte Palette von Karten für jeden Gebäude- und Gebietstyp generiert, auf der ganzen Linie zu bestehen

Es gibt eine beträchtliche Anzahl von Optionen, die OpenApoc erstellen können sollte, aber es scheint nicht zu sein

Die Youtube-Videos von @Istrebitel zeigen auch, dass der Kartengenerator zumindest in seinen OpenApoc-Builds mehr Arten von Kampfzonen erstellt hat ... Dies scheint es nie in den Kofferraum geschafft zu haben oder wurde seit dem Test deaktiviert

Weitere Untersuchungen sind erforderlich

Idealerweise sollten wir alle Kartenkombinationen anbieten, die OG gemacht hat, aber auch mehr Möglichkeiten und eine Vielzahl von Kartengrößen zulassen

Es scheint, dass die Karten in OG nach der Squad-Größe skaliert wurden, aber mit einem "zufälligen" Element, das bedeutete, dass kleine Squad-Zahlen selten noch auf einer sehr großen Karte landen konnten....

!BUG! low priority Enhancement Feature Request Help Wanted

Hilfreichster Kommentar

Weiteres Update von istrebitel

Ja, ich glaube, ich bin fast dazu gekommen - größere Karten für größere Feindzahlen.
Spawning-Agenten funktionieren so, dass Karten in LOS unterteilt sind
Blöcke, die für die Wegfindung, LOS-Berechnungen und für
spawnen alle gleichzeitig. Jede Kachel in einem Kartenblock gehört zu
einer der LOS-Blöcke, die alle kastenförmig sind. Dann gibt es eine globale
Einstellung, ob Sie die Karte an einem bestimmten Rand verlassen oder betreten können, z
jede Karte. Auf dieser Grundlage ist der LOS-Block entweder berechtigt oder nicht zum Spawnen
Einheiten bestimmter Zugehörigkeit. Es gibt eine Reihe von Werten im Block
die das regeln. Diese Werte sollten irgendwo auf der beschrieben werden
Foren oder in den txt-Dateien, die dem Projekt beigefügt sind. Wenn ich mich erinnere
korrekterweise gibt es Blockspawn-Werte für Spielereinheiten, Alien-Einheiten,
feindliche einheiten, zivile einheiten, vielleicht hat ziviles x-com-personal a
separates, vielleicht nicht, an das ich mich nicht erinnere, und ich erinnere mich
Es gibt einen speziellen Block für die laichende Königin.

Die Kartengröße basierend auf der Squad-Größe kann also entweder folgendermaßen gewählt werden:
Studieren Sie die Blöcke intelligent und sehen Sie, welcher Block wie viele bietet
Laichmöglichkeiten und urteile danach, oder vielleicht die Vanille
Hatte gerade einen hartcodierten Hack wie "Wenn mehr als X, dann Y-Größe verwenden"

Auch eine Sache zu beachten, ich glaube nicht, dass ich dieses Problem gelöst habe, die Art und Weise
einige Blöcke werden gemacht, Spawnpunkte von feindlichen Parteien können in LOS von . sein
einander, wie zum Beispiel MARSEC-Lager, sieht man oft ein
viele Marsec-Sicherheitsspawnpunkte von Einstiegspunkten. Das Spiel
stellt irgendwie sicher, dass es nie zu einer solchen Situation kommt, in der Sie spawnen
LOS eines Feindes. Du kannst Rücken an Rücken spawnen, d.h. sobald deine Einheiten
Bewegen Sie sich ein wenig, sie sehen sich, aber Sie können nicht mit dem Feind spawnen
bereits in LOS. Logischerweise sollte daraus folgen, dass das Spiel irgendwie
schließt Spawnpunkte oder LOS-Blöcke aus, je nachdem, ob dieser Block ist
von bereits gespawnten Einheiten beobachtet. Logischerweise kann es dann vorkommen, dass a
theoretische Freilandkarte wird erstellt, die auf dem Papier genug hat
spawn zeigt, um alle teilnehmenden Einheiten zu spawnen, aber dann nicht
habe genug Blöcke, um jede Einheit zu spawnen, weil jede Einheit, die gespawnt ist, sieht
der ganze Block. Ich glaube bei Vanille gab es kein so offenes Feld
Blöcke, also würde dies nie passieren, aber mit Modding ist dies höchstwahrscheinlich
werden und darauf müssen wir vorbereitet sein.

Alle 3 Kommentare

Hier ist die Antwort von Istrebitel zur Kartengenerierung

Soweit ich mich erinnere, gibt es eine Liste von Blöcken in den ursprünglichen Spieldateien, z . Dann wählt der Generator zufällig Blöcke aus und ordnet sie zu, was zu einer zufälligen Karte führt.

Um OpenApoc zu zwingen, Maps von riesiger oder winziger Größe zu generieren, würden Sie diese "Anzahl der Blöcke XYZ" -Zahlen bearbeiten, wo immer es sie liest, oder sie einfach schnell im Code ändern (lesen Sie eine statische statt aus einer Datei zu lesen, dh immer Generieren Sie eine 4x4x1-Karte von Slums, anstatt alles zu generieren, was in den Dateien für Slums festgelegt ist).
Genauere Erklärung wäre:

  • Jede Karte hat ihre eigene Chunk-Größe
  • Jede Karte ist aus Blöcken aufgebaut. Blöcke sind Vorlagen - zum Beispiel verschiedene Arten von Slumsektoren oder verschiedene Arten von x-com-Basisblöcken. Diese werden zufällig zu einer Karte zusammengestellt
  • Blöcke haben eine variable Größe in Blöcken. Zum Beispiel gibt es ein Tileset, Luxusappartements, denke ich, das einen 1x1x2-Block (ein Aufzug), einen 1x2x1-Block (ein Flur) und viele 1x1x1-Blocks (Wohnungen selbst) hat. UFOs sind einfache 2x2x2-Maps, die nur einen 2x2x2-Block aufweisen. Etc.
  • Jeder Block hat ein Min- und ein Max-Vorkommen. Für das Luxusappts-Beispiel hat ein Aufzugsblock ein Mindestvorkommen von 1, sonst könnte eine Karte ohne diesen Block generiert werden und die Stockwerke wären
    ohne Geländezerstörung unzugänglich, da kein Aufzug, nur Wohnungen und einstöckige Flure
  • Jede Karte hat eine minimale und maximale Größe auf allen Achsen, in Blöcken (oder vielleicht addiert oder subtrahiert sie nur zufällig 1 zur typischen Blockgröße? Ich erinnere mich nicht)
  • Der Algorithmus der Kartengenerierung ist unbekannt, wurde nicht zurückentwickelt, also habe ich ihn von Grund auf neu erstellt und er schien nahe an Vanilla zu funktionieren
  • AFAIK, mein Algorithmus macht zuerst eine Liste mit obligatorischen Blöcken und platziert sie alle zufällig
  • Dann erstellt es eine Liste der verbleibenden Blöcke (verbleibendes maximales Auftreten>0) und platziert einen dieser Blöcke zufällig, bis die Karte fertig ist
  • Wenn es nicht platziert werden kann, schlurft es herum, um Platz zu machen, wie Tetris (aber normalerweise passiert dies nie)
  • Wenn keine Karte erstellt werden kann, versucht es mit anderen Größen erneut
  • Dann gibt auf und spuckt Fehler aus (normalerweise wird dies bei Vanilla-Map-Vorlagen nie erreicht)
  • Wenn es alle Blöcke platziert hat, generiert es die Karte selbst
  • erstellt das Kartenobjekt und füllt die Karte basierend auf den Blöcken mit Objekten (die Wände, Dekorationen, Item-Spawnpunkte usw.)

Weiteres Update von istrebitel

Ja, ich glaube, ich bin fast dazu gekommen - größere Karten für größere Feindzahlen.
Spawning-Agenten funktionieren so, dass Karten in LOS unterteilt sind
Blöcke, die für die Wegfindung, LOS-Berechnungen und für
spawnen alle gleichzeitig. Jede Kachel in einem Kartenblock gehört zu
einer der LOS-Blöcke, die alle kastenförmig sind. Dann gibt es eine globale
Einstellung, ob Sie die Karte an einem bestimmten Rand verlassen oder betreten können, z
jede Karte. Auf dieser Grundlage ist der LOS-Block entweder berechtigt oder nicht zum Spawnen
Einheiten bestimmter Zugehörigkeit. Es gibt eine Reihe von Werten im Block
die das regeln. Diese Werte sollten irgendwo auf der beschrieben werden
Foren oder in den txt-Dateien, die dem Projekt beigefügt sind. Wenn ich mich erinnere
korrekterweise gibt es Blockspawn-Werte für Spielereinheiten, Alien-Einheiten,
feindliche einheiten, zivile einheiten, vielleicht hat ziviles x-com-personal a
separates, vielleicht nicht, an das ich mich nicht erinnere, und ich erinnere mich
Es gibt einen speziellen Block für die laichende Königin.

Die Kartengröße basierend auf der Squad-Größe kann also entweder folgendermaßen gewählt werden:
Studieren Sie die Blöcke intelligent und sehen Sie, welcher Block wie viele bietet
Laichmöglichkeiten und urteile danach, oder vielleicht die Vanille
Hatte gerade einen hartcodierten Hack wie "Wenn mehr als X, dann Y-Größe verwenden"

Auch eine Sache zu beachten, ich glaube nicht, dass ich dieses Problem gelöst habe, die Art und Weise
einige Blöcke werden gemacht, Spawnpunkte von feindlichen Parteien können in LOS von . sein
einander, wie zum Beispiel MARSEC-Lager, sieht man oft ein
viele Marsec-Sicherheitsspawnpunkte von Einstiegspunkten. Das Spiel
stellt irgendwie sicher, dass es nie zu einer solchen Situation kommt, in der Sie spawnen
LOS eines Feindes. Du kannst Rücken an Rücken spawnen, d.h. sobald deine Einheiten
Bewegen Sie sich ein wenig, sie sehen sich, aber Sie können nicht mit dem Feind spawnen
bereits in LOS. Logischerweise sollte daraus folgen, dass das Spiel irgendwie
schließt Spawnpunkte oder LOS-Blöcke aus, je nachdem, ob dieser Block ist
von bereits gespawnten Einheiten beobachtet. Logischerweise kann es dann vorkommen, dass a
theoretische Freilandkarte wird erstellt, die auf dem Papier genug hat
spawn zeigt, um alle teilnehmenden Einheiten zu spawnen, aber dann nicht
habe genug Blöcke, um jede Einheit zu spawnen, weil jede Einheit, die gespawnt ist, sieht
der ganze Block. Ich glaube bei Vanille gab es kein so offenes Feld
Blöcke, also würde dies nie passieren, aber mit Modding ist dies höchstwahrscheinlich
werden und darauf müssen wir vorbereitet sein.

Weitere Informationen zu diesem Problem finden Sie unter #396

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

muton-commander picture muton-commander  ·  3Kommentare

FilmBoy84 picture FilmBoy84  ·  3Kommentare

Quickmind01 picture Quickmind01  ·  3Kommentare

Quickmind01 picture Quickmind01  ·  3Kommentare

FilmBoy84 picture FilmBoy84  ·  3Kommentare