Verbesserungsvorschlag für MK3, BPH, SDS, ... / Diagonalflug

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

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

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Verbesserungsvorschlag für MK3, BPH, SDS, ... / Diagonalflug

Post by sdack » Sun, 27. Feb 05, 00:09

Abkürzen von Flugrouten über Diagonalen.

Kann man so programmieren, dass man erst eine einfache Route zwischen zwei Sektoren ermittelt und dann versucht die Ecken dieser Route zu optimieren. Also jeweils an einer dieser Ecken einen bis mehrere Sektoren vorher abbiegen und damit den Diagonalflug durch die Sektoren verlängern.

Sven
---------------------------
---------------------------

User avatar
StarTrekMarc
Posts: 2143
Joined: Sat, 3. Apr 04, 16:38
x4

Post by StarTrekMarc » Sun, 27. Feb 05, 00:14

ehm, sucht die Wegfindungsroutine aus X² nicht automatisch den kürzesten Weg? Also auch diagonalen ;-)

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 00:20

@StarTrekMarc: Nein.

Sven
---------------------------
---------------------------

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 00:23

Aber wenn sie es tun sollte, dann hat sie mehr als einen Bug. Sie hat mich schon durch Sektoren geflogen, in denen ich noch nicht war.

Sven
---------------------------
---------------------------

ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki » Sun, 27. Feb 05, 00:46

Die ist ein bisschen rechtwinklig :)

Gruß ticaki

P.S. zu rechen aufwendig :)
Zur Zeit nicht aktiv

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 00:51

@ticaki: Ist das bereits versucht worden? Also ein Such-Algorithmus, der rechtwinklig und diagonal sucht, hat dieselbe Ordung O() wie einer, der nur 4 Richtungen berücksichtigt.

Sven

PS: Lass' es die Leute versuchen ...!
---------------------------
---------------------------

ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki » Sun, 27. Feb 05, 01:03

jo er wäre nicht wesentlich aufwendiger, wenn er in der Engine laufen würde aber Scripte sind 2 Stufen über der Engine da geht ne menge Leistung drauf :)

Gruß ticaki
Zur Zeit nicht aktiv

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 01:13

@ticaki: Das ist bestimmt richtig, nur wenn man dich ernst nimmt, dann dürfte es in letzter Konsequenz gar kein BPH, MK3 oder SDS geben.

Sven

EDIT:
Ausserdem kann niemand auf die Engine zu greifen.
---------------------------
---------------------------

Ghalador
Posts: 3929
Joined: Sat, 9. Nov 02, 19:33
x4

Post by Ghalador » Sun, 27. Feb 05, 02:01

sdack wrote:@ticaki: Das ist bestimmt richtig, nur wenn man dich ernst nimmt, dann dürfte es in letzter Konsequenz gar kein BPH, MK3 oder SDS geben.
Die Berechnungen die innerhalb der Engine laufen nehmen sicher einen Haufen Last aus der Sache raus. Da es sich hier aber nur um eine Rückmeldung nach jedem Sektordurchflug handelt...warum nicht? Die direkte Flugbewegung wird davon ja nicht tangiert.

Andererseits - es gibt nur sehr wenige Gebiete in denen dies überhaupt was bringen kann...seh ich doch richtig, oder? Die Sektoren um Argon Prime. Wo noch? Nur wenige Gebiete bilden einen grösseren Block, in dem man länger diagonal reisen kann.

Aber vielleicht in TR?
Have fun: Gala Do.

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 03:46

@Ghalador: Um Argon Prime herum, im Teladi Gebiet östlich davon, im Split Gebiet noch weiter östlich und südlich im Gebiet der Paraniden.

Ausserdem stelle ich mal dreist die Behauptung auf, dass wenn die Frachter kürzerer Strecken fliegen, sie damit allgemein weniger fliegen und dadurch CPU Zeit sparen. Die Route müsste ja nur einmal aufgestellt werden. BPH z.B. überprüft bei jedem Sektor den es durchquert die Preise. So problematisch wie es Skript-Meister Ticaki darstellt kann es nicht sein.

