Deutsches Simutransforum

Normale Version: Skripts fuer KI Spieler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Prinzipiell liese sich darauf reagieren direkt nach dem Bau. Da ist die Streckenführung noch bekannt.

Allerdings müsste dazu möglich sein, die Fahrzeuge des letzten Monats (besser vielleicht des aktuellen Monats) abzufragen. Das geht bisher noch nicht per Script-KI.

Besser wäre vermutlich der Zeitstempel für den Bau. Aber das erfordert mehr Aufwand, weil bisher nicht vorhanden.


Wobei in dem Fall es Möglich ist den Abstand vom 3er Weg bis zum Signal zu ermitteln und entsprechend darauf zu reagieren. Solche Situationen wird es aber immer wieder geben, da jede Karte anders ist. Und Feedback ist faktisch bisher keines gekommen. Die KI ist halt bei vielen inzwischen total ausgeblendet.
Bisher waren die KI (alle drei) nur mit massiver Hilfe des Spieler überlebensfähig.
Man musste die Fehler ausbügeln, Staus auflösen, die Warenketten komplettieren usw.
Wenn man nicht geholfen hat, dann war die KI sehr schnell pleite und weg.
Zudem hat sie zumindest bei den Straßen rigoros über die des Spieler gebaut und ausgetüftelte Verkehrswege zerstört.
Aus meiner Sicht hat sie auch viel zu schnell gebaut, statt mit bewährten Linien erst mal Geld zu verdienen.
Jede Straße, jede Haltestelle und alles andere kostet ja erst mal Unterhalt und der will verdient sein.

Kurz die KI´s haben nur Arbeit gemacht und waren weder Hilfe noch Gegner und damit keine Bereicherung des Spiels.

Aber ich verfolge deine Bemühungen und hoffe du hast Erfolg.
Im September nach Schulbeginn habe ich hoffentlich wieder mehr Zeit, so Corona und Homeschooling will, dann werde ich den aktuellen Stand testen und mal wieder ein größeres Spiel selbst spielen. Auch mit deiner KI. Mal sehen was sich getan hat.
(16-07-2021, Friday-22:06:17 )makie schrieb: [ -> ]Bisher waren die KI (alle drei) nur mit massiver Hilfe des Spieler überlebensfähig.
Man musste die Fehler ausbügeln, Staus auflösen, die Warenketten komplettieren usw.
Wenn man nicht geholfen hat, dann war die KI sehr schnell pleite und weg.
Zudem hat sie zumindest bei den Straßen rigoros über die des Spieler gebaut und ausgetüftelte Verkehrswege zerstört.
Aus meiner Sicht hat sie auch viel zu schnell gebaut, statt mit bewährten Linien erst mal Geld zu verdienen.
Jede Straße, jede Haltestelle und alles andere kostet ja erst mal Unterhalt und der will verdient sein.
....

viel Text mit wenig hilfreichem Inhalt

Tatsache ist, je größer die Karte und damit die Entfernungen umso wahrscheinlicher ist die Pleite. Das liegt aber nicht an der KI selber, sondern am begrenzten Startkapital und der längeren Transportzeit. Je länger die Transportzeit, des so Jojo-hafter kommen die Gewinne rein.

Auch die Topologie spielt eine entscheidende Rolle.


Und da Du wahrscheinlich vom pak128.german sprichst, das ist bei den Industrien sehr Kleinteilig angelegt so viel ich weis.
Je Kleinteiliger eine Industriekette ist, um so schwerer wird es die komplett zu erschließen. Erst recht, wenn die Warenlager sehr klein sind und die Entfernungen groß.


Bei mir geht die Script-KI nur noch dann Pleite, wenn die Transportmittel nicht zusammen passen. Also eine Ware mit dem Zug angeliefert wird und die andere mit Lkw. Oder wenn mit Zug angeliefert wird aber mit Lkw abgefahren oder eben umgekehrt. Dann bekommt die mit dem Zug meist Probleme, wegen der höheren Unterhalts- und Baukosten. Oder wenn eine Kette nicht vollständig erschlossen wurde. Und das passiert halt bei längeren Ketten schnell, wenn nicht genug Kapital vorhanden ist. Deshalb hab ich bei meinen Testkarten 512x448 6 bis 8 KI's am laufen.

Hier kommt wieder die Spielererkennung ins Spiel, die es aber aktuell nicht gibt. Man könnte zwar auf Spieler 0 reagieren, aber es ist nicht gesagt das der Mensch immer Spieler 0 ist.
Hab mal R9941 mit 4x KI Script Rail laufen gelassen.
Start 1920 mit Epoche alles Default. Ich habe alle Einstellungen vorher gelöscht.
Karte 33 mit 256x256

