Springe zum Inhalt

[Dev] Der Resource Broker

Ein detaillierter Einblick, erklärt von Volker Wertich

Einleitung:

Das Kernelement eines Die Siedler-Spiels ist die Verteilung von Waren und deren Transport. Da viele dieser Prozesse automatisiert sind, ist ein komplexes Spielsystem nötig, um all die cleveren Entscheidungen zu treffen. Wir nennen es den „Resource Broker“ und er spielt schon seit dem ersten „Die Siedler“ eine große Rolle. Heute wollen wir euch einen detaillierten Einblick darauf geben, wie er funktioniert!

Der „Resource Broker“ entscheidet, welche Güter von welchem Siedler zu welchem Ort transportiert werden. Für den Spieler ist es wichtig, dass das automatisierte Regelsystem hinter diesen Entscheidungen einerseits effektiv ist, andererseits aber auch verständlich und vorhersehbar, da der Spieler verstehen können muss, was in seiner Siedlung passiert.

Da hunderte oder gar tausende von Transporte gleichzeitig ohne Befehle des Spielers ablaufen, muss der Spieler stattdessen in der Lage sein, Entscheidungen zu treffen, die den Resource Broker indirekt beeinflussen. Im Prinzip macht der Spieler das bereits die ganze Zeit, indem er Orte für neue Gebäude vorgibt, entscheidet, wann er Gebäude bauen oder ausbauen will oder indem er das Training von bestimmten Einheiten in Auftrag gibt. Aber wie wir sehen werden, stehen dem Spieler noch weitere Kontrollmechanismen zur Verfügung, wie das Erhöhen der Priorität für den Bau eines Gebäudes oder das Pausieren einer bestimmten Produktionskette.

1. Warenstapel

Ein Warenstapel ist eine Anzahl bestimmter Waren an einem bestimmten Ort. Es gibt Stapel, die entweder Waren anbieten, Waren anfordern, oder beides gleichzeitig tun.

Stapel, die Waren anbieten:

  • (A) Ausgabe-Stapel von Resourcengebäuden. Zum Beispiel beim Holzfäller. Nach dem Fällen eines Baums bringt er den Holzstamm zurück zu seiner Hütte, wo dieser dann auf dem Stapel angeboten wird.
  • (B) Ausgabe-Stapel von Produktionsgebäuden. Die Schmelzhütte beispielsweise verwandelt Kohle und Eisenerz zu Eisenbarren und bietet die Eisenbarren, sobald sie fertig sind, an.
  • (C) Stapel, die zur Zeit transportiert werden. Auch ein Stapel, der zur Zeit transportiert wird, kann angeboten und umgeleitet werden. Wenn zum Beispiel ein Eselkarren fünf Holz, die zur Zeit nicht benötigt werden, zu einem Lagerplatz bringt, währenddessen durch den Spieler aber ein neues Gebäude in Auftrag gegeben wird, das ebenfalls Holz benötigt – dann werden diese Steine zum neuen Bauplatz umgeleitet. Alles, das aktuell zu einem Lagerplatz transportiert wird, kann weiterhin angeboten werden.

Ein weiterer Grund, durch den ein transportierter Stapel zu einem Angebot werden kann, ist, wenn Befehle gecancelt werden. Wenn durch das Abbrechen eines Bauauftrags oder das Zerstören eines Gebäudes durch den Gegner ein Transport kein Ziel mehr hat, wird dieser gecancelt. Die Güter werden wieder angeboten.
Wenn diese zur Zeit nirgendwo gebraucht werden, lädt der Träger diese direkt in der Nähe ab und erstellt somit einen „Landschafts-Stapel“.

  • (D) Landschafts-Stapel: Aus unterschiedlichen Gründen – ein Beispiel wurde oben genannt – kann es zu Landschafts-Stapeln im Land des Spielers kommen. Diese bieten entsprechend ebenfalls Güter an.

Stapel, die Waren anfordern:

  • (E) Produktionsgebäude: Die Eisenschmelze, zum Beispiel, hat Eingabe-Stapel für Kohle und Eisenerz, um zu funktionieren.
  • (F) Trainingsgebäude: Die Kaserne, zum Beispiel, fragt nach Schwertern und Rüstungen, um neue Einheiten auszubilden.
  • (G) Bauplätze: Jedes neue Gebäude, das errichtet wird, hat Eingabe-Stapel.