Übrigens vermisse ich den Hinweis auf meiner Verpackung die da lauten müsste: Der Bau von Fabriken kann zu einer Überschreitung der minimalen Hardware Anforderung führen.

Da ihr das jetzt wisst und es damit auf die Schachtel des Add-On schreiben werdet, fügt vielleicht auch noch dazu: ... Sowie der Einsatz von Bonus Material.

Sven :evil:
---------------------------
---------------------------

Deleted User

Post by Deleted User » Sun, 27. Feb 05, 04:52

Schön das du die Route berechnest aber deswegen fliegt das Schiff diese immernoch nicht ab. Es muss trotzdem von Sektor zu Sektor geschickt werden da es keinen direkten Befehl dafür gibt.

Desweiteren gibt es schon eine LIB zur Routenberechnung womit man auch einzelne Sektoren sperren kann. Das Teil ist aber so CPU-lastig das es nicht eingesetzt wird. Wäre nicht verkehrt wenn das direkt in der Engine wäre aber Scripte sind halt viel zu langsam für sowas. Du soltest bedenken das gerade für Frachter solche Scripte tötlich sind da man nicht nur 10 oder 20 davon besitzt sondern gut und gerne schon mal um die 500 und mehr rumwuseln hat. Ausserdem MUSS jedes rechenintensive Script künstlich ausgebremst werden damit der Rechner nicht völlig in die Knie geht. So auch die von dir angesprochende BPH.

Mach dich bitte erstmal mit den Möglichkeiten von Scripten und deren rechenaufwand vertraut bevor du hier wilde Berechnungen auf die Scripterwelt loslässt. Ich nicht böse gemeint aber denkst du wirklich das sowas noch nicht versucht wurde?

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 06:26

Mach dich bitte erstmal mit den Möglichkeiten von Scripten und deren rechenaufwand vertraut bevor du hier wilde Berechnungen auf die Scripterwelt loslässt. Ich nicht böse gemeint aber denkst du wirklich das sowas noch nicht versucht wurde?
Spar dir deinen Hass, ich bin zu alt dafür. Und ja, hier wurde offensichtlich noch nicht alles versucht, da es ständig neues gibt.

Sven
---------------------------
---------------------------

soul6
Posts: 4
Joined: Mon, 31. Jan 05, 16:41
x2

Post by soul6 » Sun, 27. Feb 05, 07:28

Irgendwie kürzen meine sowieso immer ab. ( siehe : du hast stationen in
Profitbrunnen / sendest die frachter zu nachrüsten nach RolksLos "BHP" und
wieder zurück, dann kürzen die immer diagonal über "ProfitLoch" ab )
Es wäre sicher nicht schlecht, Frachtern gewisse routen vorgeben zu können,
aber dann bin ich schon bei "MacGyver", wenn ich 500 frachter habe, geht mir mein rechner sicher in die Knie.

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Sun, 27. Feb 05, 15:46

Das nächstemal, wenn ich einen Thread voller Pessimisten haben will, schreibe ich es einfach in die Überschrift.

Sven
---------------------------
---------------------------

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Mon, 28. Feb 05, 12:56

Erste Bedingung für den Diagonalflug bzw. einen solchen Algorithmus, wäre es, dass die Strecke aus mindestens 3 Sektoren bestehen muss. Das sollte also nicht für jeden der erwähnten 500 Frachter zu treffen.

Wenn ich in das MSCI Handbook schaue, sehe ich folgende Befehle:

- get jumps from sector <> to sector <>
- get next sector on route from sector <> to sector <>
- get universe x index
- get universe y index
- get sector from universe index: x=<> y=<>

Damit sollte sich ein einfacher Algorithmus aufbauen lassen. Man muss sich nur die Flugrichtung merken und schauen, ob man über ein Abbiegen (Nicht-gerade-aus-fliegen), eine Route erhält, die gleich lang ist. Schon hat man eine Abkürzung gefunden. Macht man dies einmal pro Sektor und nur wenn der Ziel Sektor noch weit ist, wählt man automatisch die Diagonale.

Die Anzahl der Abfragen mittels "get next sector on route ..." würde sich zwar verdreifachen, aber auch nur, wenn es dafür in jedem Sektor ein Sprungtor in diese Richtung gibt. Merkt man sich die Himmelsrichtung der letzten Abkürzung, wird der Algorithmus noch sparsamer.