Um ein Haar wären alle pleite gegangen. Big Grin 

Blau hat seine rentabelste Strecke kaputt gebaut.
[Bild: ki_or.png]

Zug ohne Route findet seinen Bahnhof nicht mehr. Es fehlt ein Stück Gleis, das bei Bau der Strecke zur Kokerei verschwunden ist.

Der zweite Zug steht in der Ausweiche und blockiert damit alle LKW die ebenfalls Kohle in Kraftwerk fahren wollen. Tongue 

[Bild: ki_stau.png]
Rot und Grün versuchen mit LKW Kohle zum Kraftwerk zu fahren, stehen aber (oft) an der Bahnschranke.
Blau und Gelb fahren (oder eigentlich wollen) Koks zum Kraftwerk fahren. Der Verkehr an der Straßenkreuzung ist aber so heftig dass nur selten ein LKW den Frachthof verlassen kann.

Alle versuchen Kohle und Koks am Kraftwerk anzuliefern, aber nur Blau hat eine leistungsfähige Bahnlinie gebaut.
Der LKW-Verkehr überfordert die Straße. Es stehen sogar noch LKW am Abladehof.
[Bild: ki_alle.png]
Die LKW Verbindung von der Kokerei zum Kraftwerk ist völlig unzureichend. Deshalb wartet am Bahnhof "Horb Kokerei" viel Koks um per Bahn via Umladen am Kohlebergwerk zum Kraftwerk gefahren zu werden. Leider wartet der Zug am Bahnhof "Horb Kohlebergwerk" auf 100% Ladung. Die Kokerei ist jedoch über eine ganze Reihe weiterer Bahnstrecken gut mit Kohle versorgt, so dass dieser Zug nur selten fährt.

Nachdem ich die kaputte Strecke repariert habe, läuft es einigermaßen.
Blau und Braun verdienen Geld. Nur Grün ist von der Pleite bedroht. Die Bahnlinien für Salz und Kohle zur Kokerei sind nicht rentabel. Die Konkurrenz ist zu stark. Beim Salz hapert es am Öl-Transport. Bei der Kokerei am Abtransport vom Koks.
Nur Blau fährt mit seinen Bahnstrecken in der Gewinnzone. Aber auch nur Blau fährt mit der Eisenbahn zum Kraftwerk.

---------
Es fällt auf dass die KI nicht prüft ob eine Fabrik schon mit diesen Waren versorgt wird. So bauen alle KI die gleichen Strecken. Es sollte das Eingangslager geprüft werden. Wenn es voll ist, ist es sinnlos dorthin weitere Linie zu bauen.

Umgekehrt hat nur Gelb mit nur 3 kleinen Lastwagen die Chemiefabrik an die Öl-Förderung angeschlossen.
Am Beladehof stapelt sich das Öl. Das Eingangslager der Chemiefabrik ist leer. Die Bahnlinie für das Salz funktioniert deshalb auch nicht und die Abnehmer der Chemiefabrik hungern.

Die KI könnte überfüllte Ladestationen prüfen und dann die Kapazität der Stecke zur Abfuhr erhöhen.

-------------------
Personenverkehr macht die Script KI anscheinend gar nicht?
In Pak128.german wäre da mehr Geld zu holen.

--------------------------
Grün hat sich auch bereits zweimal den Zielbahnhof durch Bau eine neuen Strecke beschädigt.
[Bild: ki_ka.png]
Unter dem Strich ---> funktioniert deutlich besser als die alte KI
Das mit den unterbrochenen Strecken ist noch etwas fehlerhaft. Also der Rückbau bei fehlerhaften Bau oder dem entfernen, wenn nicht mehr gebraucht. das dürfte noch für längere Zeit eine Baustelle bleiben.

Da hab ich mir einen Fehler rein gebaut. Bzw. sind sich kreuzende Strecken sehr problematisch. Da würde es helfen die Fahrzeugzahl abfragen zu können vor dem Abriss, was der Zeit noch nicht geht. Da muss erst Dwachs was einbauen. Das würde zumindest bei regelmäßigen Fahrten so was verhindern. Damit lassen sich nämlich Felder erkennen die mehrfach benutzt werden.

Es fehlen noch eine Reihe Streckenoptimierungen. Sowas lässt sich halt schlecht ins blaue rein machen. Wenn man gleich wiederholende Spielstände hat kann man so was austesten und sich dabei neue Fehler einbauen.