Stapel, die gleichzeitig Güter verlangen und anbieten:

  • (H) Lagerplätze bieten die Güter, die sie lagern, gleichzeitig an und verlangen sie auch. Sie verlangen Güter, um sicherzustellen, dass der Lagerplatz ausgenutzt wird und bieten die bereits gelagerten Güter an.

2. Prioritäten

Jetzt, da der Resource Broker die Orte und die Menge an angebotenen Waren, sowie die Orte von geforderten Waren kennt, tritt das Prioritätssystem in Kraft.

Wenn es einen großen Überschuss von Gütern gibt und genug Transportkapazitäten zur Verfügung stehen, sind Prioritäten nicht so wichtig: Jede Anfrage kann erfüllt werden. Aber als Spieler versucht man, die eigene Wirtschaft zu optimieren und das meiste aus der eigenen Warenproduktion herauszuholen; das heißt, es wird immer wieder einen Mangel an bestimmten Waren geben und hin und wieder vermutlich auch einen Engpass bei den Transportkapazitäten.

Um sicherzustellen, dass der Resource Broker die richtigen Entscheidungen trifft, gibt es unterschiedliche Prioritätslevel – und innerhalb eines Prioritätslevel gibt es nochmals Unterlevel und Dringlichkeiten, um diese Entscheidungen zu beeinflussen.

Lasst uns einmal die Prioritäten durchgehen, angefangen bei der Niedrigsten:

Priorität 5: Die niedrigste Priorität ist Level 5, die alle Anfragen durch Lagergebäude beinhaltet. Das betrifft entsprechend die Überflussproduktion, die zu den jeweiligen Lagerplätzen gebracht und dort gelagert werden soll, und ist in der Regel nicht dringend. Wie zuvor erwähnt können alle Transporte zu Lagergebäuden ihre transportierten Waren weiterhin anbieten und können entsprechend umgeleitet werden, sollte woanders Nachfrage bestehen.

Priorität 4: Die Standard-Priorität ist Level 4, was alle normalen Resourcen-Anfragen von Produktions- und Rekrutierungsgebäuden beinhaltet. Dies betrifft die Mehrheit aller existierenden Anfragen und beinhaltet auch die kontinuierliche Güter-Verteilung. Innerhalb dieser Kategorie werden alle Entscheidungen anhand von Dringlichkeiten getroffen, die weiter unten erklärt werden.

Priorität 3: Die höchste automatische Priorität ist Level 3, diese beinhaltet alle Anweisungen zum Bau oder Ausbau, die aktuell Resourcen benötigen.

Grundsätzlich definieren wir, dass alles, das der Spieler bauen möchte, eine höhere Priorität hat, als die normalen Wirtschaftsanfragen von Priorität 4. Dies kann natürlich unter gewissen Umständen nicht ganz zutreffen, ist generell aber ein guter Ansatz, da die neuen Gebäude oft eine Schlüsselrolle im Spielerfortschritt darstellen und die damit verbundenen Resourcen-Anfragen einmalig sind. Die Anfragen aller fertig gestellten Gebäude sind regelmäßiger Natur.

Innerhalb von Prioritätslevel 3 gibt es nochmal 2 Unterlevel, die weiter über die Priorität entscheiden:

  • Das erste Unterlevel entscheidet, dass Gebäude Priorität über Befestigungen, und Befestigungen Priorität über Straßen haben. Wie oben ist das eine voreingestellte Priorität die meist, wenn auch nicht immer, eine gute Wahl ist.
  • Das zweite Unterlevel definiert, dass alte Bauaufträge Priorität über neuere Bauaufträge haben. Das stellt sicher, dass die Baureihenfolge des Spielers Bedeutung hat, und dass nach einer Weile 5 von 10 Gebäuden fertig und am Laufen sind, anstatt dass 10 halbfertige Gebäude herumstehen, die gar nichts produzieren.

