Beiträge von WernerK

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


    Das schrieb er ja schon:

    Zitat

    Die lila Balken stehen für UK-Style Passanger Station, Nl-Station, PLM1 und PLM2.

    Wenn die meisten davon nicht installiert sind, dann sind sie womöglich Voraussetzung für eine irgendeine andere Mod, die danach sucht. Es gibt Mods, die setzen zahlreiche andere Mods voraus, ohne dass du deren Komponenten jemals wirklich brauchst. Du musst sie aber trotzdem laden. Hast du die anderen drei auch mal installiert?

    Die lila Rechtecke haben nichts mit dem Absturz zu tun, deuten aber darauf hin, dass sich der Ersteller der jeweiligen Mod um ein entsprechendes Menübild herumgedrückt hat. ;-) Die Fehlermeldung könnte darauf hinweisen, dass irgendein Repository-Eintrag - vermutlich ein Bahnsteig-Modul o.ä. - gesucht wird, aber nicht vorhanden ist - oder einfach ausgedrückt: Irgendwas fehlt da.


    Hast du NEP installiert? Dann probiere mal aus, ob es ohne NEP evtl. funktioniert. Teste es notfalls mal auf einer winzigen Versuchsmap. Lade nur die problematischen Mods und prüfe, ob der Fehler dann weg ist. Dann kannst du ja den Rest nach und nach hinzuladen.

    Da du da wohl der richtige Ansprechpartner für qualitativ hochwertigen Kleinkram :-) bist, hätte ich da noch ein paar Wünsche - oder besser gesagt Anregungen, denn es ist ja kein Muss:

    • Wilde Müllkippe. Ja, so ein richtig realistischer Schandfleck! 8) Oder vielleicht auch nur ein bisschen Müll, den man irgendwo auf einer Brachfläche oder am Bahndamm platzieren kann
    • Bei den Wald-Assets fehlen noch Wegweiser, Treppen und Zäune aus unbehandelten Holzbohlen/-Stämmen. Und vielleicht noch eine primitive Holzbrücke.

    Ich habe festgestellt, dass NEP sich irgendwie mit folgenden Mods beißt:


    Freight Yard Framework

    NL Modular Station


    Kann jemand das nachvollziehen bzw. sind diese Probleme bekannt? Ich könnte mir vorstellen, dass weitere Bahnhofs-Mods betroffen sind.


    Es läuft auf der aktuellen Spielversion unter Windows.


    Als Fehlermeldung kommt von den betreffenden Mods dann sowas:

    Code
    Error message: error: [string "C:/Program Files (x86)/Steam/steamapps/workshop/content/1066780/1974610721/res/construction/station/rail/modular_station/yard_station.con"]:953: attempt to perform arithmetic on field '?' (a nil value)
    stack traceback:
    =[C](-1): __add
    C:/Program Files (x86)/Steam/steamapps/workshop/content/1066780/1974610721/res/construction/station/rail/modular_station/yard_station.con(953): terminateConstructionHook
    @res/config/base_config.lua(102): ?
    
    File name: C:/Program Files (x86)/Steam/steamapps/workshop/content/1066780/1974610721/res/construction/station/rail/modular_station/yard_station.con
    
    Key: game/config/ConstructWithModules
    Zitat

    UG verschweigt, das man dann noch assets dran basteln kann. Auch da gibt is irgendwo in den config Dateien ein Beispiel, das sieht dann so aus:

    Das hat mich seinerzeit mal neugierig gemacht, weil das genau mein Thema war. doubleCrossbar ist ein zweigleisiger Ausleger, also eine seitlich angebrachte lange Querstange. Es gibt auch ein .mdl dazu, das mit seinen schwarzen Flecken reichlich unvollendet aussieht. ;-) Ich habe dann tatsächlich mal bei UG nachgehakt, ob das überhaupt irgendwo benutzt wird und irgendeine Relevanz hat. Nein, es wird nicht benutzt, von daher ist es wohl überflüssig. Ich tippe mal, es ist das Relikt eines früheren Versuchs, tatsächlich Auslegermasten zu implementieren, der wohl aus Zeit-, Geld-, Personal- oder Performancegründen schlichtweg nicht weiterverfolgt wurde. Bei den Straßen-Definitionen gibt es ja einige dieser "Leichen", so gibt es auch Einträge für separat definierte Fahrspuren, also genau das, was sich alle hier wünschen ;-) Aber leider unbenutzbar. :-(


    Und das dort eingetragene Asset ist einfach nur eine auf den Masten aufgesetzte Lampe. Weil der UG-Ausleger schrottig ist, habe ich übrigens für mein ATS auf eine eigene Konstruktion von Elli zurückgegriffen.

    Zitat

    Aber gerade weil manche Sachen wie EdgeObjects relativ auf die Länge bezogen werden, stellt sich die Frage wie TPF2 die Länge genau berechnet.

    Bevor UG es dir verrät, nimm einfach das hier :) :

    Für erweiterte Messungen wie die Nettolänge zwischen echten Kreuzungsknoten (geo.getNetLength) schau mal in mein geoutil. Wenn keine Kreuzungsknoten vorhanden sind, ist die Nettolänge übrigens gleich der Gesamtlänge, und du kannst dir obige Formel sogar ersparen.

    BTW: Im Gegenzug könntest du mir erklären, was Natural Splines sind. ;-)

    Zitat

    Das mit dem EdgeGeometry sieht interessant aus, wobei bei mir auch wenn ich eine Gerade baue in den Proposal Daten (entity2tn) immer EdgeGeometry.CubicSpline angezeigt bekomme

    Eine Gerade ist ja auch ein Cubic Spline, also wahre Aussage. Wobei andere Figuren auch Cubic Splines sind, aber eben schon wieder Sonderfälle. Was kommt denn raus, wenn du einen Kreisbogen baust?

    Übrigens gibt es in der UG API die Funktion Tranport.EdgeGeometry, wohinter sich offensichtlich eine Art Baukasten für Splines verbirgt. Leider konnte mir seinerzeit niemand mit genaueren Informationen weiterhelfen, weil "der Programmierer nicht erreichbar" war. Also wieder das übliche Rätselraten, auch wenn ein paar Parameter dokumentiert sind. Sollte jemand sich damit auskennen, wäre es nicht schlecht, N#heres zu erfahren.


    Zur Längenberechnung von Splines gibt es wohl verschiedene Methoden. Die einfachste, nämlich Quick-and-Dirty, habe ich bereits erwähnt. Sie ist schnell, einfach, mäßig genau und setzt kooperatives Verhalten voraus. (Die Realität kennen wir von den paramkeys :D^^:P8o=O|| ) Ob sie auch bei UG Verwendung findet, weiß ich nicht. Die präziseste ist die nach Gauss-Lengendre, aber selbst die ist ein Näherungsverfahren.


    Zum Thema Splines gibt es auch ein ausführliches Kompendium von Pomax, und mit etwas Einarbeitung versteht man irgendwann sogar mindestens ein Viertel von dem, was da erklärt wird. :D Es handelt zwar von Bézierkurven, aber die lassen sich ja leicht in Hermite-Kurven und auch wieder verlustfrei zurückkonvertieren.

    Bei Kreisbögen ist die Länge der Tangenten so ziemlich gleich der Länge der Kurven. Bei S-Kurven und Ellipsen passt immer noch der Mittelwert der Länge der Tangenten. Eine willkürliche Veränderung der Längen ist zwar theoretisch machbar, es ist aber dringend davon abzuraten, da zum Einen keine ansehnliche Ergebnisse, sondern irgendwelche verbeulten, eirigen Splines entstehen. Außerdem werden Modder, die die Quick-and-Dirty-Messmethode (nämlich Tangentenlänge = Splinelänge) einsetzen, z.B. Lollus, dir aufs Dach steigen. ^^ Das gilt auch für Geraden, wo du theoretisch sogar die Tangentenlänge ändern kannst, ohne dass sich die Optik ändert. Da sollte eigentlich auch immer das ungeschriebene Gesetz gelten, dass die Tangente, die ja dann exakt auf der geraden liegt, dieselbe Länge wie die Gerade hat.


    Wie gesagt, die Tangentenlänge entstpricht nur ungefähr (und rein zufällig) der Länge des Splines. Bei regelmäßigen Kreisbögen ist es ziemlich exakt, weicht aber etwa ab 120 Grad ab (irgendwann wird es recht merkwürdig), so dass du wieder eine Spezialformel einsetzen musst. streetutil.addEdgeAutoTangents macht das auch. Du kannst auch grundsätzlich die etwas präzisere Formel anwende, die ich in meiner Anleitung aufgeführt habe. Auf jeden Fall ist von zu großen Kurvenwinkeln abzuraten.


    Aufgrund der Ungenauigkeit wird es interessant, wenn du eine Kurve nach De Casteljau teilst. Dann werden die beiden Tangenten nämlich exakt :D unterschiedlich lang, obwohl der Kurvenverlauf sich nicht ändert. Ich habe da schon mit Lollus einen langen Disput drüber gehabt. Das kann also passieren, UG ändert da übrigens auch nichts dran, sondern belässt die Tangenten so.


    Und die Faustregel: Exakt kriegst du mit den kubischen Splines nichts hin, außer die Unexaktheit bei der Kurventeilung. :D Aber wenn es gut aussieht, ist es die Hauptsache.


    Du kannst übrigens im Spiel nichts anderes als kubische Splines verwenden. Du musst dich also mit den Gegebenheiten anfreunden.

    Tja, eigentlich wollte ich auch irgenwann noch einen Kurven-Vergleichmäßiger schreiben. ;-) Aber ich kann ja nicht alles gleichzeitig machen. Die Sache mit den Klothoiden habe ich übrigens beim Gleisbauer so gemacht: Ich berechne zunächst die Klothoide nach einer simplen Näherungsformel, wie sie auch bei der "echten" Bahn benutzt wird. Dann gehe ich hin und wende auf die Punkte und Tangenten einfach den UG-Algorithmus für eingepasste Kurven an, zu finden unter streetutil.addEdgeAutoTangents. Richtig, so entstehen im Spiel auch alle manuell gezogenen Gleisverbindungen! Das Ergebnis ist zwar nicht geometrisch exakt, aber auf einer kurzen Strecke völlig ausreichend. Exaktere Algorithmen dürften wohl nur in den Tresoren von irgendwelchen CAD-Softwarefirmen zu finden sein. Auch die Rechengeschwindigkeit spielt im Spiel eine Rolle. Ganz aufwändig wird die Berechnung einer Übergangskurve ("Ei-Kurve") zwischen zwei Bögen. Wenn man da erst einmal die Klothoide hat, wird man sie auch da durch die streetutil-Funktion annähern müssen, alles Andere wäre purer Wahnsinn.


    Elliptische Kurven, die wie im Spiel ihren Radius auf der gesamten Länge ändern, gibt es aber beim Vorbild normalerweise nicht. Es wird auch nicht alles mit Klothoiden gemacht, es gibt da auch z.B. Parabeln als Grundlage.

    Bei modernen Anlagen ist oft alles bunt angepinselt. Ich meinte sowas. Ist natürlich auch so schon toll, wäre aber das Sahnehäubchen, zumal nur die Texturen ein wenig coloriert werden müssten. ;-)

    Ich verstehe nicht ganz dein Problem. :/ :?::?::?: Natürlich dient es der heiteren Unterhaltung, und in der Regel wird es auch auf irgendwelchen Bugs basieren. ;-) Richtig, es deshalb kein Bugreport, da gibt es andere Möglichkeiten. Sollte jemand von UG aber hier mitlesen, wäre das doch dennoch eine gute Sache, oder? Ob es für dich persönlich etwas bringt, und du es dir überhaupt anschaust, musst du für dich entscheiden. ;-)

    Spreng-Simulator?



    Des Rätsels Lösung: Hier ist tatsächlich eine Kreuzung entstanden, und zwar aufgrund eines Bugs in der eigentlich sehr schönen, aber leider auch fehlerbehafteten Funktion upgradeConstruction. Wird eine starre Gleiskonstruktion mit BuildWithCollision im Kollisionsbereich verlegt, versteht die Funktion das geradezu als Aufforderung irgendwelche Dinge miteinander zu verbinden, obwohl starre Konstruktionen eigentlich genau das verhindern sollen. Normalerweise wird übrigens so etwas mit einem anonymous-namespace-Fehler quittiert, diesmal hat es aber tatsächlich funktioniert! ^^ Nicht nur an Brücken kann es Probleme geben, auch dort, wo sich starre Konstruktionen ebenerdig mit Gleisen oder Straßen überlappen. Der Bug wurde bereits an UG gemeldet.