Aktuell teste ich das Linien-Management über längere Zeit. Und das dauert.

Darunter fällt der Streckenausbau und das Fahrzeug-Management. Knackpunkt bleibt hier, das vor allem bei Zügen zu langsame Loks gewählt werden bei zusätzlichen Zügen. Was bisher noch nicht aufgetreten ist ist die Bahnsteigverlängerung, wenn möglich.

Bevor das nicht getestet ist möchte ich keine weiteren Baustellen anfangen. Es sei denn ich hab eine zündende Idee wie ich unterbrochene Strecken verhindern kann.

Bei dem hohen Startkapital im pak128.german dürfte es auch mit nur einer KI gehen.

Weis jetzt nicht ob Du die Script-KI vom  Nightly verwendest (v 0.7.2) oder den aktuelleren Code vom Git-Repo.

(17-07-2021, Saturday-15:12:57 )makie schrieb: [ -> ]....
Es fällt auf dass die KI nicht prüft ob eine Fabrik schon mit diesen Waren versorgt wird. So bauen alle KI die gleichen Strecken. Es sollte das Eingangslager geprüft werden. Wenn es voll ist, ist es sinnlos dorthin weitere Linie zu bauen.
...

Das passiert nur dann, wenn alle KI gleichzeitig gestartet werden. Da die zugrunde liegenden Routinen bei jeder 2. KI gleich sind, suchen die auch immer in der gleichen Reihenfolge die Industrien ab. Allerdings geht das ins leere, wenn alle gleichzeitig planen. Hab noch keine Idee wie man da Abstände rein bekommt.

Auserdem gibt es eine Ketten-Prüfung. Bevor parallel gebaut wird, sollte erst die komplette Kette erschlossen werden. So zumindest der Plan. Pläne funktionieren nur nicht immer so wie sie in der Theorie geplant wurden.

Dann scheitern die langsameren meist am Bau, weil die geplante Stationskachel bereits bebaut ist.

Es ist eine Prüfung drin, die nur 2 Verbindungen zwischen 2 Industrien für die gleiche Ware zulässt.

Unrentable Strecken sollten nach einer Weile entfernt werden, bis auf die letzte Verbindung.

Staus sollten ebenfalls von selber aufgelöst werden nach einiger Zeit. Allerdings werden aktuell nur leere Lkw entfernt.


Bei meiner 1. Testkarte mit pak128.german passierte über ein Jahr gar nichts.
Bei der 2. geht langsam was, aber eine KI bewegt sich gar nicht.

Daran erkennt man das es schwierig ist, gleichbleibende Karten zu haben wo man Funktionen richtig austestet kann. Aber so soll es ja auch sein, das es variable ist.


(17-07-2021, Saturday-15:12:57 )makie schrieb: [ -> ]...
Personenverkehr macht die Script KI anscheinend gar nicht?
In Pak128.german wäre da mehr Geld zu holen.
...

Nein. Das kann nur die alte C-KI für Personenverkehr. Alle anderen machen nur Güterverkehr aktuell.

Personen bzw. Post kommt vielleicht irgend wann mal. Dazu muss aber erst mal das Strecken- und Linienmanagement richtig funktionieren.
Bei den Stationen gibt es auch noch Optimierungsbedarf. Es muss nicht für jede Ware eine extra Entladestation gebaut werden. Kombinierte Stationen machen aber auch wieder Probleme. Vor allem beim Rückbau.

Manchmal wären kurze Tunnel gut. Geht aber leider nicht aktuell.
Auch zu lange Brücken bringen die KI öfters ins straucheln. Besonders in den frühen Jahren wo die Kapazitäten und Geschwindigkeiten der Fahrzeuge noch gering sind.



(17-07-2021, Saturday-15:12:57 )makie schrieb: [ -> ]...
Die KI könnte überfüllte Ladestationen prüfen und dann die Kapazität der Stecke zur Abfuhr erhöhen.
...

tut sie auch von Zeit zu Zeit

Da hab ich mir aber über die Zeit mit neueren Änderungen bereits funktionierendes deaktiviert. Das ist ein kleines Minenfeld.
Ich habe die von der Nightly verwendet.

Ich hab noch einen Versuch Kartengröße 1500x1500 laufen lassen.