Priorität 2: Um sicherzustellen, dass der Spieler die Entscheidungen des Resource Brokers wenn nötig überstimmen kann, geben wir dem Spieler eine „Hohe Priorität“-Funktion für fertige Gebäude, die die Priorität von 4 in 2 umwandelt. Das bedeutet, dass der Spieler einzelne fertige Gebäude höher prioritisieren kann, als es der Resource Broker entscheidet. Das ermöglicht dem Spieler, zum Beispiel, dem Waffenschmied die höchste Priorität zuzuweisen, wenn er die Schwertproduktion aktuell für die Wichtigste erachtet.

Priorität 1: Der Spieler kann die “Hohe Priorität” Funktion auch für Bauplätze verwenden, was deren Priorität von 3 zu 1 erhöht. Die Unterlevel von Priorität 3 bleiben bestehen, was bedeutet, dass wenn der Spieler fünf Bauplätze auf „Hohe Priorität“ stellt, die gleichen Unterprioritätsregeln greifen, wie unter Punkt 3 ausgeführt.

3. Dringlichkeiten und Distanzen

Während die Prioritäten bereits alle möglichen Verbindungen zwischen Angeboten und Nachfragen einteilen, kann es innerhalb der gleichen Priorität dutzende oder gar hunderte von gültigen Angeboten und Nachfragen geben. Eine einzige Baustelle kann die fehlenden Bretter für den Bau von jeder Sägemühle erhalten, die der Spieler besitzt oder von jedem Lagerhaus, das Bretter lagert oder auch von jedem Landschaftsstapel, der existiert. Jetzt greifen Dringlichkeiten und Distanzen um zu entscheiden, welches Angebot mit welcher Nachfrage verbunden wird.

Dringlichkeiten sind von hoch zu gar nicht geordnet und funktionieren folgendermaßen:

Der Eingangsstapel eines Bauplatzes hat eine höhere Dringlichkeit wenn er leer oder fast leer ist, da das Gebäude ohne die Rohstoffe nicht gebaut werden kann.

Der Eingangs-Stapel eines Produktions- oder Rekrutierungsgebäudes hat eine höhere Dringlichkeit wenn er leer oder fast leer ist, da das Gebäude ohne die Rohstoffe nicht arbeiten beziehungsweise Einheiten trainieren kann. Die Dringlichkeit geht langsam auf null zurück, wenn sich der Stapel füllt.

Der Ausgangsstapel eines Rohstoff- oder Produktionsgebäudes hat eine höhere Dringlichkeit, wenn er voll oder fast voll ist, da das Gebäude aufhört, zu arbeiten, wenn es keinen Platz mehr zum Lagern von Waren hat.

Die Landschaftsstapel erhalten eine überdurchschnittliche Dringlichkeit, aber keine sehr hohe. In der Theorie könnten sie dort unbegrenzt existieren, aber für eine bessere Übersicht für den Spieler ist es besser, sie früher oder später loszuwerden.

Distanzen sind relativ offensichtlich: Je höher die Distanz zwischen einem anfragenden und einem anbietenden Stapel ist, desto weniger effektiv ist der Transportauftrag verglichen mit einem Transport mit geringerer Distanz. Es ist wichtig, zu beachten, dass dabei die tatsächliche Laufdistanz und nicht die Luftlinie zur Berechnung verwendet werden muss.

Distanzen werden gemeinsam mit Dringlichkeiten für Entscheidungen herangezogen, was dazu führt, dass der Resource Broker die doppelte Distanz akzeptiert, wenn die Gesamt-Dringlichkeit ebenfalls doppelt so hoch ist. Da die Dringlichkeitswerte individuell angepasst werden können, gibt das dem Game Design Team die Möglichkeit, den Einfluss von Entfernungen auf Entscheidungen direkt zu kontrollieren.

Das Ergebnis: Schließlich, wenn der Resource Broker eine Nachfrage mit einem Angebot verbunden hat, wird dem Transportjob ein Träger zugewiesen – aber das Thema Träger überspringen wir erstmal, da wir uns den unterschiedlichen Trägertypen und deren Verhalten in einem späteren Artikel nochmal genauer widmen.

4. Das erweiterte Beispiel

Jetzt, da wir alle Regeln haben, ist es Zeit, deren Einfluss anhand einiger Beispiele zu erklären.

Lasst uns annehmen, dass wir eine Holzfällerhütte und eine Sägemühle etwa 30m entfernt voneinander stehen haben und eine weitere Sägemühle etwa 60m.

