Das Transportwesen - ein Überblick


Die Logistik ist das Rückgrat jeder Volkswirtschaft, so auch in der Ökonomie in Eressea. Um so mehr kann es belasten, dass ein Grossteil der wöchentlichen Aufgaben einen erfahrenen Eressea-Herrscher nicht mehr fasziniert - wo liegen gerade die Ressourcen, wo befinden sich welche Transporter, was können diese zusätzlich auf ihren Wegen mitnehmen...das kann Zeit und Nerven kosten. In FFTools kosten diese Aufgaben faktisch keine Zeit mehr. Hier nun die notwendigen Informationen, um die Arbeitsweise und daraus resultierende Vor- und Nachteile des gescripteten Transports in FFTools zu kennen.

Die Beteiligten

Depots ( // script Depot)
Depots bilden eine Grundlage des Transportsystems. Gerade nicht zu transportierende Waren werden an einer Stelle in jeder Region zusammengetragen. Dort stehen sie allen anfordernden Einheiten in der Region und im TradeArea (der Insel) zur Verfügung.
Technisch geht das sogar soweit, dass am Anfang der Scriptbearbeitung alle Einheiten alle Ressourcen einmalig an das Depot abgeben, und in den folgenden Bearbeitungsschritten die benötigten Ressourcen mit der aktuellen Priorität wieder anfordern - insofern werden alle Ressourcen bei jedem Scriptlauf komplett umgewälzt.

Warenempfänger - Anforderer
Die Anforderungen nach Waren können durch viele Scripte generiert werden. Neben der einfachen direkten Anforderung mittels // script request erzeugen Skripte wie Material, Treiben, Lohn, Bauen, Schmieden, Handeln diverse Anforderungen. Jede Anforderung hat als markantes Merkmal die Priotität der Anforderung und anhand dieser Priorität werden die Anforderungen dann abgearbeitet, die höchste Priorität zuerst.

Transporter ( // script Transport mode=auto)
Kann ein Bedarf nicht in der gleichen Region befriedigt werden, gibt der regionsbezogene Materialpool die Anforderung an den Transportmanager weiter, der inselbezogen arbeitet. Er versucht, die angeforderten Waren bei den Depots der Insel zu lokalisieren (nachdem die jeweiligen Regionsanforderungen abgearbeitet und verteilt worden sind) und ordnet Transporter zu.
Die Transporter sind komplett autonom, fahren insbesondere keine festen Routen, können beliebig groß sein und je mehr es sind, desto besser.

Der Transportmanager (TM)
Die bisher genannten Beteiligten melden sich beim TM an und dieser trifft die finalen Entscheidungen. Er geht dabei recht strikt vor. Oberstes Kriterium ist die Priorität.

- die jeweils noch nicht vollständig bearbeitete Anforderung mit der höchsten Priorität wird weiter bearbeitet - es ergibt sich die Zielregion eines Transports
- es wird inselweit das grösste Vorkommen der angefragten Ressource gesucht (!wichtig, nicht das naheliegendste!), im Erfolgsfalle ergibt sich die Quellregion eines Transports.
- Nun wird gesucht, ob bereits ein Transporter in der Quellregion ist und bereits zur Zielregion fährt, welcher auch noch Kapazität frei hat. Wird einer gefunden, wird die Ladung ergänzt.
- Nun wird gesucht, ob bereits ein Transporter in der Quellregion ist und in Richtung der Zielregion fährt, also ihr näher kommt, gemessen in Reitrunden, welcher auch noch Kapazität frei hat. Wird einer gefunden, wird die Ladung ergänzt.
- Findet sich kein Mitfahrer, werden noch komplett unverbrauchte Transporter in der Quellregion gesucht und bei Erfolg der Strecke Quellregion->Zielregion zugeordnet und gleichzeitig mit der Ladung versehen.
- Kann auch dadurch die Anforderung nicht vollständig bearbeitet werden, werden die nächstliegenden freien Transporter nach dem passendsten durchsucht und dieser in die Quellregion beordert - auf diesem Weg steht er nachfolgenden Anforderungen natürlich als Mitnehmer zur Verfügung. Die Ressourcen werden bereits in der Quellregion "reserviert" und stehen nicht mehr für weitere Anfragen zur Verfügung.

Der ganze Ablauf wird pro Anforderung betrieben, bis
- der Gesamtbetrag der Anforderung erfüllt werden konnte, oder
- keine freien Ressourcen bei den Depots mehr gefunden werden können.
Dann gehts zur nächsten Anforderung.

Vorteil:
Absolute Priorisierung - am extremen Beispiel. Wenn die Errichtung einer Zitadelle die allerwichtigste Aufgabe ist, so bewirkt eine request-Zeile mit höchster Priorität, das *alle* verfügbaren Transporter zum Einsatz kommen. Es werden im Zweifel *alle* Transporter auf Grund einer Skriptzeile neu ausgesteuert. Der Vorteil liegt darin, dass sich der Nutzer sicher sein kann, dass *alles* für seine Anforderung getan wird, was irgendwie möglich ist.

Nachteil:
Absolute Priorisierung: Ein einzelnes Gut kann unter Umständen einen ganzen Transporter beschlagnahmen, obwohl ein ganzes Lagerhaus wartet, in die andere Richtung transportiert zu werden. Der Transportmanager verlässt sich absolut darauf, dass alle Bewertungsprozesse abgeschlossen sind und in eine angemessene Priorität gemündet haben.

Vorteil:
Reaktionsfähigkeit. Das Transportwesen reagiert auf Veränderung sofort, da es jede Runde, ja bei jedem Scriptdurchlauf, komplett neu berechnet wird. Steigt ein Reittalent, bekommt ein Transport mehr Pferde, sofort steigt seine Kapazität und er wird eventuell für andere Aufgaben geeignet. Wird eine Strasse neu fertig, werden diesen Umstand die Transporter ab sofort berücksichtigen - sie nutzen das Pathfinding von Magellan2.

Nachteil:
Keine längerfristige Planung - auch nicht die kleinste. Werden mehrere Transporter für mehrere Aufgaben in die gleiche Region beordert, stellt der TM regelmässig erst in der Ankunftsrunde fest, dass einige Transporter von dort in die gleiche Richtung fahren, mehrere Aufträge also mit einem Transporter abgearbeitet werden können und andere Transporter völlig umsonst in die Region beordert wurden - unschöne Leerfahrten sind die Folge.

Nachteil:
Kein Austausch zwischen Regionen mit existierenden Anforderungen. Wird ein Gut in einer Region selbst angefordert - egal mit welcher Prio, steht dieses Gut nicht mehr für den Rest der Insel zur Verfügung - egal mit welcher Prio in einer anderen Region dieses Gut angefordert wird. Klassiker ist der Rekrut mit dem Laenschwert in der Hand, und der Held in der Nachbarregion bekommt zwar das Beste, was die Nachbarregion zu bieten hat, dies ist im Beispiel aber nur ein normales Schwert.

Nachteil:
Mehr Transporter bewirken mehr. Bei zu wenigen Transportern, seien sie auch noch so ladefähig, werden minderpriorisierte Anforderungen eventuell nie berücksichtigt, da höherpriorisierte Transporte, auch wenn sie den Transport nicht voll nutzen, ihn voll beanspruchen. Es bleibt bei dieserart Zuteilung ein systematischer ungenutzter Rest der Kapazität, und dieser ist um so kleiner, je mehr Transporter eingesetzt werden und um so kleiner die jeweiligen Transportkapazitäten sind. Resultat sind auf grösseren Inseln bis zu 200 Transporteinheiten, die da vor sich hinwuseln. Ohne die Erhöhung des Einheitenlimits wäre das auf Dauer nicht tragbar gewesen.
Da sich aber der zeitliche Aufwand bei gescripteten Transportern sehr in Grenzen hält, egal wie viele Transporter es gibt, ist die große Anzahl von benötigten Transportern mehr unschön als störend.

Stand 08/2012, FFTools version 0.94, Fiete