Workaround: Verkehr eindämmen

  • => Es handelt sich hierbei um eine deutsche Übersetzung dieses Original-Threads. Und nein, kein Plagiat, sondern selbst übersetzt ;)


    Schritt 1


    Zuerst ist muss der GS File Viewer installiert werden. Die aktuelle Version downloaden und entpacken (z.B mit 7-Zip). Nun einfach aus dem entpackten Ordner das Programm ("GSFileViewer.exe") starten, es benötigt keine Installation.


    Schritt 2


    Im nächsten Schritt wird die benötigt Datei die man zur Modifikation braucht entpackt. Dazu im GSFileViewer auf "Open GS file..." klicken, zum CitiesInMotion-Ordner navigieren und dort die Datei "metro.gs" auswählen. Es öffnet sich daraufhin eine Übersicht mit weiteren Ordnern, die jeweils selbst aus Unterordnern und Dateien bestehen.


    Step2.png
    So sollte die Datei metro.gs aussehen


    Nun noch auf den 2. Button, "Extract whole GS file to folder..." klicken, zum CitiesInMotion Ordner navigieren und ihn auswählen, so dass er im Explorer-Fenster als ausgewählt erscheint (z.B blaue Unterlegung). Jetzt über den "Make New Folder"-Button einen neuen Ordner mit der Bezeichnung "metro" erstellen (unbedingt auf korrekte Schreibweise achten!). Den neuen Ordner wieder durch einen einfachen Klick mit der linken Maustaste auswählen und auf "OK" klicken, wodurch die metro.gs Datei in den neuen metro-Ordner entpackt wird.


    Achtung: Existiert der metro-Ordner, ignoriert das Spiel beim Starten die metro.gs Datei. Vom Hersteller veröffentlichte Updates editieren aber nicht den metro-Ordner, sondern die metro.gs Datei. Nach einem Patch oder Update also den metro-Ordner löschen und die metro.gs gegebenenfalls neu editieren, ansonsten erscheinen jegliche Verbesserungen nicht im Spiel!


    Schritt 3


    Im letzten Schritt wird schließlich die spezifische Änderung am Scipt vorgenommen, die unter anderem den Verkehr beeinflusst. Dazu im Windows Explorer zu "Cities in Motion\metro\scripts" navigieren, und dort die Datei "game.script" in einem Texteditor öffnen. Hierzu eignet sich zum Beispiel der von Haus aus mitgelieferte Windows Editor. (Persönliche Empfehlung: PSPad )
    Nun wird folgende Zeile benötigt:

    Code
    // time in seconds after the citizen can move again
    $grid.citizens.minCycleDuration = 300;
    $grid.citizens.maxCycleDuration = 600;


    Dazu einfach am besten STRG+F drücken und "time in seconds after the citizen can move again" eingeben.
    Die Zeilen beschreiben die Zeitspanne in der Einwohner nach der Ankunft am gewünschten Ort sich erneut fortbewegen können. Konkret: Trifft der Einwohner Klaus Peters im Kaufhaus ein, wird er es in der nächsten 300 Sekunden garantiert nicht verlassen, jedoch spätestens nach 600 Sekunden. Korrigiert man diese Zahlen nun nach oben, werden weniger Einwohner gleichzeitig mit dem Auto unterwegs sein - aber natürlich auch weniger Einwohner die öffentlichen Verkehrsmittel beanspruchen. Von daher also keine endgültige Lösung, sondern ein Workaround, der aber sicherlich schon einmal einige Besserung bringt. Empfehlenswert sind etwa Zahlen im Bereich von minCycleDuration = 450 sowie maxCycleDuration = 900, das lässt sich aber natürlich ganz einzeln nach Spielertyp abstimmen.


    Viel Erfolg,


    Markus


    Idee des Workaround: NullCharacter

  • Jetzt mal krass off-Topic, aber das kann ich mir nicht verkneifen
    Hier ist mein work around (ob das klappt weiß ich nicht da ich es nicht probiert habe XD)
    Ich spiele in Wien. Dort gibt es jede menge Tankstellen. Diese kann ich auch abreißen. Was passiert wenn ich alle Tankstellen in Wien abreiße?! Dann sollte doch der Verkehr inerhalb von 2 Monaten kein Problem mehr sein oder? :D :D :D :D

  • Tankstellen bieten, wie andere Bürogebäude, einfach nur Arbeitsplätze. Diese haben keinen weiteren Einfluss auf den Bestand der Einwohner (außer deren Arbeitsplätze natürlich). :)

  • Was willst du erwarten? Eine Mischung aus SimCity, Verkehrsgigang, Industriegigant, OTTD, Oil Imperium (oder wie es hies), Politik Manager und Sim3 ? Dann hoff mal ;)

  • So viel zum Thema SIMULATION :D


    Naja, die Einwohner können ja -theoretisch- noch Auswärts tanken. Immerhin führen auf den Maps Straßen in den Rand der Karte :)


    Danke für den Workaround, ich habe auf sowas gehofft. Kann man nicht auch irgendwo an der Einwohnerzahl einer Stadt direkt drehen? Hier im Forum hat doch jemand zb die Einwohnerzahl von Wien verfielfacht.


    Wenn man die Einwohnerzahl insgesamt also verringert, und die Idle-Zeit der Leute in Gebäuden vergrößert, könnte man in einigen Städten vekehrstechnisch einiges erreichen. Bin gespannt wie sich dass auf den Schwierigkeitsgrad auswirkt.

  • An der Einwohnerzahl kannst du in metro -> scripts -> environment.script schrauben


    Code
    $grid.citizens.homeMultiplier = 1.0;
    $grid.citizens.workplaceMultiplier = 1.0;


    Eine Verringerung müsstest du mit einer 0 vor dem Komma bewerkstelligen können, wird der Multiplier größer eins (z.B 50, absolut nicht empfehlenswert) bekommst du exorbitante Einwohnerzahlen ;)


    Anderer Ansatz wär eben wie beim Capacity-Mod einfach in | objects -> vehicles | die Kapazitäten der Fahrzeuge entsprechend nach oben zu korrigieren, das ein Bus / eine Straßenbahn pro Linie reicht, auch das sollte den Verkehr auflockern.


    Code
    this.displayName = MAIN.$strings.$vehicle_bus12;
    this.capacity = 26;


    Ein Blick wert dürften bei den Bussen auch diese Sachen sein:


    Code
    this.acceleration = 1.7;
    this.braking = 0.35;
    this.speed = 0.9;
    this.turning = 0.6;
    //this.tilting = 0.3;


    Code
    this.doorOpenStart = 0.0;
    this.doorOpenLen = 1.0;
    this.doorCloseStart = 35.0 / 30.0;
    this.doorCloseLen = 1.0;



    Code
    $price = 115000;
    $icon = MAIN.$window.video.new_texture("/metro/objects/vehicles/bus-12/bus12-icon.dds");
    $rendering = "metro/objects/vehicles/bus-12/bus12-render.dds";
    $reliability = 0.90;
    $fuelConsumption = 12;
    $electricityConsumption = 0;
    $attractiveness = 0.60;
    $speed = 55;
    $type = 0;
    $infoText = MAIN.$strings.$vehicle_bus12_info;



    Mit diesen ganzen Parametern den richtigen Grad zu finden, das ist die Kunst ;)

  • Hi,


    hab bisschen in den Scripts gesucht. In economy.script gibts folgenden Eintrag (fast am Ende):


    Code
    if ($num < 17700) {
    $grid.citizens.carMultiplier = clamp(1000.0 / max(1.0, $num - 22550.0) + 1.04, 0.0, 1.0);
      } else {
    $grid.citizens.carMultiplier = clamp(8000.0 / max(1.0, $num - 4000.0) + 0.25, 0.0, 1.0);
      }


    Die Berechnung ermittelt einen Wert zwischen 0.0 und 1.0, je nach Bevölkerungsdichte der Stadt, soll heißen das Verkehrsaufkommen. Die Funktion CLAMP stellt sicher, dass die berechneten Werte immer zwischen 0.0 und 1.0 liegen. Ich vermute, das ist das prozentuale Verkehrsaufkommen pro Kopf. Nun man kann man das ganz locker halbieren, vierteln oder sonstwie verkleinern, je nachdem welchen Wert man der Funktion CLAMP als Maximalwert liefert. Ich hab das bei mir wie folgt:


    Code
    if ($num < 17700) {
    $grid.citizens.carMultiplier = clamp(1000.0 / max(1.0, $num - 22550.0) + 1.04, 0.0, 0.5);
      } else {
    $grid.citizens.carMultiplier = clamp(8000.0 / max(1.0, $num - 4000.0) + 0.25, 0.0, 0.5);
      }


    Also nur maximal halb soviel Verkehr wie vorgesehen. Mir scheint, das wirkt. Ich hab das in Berlin 1920 ausprobiert. Es gibt noch reichlich Autos, aber nicht mehr so viel, dass es sich staut.
    Es kann aber sein, dass Savegames davon nicht betroffen sind.
    Könnt ihr das bestätigen?


    PS: Das sind allerdings nur Vermutungen :D

  • Hey Benhardt,


    endlich mal wer der sich mit den wirklich entscheidenden Dingen beschäftigt :) Jetzt net ausflippen Volcano :D Also ich hab auf die schnelle mal deine Vermutung ausgetestet. Und, JA! der Autoverkehr wird damit definitiv eingedämmt(ausser LkW´s ect). Nun aber stellt sich mir eine andere Frage: wenn man über diese Möglichkeit den Autoverkehr(Pendlerverkehr) reduziert, induziert man gleichzeitig die Nachfrage nach öffentlichen Vekehrsmitteln? Ich denke, JA. Allerdings habe ich das noch net austesten können. Zumal sich dies auch schwer testen läßt. Zumindest nicht sehr exakt. Sollte dies so sein, müßte man wohl wieder an anderen Hebeln drehen um dem entgegen zu wirken.


    PS: Finde es klasse das du dir die Mühe gemacht hast. Ich werd weiter mit dran bleiben.

  • Nach meinen Beobachtugen sind nun mehr Fußgänger unterwegs. Allerdings lässt sich schwer sagen, ob die nu lieber mit dem Bus fahren. Ich hab paar Monate testweise in Helsinki gespielt. Meine Haltestellen sind dadurch nicht so extrem überlaufen, wie ich dachte. Aber es sind auch nicht weniger Fahrgäste zu sehen, als ich vorher hatte. Ich denke, der halbierte Verkehr hat (noch) keine großen Auswirkungen auf den Nahverkehr. Die Anzahl Menschen in der Stadt ist ja noch die selbe. Die gehen eben alle zu Fuß :)
    Was mich jetzt noch interessiert ist die Kurve im Spiel, die das Verkehrsaufkommen anzeigt. Bei mir steht die auf 10%. Das heißt, auf rund 10.000 Bewohner in Helsinki kommen 1000 Autos. Ich weiß aber nicht, ob das jetzt durch die 0.5 auf 500 sinkt, oder ob das eigentlich 20% wären und durch den Multiplikator auf 10% gerutscht ist. Jedenfalls tut das mit weniger Autos richtig gut. Manchmal staut sichst zwar, aber eben nur kurz. Ich finde, so kann man recht vernünftig spielen.


    Ich werds auch weiter im Auge behalten.


    PS: Ich hab auch schon die Formeln für die Zuverlässigkeit der Fahrzeuge gesehen. Allerdings sind meine Berechnungen in Excel dazu etwas seltsam... werd ich mir auch nochmal angucken.

  • PS: Ich hab auch schon die Formeln für die Zuverlässigkeit der Fahrzeuge gesehen. Allerdings sind meine Berechnungen in Excel dazu etwas seltsam... werd ich mir auch nochmal angucken.


    Was für eine Formel? Da gibt es 1 Zeile im Ordner "Vehicles" und dem jeweiligen Fahrzeug. Z. B. im Ordner "bus-14", die bus14.script. Da steht die Zeile:

    Code
    $reliability = 1;


    Heißt soviel wie, Zuverlässigkeit = 100 %

  • Das trifft sich ich habs auch flott in Helsinki getestet. Erste Beobachtung mit exakt derselben Route mit beiden Variationen: Keine Veränderung der Fahrgastzahlen. Heißt,zumindest vorerst, DU hast den Jackpot geknackt. Zumindest bezüglich des Verkehrsproblems. Wie gesagt das sind alles Schnelltest´s aber auch die geben schon eine eindeutige Tendenz preis. Trotzdem würd ich es schön finden, wenn du die Formel die du gefunden hast, nochmals exakt entwirrst. Damit uns keine Kleinigkeiten( mit großen Folgen) entgehen. Ich für meinen Teil bräuchte da nochmal mehr Info zu deiner These über die Formel(was welcher einzelne Multiplikator ect. genau aussagt) usw. Danke im voraus.


    Hey Speedy,


    wie dir und auch allen anderen aufgefallen ist scheint genau diese Zeile wohl nicht den ganz großen Einfluß auf die Anfällugkeit zu haben. Ich vermute auch das es noch einen weiteres Skript gibt, das eine `allgemeine Anfälligkeit für Störungen´ beinhaltet. Unabhängig von deinem geposteten.

  • ... wie dir und auch allen anderen aufgefallen ist scheint genau diese Zeile wohl nicht den ganz großen Einfluß auf die Anfällugkeit zu haben. Ich vermute auch das es noch einen weiteres Skript gibt, das eine `allgemeine Anfälligkeit für Störungen´ beinhaltet. Unabhängig von deinem geposteten.


    Ich habs nur beim Fahrzeugkauf gemerkt. Langwierige Spielerfahrung konnte ich nicht machen; dazu hab ich keine Zeit. :( Bin aber trotzdem neugierig, was du rausfinden wirst. :D


  • Was für eine Formel? Da gibt es 1 Zeile im Ordner "Vehicles" und dem jeweiligen Fahrzeug. Z. B. im Ordner "bus-14", die bus14.script. Da steht die Zeile:

    Code
    $reliability = 1;


    Heißt soviel wie, Zuverlässigkeit = 100 %


    Die reliabilty ist der Wert, die ein Fahrzeug hat, wenn mans neu kauft. Dieser Wert wird aber bei jedem "Tick" im Spiel neu berechnet. Nämlich aus gefahrener Strecke, Fehleranfälligkeit und Wartungsinvest. D.h. Je weiter ein Fahrzeug fährt, je anfälliger das ist und je niedriger die Ausgaben für die Wartung sind, desto eher gehts Schrott. Ich hab die Formeln nicht hier (sitze im Büro), aber werd sie heute abend nochmal raussuchen. Es gibt in der Formel eine Konstante (200000, wenn ich mich nicht irre). Wenn man die verringert (steht unterm Bruchstrich), KÖNNTE das Ausfallintervall kleiner werden. Das hab ich aber noch nicht getestet.


    Anderes Thema: Die Formel des Verkehrsaufkommens.


    Da sind 2 Sachen drin, die man verstehen muss: CLAMP und MAX.
    MAX ist einfach: Es nimmt einfach den maximalen Wert der vorgegeben Werten. Beispiel: MAX (1,-1,0,2) würde 2 zurückliefern. In CiM gibts nur MAX (1,"BERECHNETER WERT"), wobei "BERECHNETER WERT" aus der Anzahl der Bevölkerung und einem Wert, den die da einfach abziehen entsteht. Die Entwickler unterscheiden 2 Sachen: Einwohnerzahl unter 17700 und darüber. Falls darunter, wird der Einwohnerzahl plump 22550 abgezogen. Dadurch geht der Wert weit unter null, und es greift durch MAX die 1. Bei Einwohnern über 17700 wird nur 4000 abgezogen, dadurch wird der Wert schnell groß (siehe Berechnung durch MAX). Da das unterm Bruchstrich steht, wird bei hoher Einwohnerzahl auch 8000 durch den Wert gerechnet. Nach meinen Beispielberechnungen ergibts sich meistens ein Wert zwischen 0 und 1, also so 0,84 oder 0,65. Für die interne Logik ist es erforderlich, dass die Werte schön zwischen 0 und 1 bleiben, daher CLAMP. Clamp ist eine mathematische Logik, die einfach sicherstellt, dass errechnete Werte in einer bestimmten Spanne bleiben. CLAMP(0.84,0.0,1.0) ergäbe 0.84, CLAMP(1.3,0.1,1.0) ergäbe 1.0. Der erste Wert ist der errechnete Wert, der zweite der Minimalwert, der dritte der Maximalwert. Begrenzt man den Maximalwert, kann eben höchstens nur der Wert genutzt werden, egal was die Berechnung ausspuckt. Dadurch gibts eben bei 0.5 nur höchstens halb so viel Autos, wie theoretisch rechnerisch möglich. Will man eine Mindestmenge an Autos haben, kann man auch den Minimalwert erhöhen, aber ich glaube, das ist in dem Fall eher nicht gewollt :-)


    Wie gesagt, das ist das, was ICH aus dem Code lese. Wie das im Hintergrund wirklich abläuft, weiß ich nicht. Da müsste man die Jungs und Mädels von Collosal anhauen.

  • Besser spät als nie bin ich jetzt auch auf diesen Thread gestoßen. Gut gefunden, funktioniert bestens! :)

    Aktuelle Ideen und Projekte oder: Was hoffentlich irgendwann mal fertig wird (Update Dezember 2010: Oder auch eher nicht)
    Mehr Konkurrenten | RCT2-Objekte in Locomotion | Gebäude aus Industrien klauen und als Stadtgebäude nutzen | LocoGUI-Klon für Gebäude | Regions-DAT-Tool | MusicChanger 2.0 | Weltraumflüge mit Loco-Maps darstellen (siehe Das Marsprojekt :) )


    The Visual Dictionary

  • Also so richtig hat sich nichts verbessert. Bei mir staut sich immer noch alles. Habe auch extra eine neue Map geladen.
    Im neuen Patch solls ja angeblich etwas besser sein. Aber finde da jetzt kaum einen unterschied. Der oben genannte Part hat sich folgendermaßen geändert:

    Code
    if ($num < 18000) {
        $grid.citizens.carMultiplier = clamp(500.0 / max(1.0, $num - 22550.0) + 0.89, 0.0, 1.0);
      } else {
        $grid.citizens.carMultiplier = clamp(9000.0 / max(1.0, $num - 1300.0) + 0.24, 0.0, 1.0);
      }


    Vielleicht könnt ihr daraus noch mehr ableiten.

  • Also so richtig hat sich nichts verbessert. Bei mir staut sich immer noch alles. Habe auch extra eine neue Map geladen.
    Im neuen Patch solls ja angeblich etwas besser sein. Aber finde da jetzt kaum einen unterschied. Der oben genannte Part hat sich folgendermaßen geändert:

    Code
    if ($num < 18000) {
        $grid.citizens.carMultiplier = clamp(500.0 / max(1.0, $num - 22550.0) + 0.89, 0.0, 1.0);
      } else {
        $grid.citizens.carMultiplier = clamp(9000.0 / max(1.0, $num - 1300.0) + 0.24, 0.0, 1.0);
      }


    Vielleicht könnt ihr daraus noch mehr ableiten.


    Ja, die haben bisschen an den Konstanten geschraubt. Man müsste das mal durch Excel jagen, um zu sehen, wie der Vorher-Nachher-Effekt mit der alten und der neuen Formel ist. Ich bleib dabei: Setzt den Maximalwert für CLAMP runter, dann reduzierts den Verkehr erheblich. :)

  • Ich hab beim Klicken auf die Autos festgestellt, das dise auch andere Sachen wie ihr Zuahsue und ihre Arbeitsstelle anfahren. Bspw. Tankstellen, könntemir schon vorstellen, dass das auch etwas mit dem Verkehr zu tun hat, und Tankstellen doch nicht nur Deko sind, wie weiter oben geschrieben wurde... .

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!