Der erste Baustamm, den der Holzfäller produziert, wird zur nächstgelegenen Sägemühle gebracht, da sie näher steht und Distanzen wichtig sind. Da die Sägemühle schnell genug ist, um mit einem einzigen Stamm fertig zu werden, bleibt ihr Eingangsstapel leer oder fast leer und alle Transporte gehen nur zu dieser nahe gelegenen Sägemühle, was in Ordnung ist.

Wenn wir in unserem Beispiel nun einen weiteren Holzfäller neben den bereits existierenden setzen, kommt es bald dazu, dass sich mehrere Stämme im Eingangsstapel der Sägemühle stapeln – die Dringlichkeit der Nachfrage nach weiteren Stämmen sinkt. Ab diesem Punkt werden die Siedler damit anfangen, Stämme auch zur weiter entfernten Sägemühle zu bringen. Normalerweise wird der Eingangsstapel der zweiten Sägemühle halb so groß sein, wie der der ersten Sägemühle, da die Distanz doppelt so groß ist.

Wenn wir nun noch zwei Holzfäller nahe der zweiten Sägemühle platzieren, werden diese Stämme entsprechend zur zweiten Sägemühle transportiert – bis die Eingangsstapel beider Sägemühlen gleich groß sind.
Da Distanzen und Dringlichkeiten ausgeglichen sind, gehen die Transporte jetzt in der Regel immer zur nächstgelegenen Sägemühle.

Wenn wir annehmen, dass die vier Holzfäller mehr Stämme produzieren, als die beiden Sägemühlen verarbeiten können, werden die Eingangsstapel beider Gebäude bald voll sein und die Ausgangsstapel der Holzfäller ebenfalls. Wenn das passiert, werden sie aufhören zu arbeiten, bis sie wieder Platz haben. Wir könnten nun eine weitere Sägemühle bauen oder die vorhandenen ausbauen. Aber stattdessen machen wir etwas ganz anderes: wir bauen ein Lager für die Stämme!

Jetzt, aber nur wenn wir genug freie Transportkapazitäten haben (da das Lagern von Gütern nur Prioritätslevel 5 ist), werden Träger die Stämme aufheben und zum Lager bringen. Das stellt sicher, dass die Holzfäller weiterarbeiten, da ihre Ausgangsstapel nicht mehr voll sind, weil wir die Größe unseres Puffers erhöht haben. Nur wenn das Lager ebenfalls voll ist, werden sie wieder eine Pause einlegen.

Aber…bevor das passiert, geben wir den Bau von fünf neuen Wohnhäusern in Auftrag, für deren Konstruktion wir ebenfalls Stämme benötigen. Je nach Distanz werden die Materialien vom Lager oder direkt von den Holzfällern zu den neuen Bauplätzen gebracht.

Wenn wir zu wenig Träger haben, würden diese neuen Befehle zuerst abgearbeitet werden, da neue Bauplätze Priorität über normale Wirtschaftstransporte wie “Holzfäller -> Sägemühle” haben. Das bedeutet, dass die Sägemühle nun erstmal mit den Stämmen arbeitet, die sie bereits auf Lager hat. Im schlimmsten Fall hören die Sägemühlen vorübergehend auf zu arbeiten, bis die Träger die Baumaterial-Lieferungen abgeschlossen haben.

Wenn der Spieler aber dringend Bretter von den Sägemühlen braucht, kann er diesen Gebäuden „hohe Priorität“ zuweisen, was die Rohstoffanfragen der Sägemühle(n) über alles hebt, das der Resource Broker selbst entscheidet.

Jetzt bekommen die Sägemühlen alle verfügbaren Stämme bis ihr Eingangsstapel voll ist – nur der Überschuss wird zu den Baustellen geliefert. Im schlimmsten Fall werden die in Auftrag gegebenen Gebäude für lange Zeit nicht fertiggestellt, solange wir auf der Priorität für die Sägemühlen bestehen (die wir natürlich jederzeit deaktivieren können).

Lasst uns annehmen, dass wir jetzt dringend eine neue Stadtmauer brauchen, um uns vor Feinden zu schützen, da wir gerade unseren Gegner ausgekundschaftet haben und befürchten, dass ein Angriff bald bevorsteht. Wir bauen also schnell zwei Türme und verbinden sie mit einer Mauer.