Würde mich freuen, wenn es mal jemand unvoreingenommen und mit positiver Erfahrung im Schreiben von X2 Skripten versuchen würde.

Sven
---------------------------
---------------------------

ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki » Mon, 28. Feb 05, 13:12

Es geht nicht! Du bekommst nicht raus welches Tor in welchen Sektor führt.

Gruß ticaki

P.S. Ist auch kein Grund agressiv zu werden... ich hatte auch schon viele Ideen die einfach nicht gehen :)
Zur Zeit nicht aktiv

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Mon, 28. Feb 05, 13:32

Endlich. Ein ganzer Satz als Antwort. Ich freue mich, Ticaki. Du hast mich glücklich gemacht.

Aber ich behaupte, dass es doch geht. Du musst nicht wissen wohin ein Sprungtor geht. Du musst nur wissen, ob es einen Sektor neben an gibt und ob beide zueinander ein Sprungtor haben.

Gegenfrage zum Nachdenken: Wiviele Sektoren in X2 gibt es, die nebeneinander liegen und auch jeweils ein Tor zueinander haben, die nicht mit einander verbunden sind?

EDIT:
Man kann auch mit "get next sector on route" feststellen, ob der x-1 oder y-1 Sektor eine Verbindung hat (oder x+1, y+1, x und y plus 1 ...).

Ich hab bisher keines entdeckt. Es ist zwar technisch möglich, aber gehe bitte nicht von irgendwelchen theoretischen Labyrinth-Universen aus. Die Erweiterung braucht nur im original X2 Universum zu funktionieren (und den Hinweis tragen: geht nur im original X2 Universum).

Sven
---------------------------
---------------------------

ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki » Mon, 28. Feb 05, 13:38

sdack wrote:Aber ich behaupte, dass es doch geht. Du musst nicht wissen wohin ein Sprungtor geht. Du musst nur wissen, ob es einen Sektor neben an gibt und ob beide zueinander ein Sprungtor haben.

Gegenfrage zum Nachdenken: Wiviele Sektoren in X2 gibt es, die nebeneinander liegen und auch jeweils ein Tor zueinander haben, die nicht mit einander verbunden sind?
4 oder 6 ;) und wieviele gibt es in einer Custom Map?

btw. wieviele Sektoren gibt es die von einer solchen Abkürzung profitieren würden und in wieviele wäre es nur vergeudete Rechenzeit?

Gruß ticaki
Zur Zeit nicht aktiv

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Mon, 28. Feb 05, 13:45

ticaki wrote:
sdack wrote:Aber ich behaupte, dass es doch geht. Du musst nicht wissen wohin ein Sprungtor geht. Du musst nur wissen, ob es einen Sektor neben an gibt und ob beide zueinander ein Sprungtor haben.

Gegenfrage zum Nachdenken: Wiviele Sektoren in X2 gibt es, die nebeneinander liegen und auch jeweils ein Tor zueinander haben, die nicht mit einander verbunden sind?
4 oder 6 ;) und wieviele gibt es in einer Custom Map?

Gruß ticaki
Herr schmeiss Hirn vom Himmel!!!!!!!

Und wenn du eben genau an diesen Sektoren ankommst (ich denke ich weiss welche du meinst), dann fliegst du eben nur den vorgegebenen Sektor an und machst eben keine Abkürzung.

Erklär mir, wo mein Fehler ist. Ich sehe keinen!!!!

Sven . o O (Kein Grund aggressiv zu werden, meint er ...)
---------------------------
---------------------------

sdack
Posts: 1071
Joined: Wed, 26. Jan 05, 22:24
x3

Post by sdack » Mon, 28. Feb 05, 13:47

Du bist so voreingenommen von deinen eigenen Ideen, dass du nicht in der Lage bist eine neue zu verstehen. Du verschliesst dir gänzlich die Möglichkeit zu erkennen, dass ein Problem doch eine Lösung haben kann.

Sven
---------------------------
---------------------------

Post Reply

Return to “X²: Die Bedrohung - Scripts und Modding”