1. Problem:
Alle KI haben von der Textilfabrik zum Markt eine LKW-Linie gebaut. Jeweils mit 3 LKW und warten auf 100%.
Die Textilfabrik hatte aber noch keine Textilien auf Lager.
Den Ladehof haben alle 3 KI unmittelbar an die Hauptstraße gebaut. Die leeren LKW haben also auf der Hauptstraße gewartet. Effekt: --> Riesen Stau, die Lanz Bulldog mit dem Flachs für die Textilfabrik mitten drin.

Vor einem Ladehof mit Warten 100% sollten genug Kacheln Privatstraße sein, zum warten der Fahrzeuge der Linie.
Zumindest ich baue Wartestraßen oder Wartegleise vor den Haltestellen mit 100%. Sonst stehen sich wartende Abholer und liefernde LKW gegenseitig im Weg.

Nach ein paar Jahren haben die KI die wartenden LKW gelöscht, dann ging es weiter.
Der Lanz mit 10 km/h zieht zwar viel und ist billig, aber auf der ewig langen Strecke befördert der fast nichts.

Das wäre eine gute Eisenbahnstrecke gewesen.


Von was macht die KI die Wahl Eisenbahn <-> LKW abhängig?
Transportkapaziät = Laderaum * Geschwindigkeit / Entfernung im Verhältnis zu Produktionskapazität der Liefer- oder Abnehmer Fabrik je nach dem welche kleiner ist. Reicht der Bedarf zum Auslasten eines Zugs? Wenn nicht dann LKW, oder ergibt das Unmengen von LKW dann Zug oder Schiff.
Die KI sollte Strecken erst bauen, wenn die Fabrik auch diese Waren auf Lager hat. Vorher stehen die Fahrzeuge nutzlos rum.

Die KI sollte die Fabrikliste nicht der Reihe nach abarbeiten sondern per Zufall verwürfeln. Weil die KI sonst alle die gleichen Strecken bauen und sich so gegenseitig in die Quere kommen. Ich habe 70 Fabriken und einige Ketten auf meiner 1500x1500 gehabt, aber alle haben mit dieser einen Textilfabrik angefangen und fast baugleiche Strecken gebaut.
Zitat:Staus sollten ebenfalls von selber aufgelöst werden nach einiger Zeit. Allerdings werden aktuell nur leere Lkw entfernt.

Das ist auch gut so, denn sonst wäre der Lanz mit der Flachs für die Textilfabrik auch weg gewesen.

Kann natürlich auch ein Deadlock mit vollen Fahrzeugen geben.

Zu suchen wer jetzt schuld ist am Stau das ist nicht einfach.
Vielleicht könnte Prissi was einbauen damit das Script die Information bekommt welches Fahrzeug jetzt auf welches anderes Fahrzeug wartet. So dass sich eine Wartekette ergibt und man die Kette nach vorne auf das Problem zu gehen könnte. Am Kopf vom Stau ergibt sich dann ein Ring, (also das neue Fahrzeug auf das gewartet wird ist bereit in der Liste der im Stau stehenden Fahrzeuge), aber alle Fahrzeuge hinter dem Ring sind unschuldig.
Der Lanz ist kurios. Das erste Fahrzeug in der Liste ist ein alter kleiner LKW. Der zweite ist der Lanz mit einem Anhänger.
Die KI ist anscheinend mit dem Fahrzeug nicht zufrieden. Der Lanz wird mal gelöscht und dann wieder gebaut, gelöscht und wieder gebaut. Dass der zu klein und zu langsam ist merkt die KI nicht. Die Textilfabrik braucht etwa die 10 Fach Menge. Eigentlich wäre ein Wechsel zu einer Eisenbahnstrecke der richtige Weg.
-------------------------
Bahnhofsdurchfahrt durch ein einen Bahnhof wo ein Zug mit 100% Wartet.
Die KI sollte es vermeiden Strecken durch Haltestellengleise zu bauen. So teuer sind normale Gleise nicht, man sollte um den Bahnhof herum bauen.
(17-07-2021, Saturday-17:39:01 )makie schrieb: [ -> ]....
Bahnhofsdurchfahrt durch ein einen Bahnhof wo ein Zug mit 100% Wartet.
Die KI sollte es vermeiden Strecken durch Haltestellengleise zu bauen. So teuer sind normale Gleise nicht, man sollte um den Bahnhof herum bauen.

Das liegt weniger an der KI selbst sondern am Streckenbauer der in C programmiert ist.

Das gleiche würde passieren, wenn Du bei Start und Ziel einfach hin klickst.

Wie schon erwähnt, sind Streckenoptimierungen geplant. Die Streckenführung hängt halt stark von der Topologie der Karte ab und berücksichtigt standardmäßig keine Geländeanpassungen.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38