Da Befestigungsanlagen keine Priorität über reguläre Gebäude bekommen, würden unsere Siedler Stämme erst zu unseren Wohnhäusern bringen. Da wir aber mit einem Angriff rechnen, stellen wir Türme und Mauer auf „hohe Priorität“ – nun werden alle Stämme zuerst dorthin geliefert, was bedeutet, dass Türme und Mauer so schnell wie möglich hochgezogen werden.

Wir hoffen, dass diese detaillierte Einsicht euch ein paar interessante Infos geboten hat und ihr diese später im Spiel zu eurem Vorteil verwenden könnt!

de en es fr it pl ru

21 Kommentare

  1. IppoSenshu

    Das hört sich alles toll an und nach viel Optimierungsspaß – darauf freue ich schon. Bin gespannt, welche Features ihr anbietet, damit man bei den Produktionen und der ganzen Wirtschaft den Überblick behält.
    Optisch sieht das mal wieder genial aus! 🙂

  2. Rakvak

    Cool, vielen Dank!
    Sehr interessanter Artikel, freue mich auf mehr 🙂

    Nehmt endlich mein Geld 😛

    LG
    Niko

  3. OostfreesJung

    Toller und ausführlicher Artikel. Ich hoffe das später ein genauso ausführliches Tutorial mich ins Spiel begleitet. Mit der History Edition bin ich ja schon fleißig dabei, die Systeme dahinter zu verstehen. In den zahlreichen Kampagnen und in Multiplayer-Matches 🙂

    Antworten zum Kommentar anzeigen
  4. Sauerbraten95

    Ein sehr aufschlussreicher Artikel, sowohl was die interne Mechanik betrifft als auch den Mehrwert, wenn man später seine Stadt optimieren will.

    Was mich daran noch interessiert: Es gibt viele Möglichkeiten, die das Scheduling prinzipiell ändern können. Fertigstellung und Abreißen von Straßen, Einnahme von Lagern und Transportwegen durch den Gegner … Im Ergebnis ist plötzlich ein anderer Weg schneller ist. Wird in allen Fällen die Distanzen und Dringlichkeiten (ggf. inkrementell) neu ausgewertet und die Träger schlagen einen neuen Wege ein?

    Die Distanzberechnung habe ich aus dem Artikel so verstanden, dass der kürzeste Transportweg herangezogen wird. Wie sieht es aber aus, wenn die Transportkapazitäten knapp sind, aber längere Alternativrouten existieren. Werden dann Waren mit niedriger Priorität/Dringlichkeit umgeleitet? Wann wird also entschieden, welchen Weg eine Ware nimmt?

    Gerade bei Siedler 8 hatte ich den Eindruck, dass Alternativrouten nicht genutzt wurden.

    Antworten zum Kommentar anzeigen
  5. LunicLynx

    Was mich interessieren würde ist ob das 8 waren Problem gelöst wurde.

    In Siedler 1,2,3 und 4 ist es so das sobald 8 Träger unterwegs sind diese einen Eingabe-Warenstapel „blockieren“. Am schlimmsten war dies immer beim erobern von neuem Land, das dann sehr weite Transport Wege für Holz und Stein bedeutet und die lokale näherliegende Produktionsstätte ignorierte.

    Ähnliche Probleme gab es auch bei Produktionsketten die weit auseinander liegen. Der Siedler zum abholen eines Baumstamms geht erst los sobald dieser am abholplatz liegt. Besser wäre es wenn er dann losgeht, in dem Moment wo der Holzfäller das Gebäude zum fällen verlässt und es sich absehen lässt das ein Baumstamm verfügbar seien wird.

    Antworten zum Kommentar anzeigen
  6. sunny-u7

    Ja, so in etwa habe ich mir das vorgestellt. Im ersten Kapitel ist unter C) glaube ich mal Steine mit Holz verwechselt worden, sonst kann ich mir den Transportauftrag jedenfalls nicht erklären. Sonst sehr ausführlich erklärt, schade das die Träger noch nicht weiter thematisiert wurden. Hoffentlich kommt der Artikel auch bald.

    Antworten zum Kommentar anzeigen
  7. dirkie71

    Aus diesem ganzen Text inkl. Screens, hätte man super ein Video machen können!

    Antworten zum Kommentar anzeigen