Beiträge von eis_os

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


    Zum Curl Problem schau mal hier:

    TPF2:


    Zwei Haupt Threads, diese verzweigen sich in weitere Threads: (Dann gibt es noch was für Sound, Stadtwachstum)


    GameState 1 und GameState 2.


    Einer wird zur Anzeige / Rendern benutzt, der andere errechnet gerade den nächsten Simulationsschritt, dieses ist eine sehr vereinfachte Darstellung.


    Simulationsschritt:


    • cmds abarbeiten, etwaigen status speichern.
    • GameState berechnen:
      • Alle System ( zum Beispiel TrainMovement) werden abgearbeitet: Irgendwas::Update
        • Ein System kopiert etwaigen Status für bestimmte Sachen, macht X Threads auf, erarbeitet eine Liste was geändert werden soll
        • Warten bis alle X Threads fertig.
        • Dann wird die Liste angewendet:
          • Notify der anderen Systemen. ComponentAboutToBeChanged
          • Entity Komponente wird geändert
          • Notify der anderen Systemen: ComponentChanged
      • GameState (Simulation) LUA Script aufrufen. (read only)
    • Änderungen in andere GameState kopieren

    Anderer Hauptthread:

    GameState rendern, UI aufbauen usw, Labels berechnen

    • Warten auf neue Daten (GameState)
    • ConstructionBuilder (macht einen Thread auf um die Blaupause des Bahnhofs zu bekommen)
    • Cmd propagieren
    • Cmds in eine Liste packen
    • LUA GUI GameScript aufrufen
    • Renderliste bauen



    Um so mehr Arbeitsspeicher verbraucht wird (und Cache Misses passieren ) um so schwieriger wird es.

    Sehr schneller stabiler Arbeitsspeicher hilft... Mehr Kerne gar nicht, schnellere um so mehr. Zwei CCDs zu haben ist kontraproduktiv...


    Ein paar Sachen. LUA ist nicht nebenläufig. In Lua eine coroutine aufmachen bringt von der Geschwindigkeit gar nix.

    Die LUA API für Entities dürfen keine Pointer über GameScript Funktionsgrenzen halten. Nach einem Durchlauf kann die Position im Speicher für ein Entity komplett woanders liegen, da nach einem Simulationstick die Daten ggf. geändert wurden sind...

    TPF2 reserviert für Züge eine Fahrstraße bis zum nächsten möglichen Signal bzw. darüber hinaus bis zum nächsten Signal.

    Sobald eine Fahrstraße über ein Signal reserviert wurde zeigt dieses dann fahrt an.

    Ein Zug (ecs::component::Train) hat dafür die beiden Werte reservedFrom und reservedTo.

    Ein Index des jeweiligen MovePath paths, damit hat man dann die transport::EdgeId + (bool für die Richtung)


    Im EdgeReservationManager werden dann die transport::EdgeId für diese Entity reserviert...


    EdgeUseManager ist hingegen für alles andere im Spiel auch Passagiere. Diese reservieren sich dann einen Platz auf einer transport::EdgeId, dies sieht man im Debug Modus an dem Punkt.

    Hallo,


    bitte die Hilfeseiten nutzen, diese haben gerade nochmals ein Update erhalten:


    https://commonapi2.bytetransfer.de/#/troubleshooting


    Fehler wie

    - Das angegebene Modul wurde nicht gefunden.

    - 7zip

    - Zip password

    - libstdc++.so.6

    - VTableWinByName / RTTICompleteObjectLocator not found


    werden dort beschrieben.


    @Dennis_12

    Du hast auch die C++ Runtimes installiert?


    Das steht aber auch im Handbuch unter Requirements / Troubleshooting (auch in der vorherigen Version)

    https://www.transportfever.net…mmonapi2-schnelleinstieg/

    CommonAPI2 NodeEditor schaltet Node Verbindungen komplett an oder aus. Diese sind nicht selektiv, da der Typ aus dem Startlane und der Endlane der Straße errechnet wird.


    Mit CommonAPI2 FlexStreets kann man Mod Straße erstellen, in der auf einer bestimmten Lane nur Straßenbahnen, oder Straßenbahnen und Busse verkehren.

    Das ist anders als eine TPF2 Busspur, wo auch LKWs fahren. Also eine echte ÖPNV Spur.

    CommonAPI2 hat zurzeit keine Möglichkeit eine Straßenspur nur für LKWs zu definieren. (Ich packe es mal in meine TODO Liste, wäre für Ladezonen vielleicht interessant)


    CommonAPI2 errechnet auch die Breite für SHIP Lanes (Canals) und ab 2026 auch TRAIN, damit es keinen Crash gibt und verbindet diese auch untereinander...


    = CommonAPI2 erlaubt es Straßen zu erstellen, auf der verschiedene Lanes liegen, mit bestimmten Eigenschaften.

    Doku dazu gibt es hier: https://commonapi2.bytetransfer.de/#/modding/Streets



    Wenn eine ganze Straße nur Busverkehr und LKWs erlauben soll, müsste dieses mit TPF2 Bordmitteln in der config Datei der Straße funktionieren:


    transportModesStreet = { "BUS", "TRUCK" } 


    https://wiki.transportfever2.c…d=modding:tracksstreets&s[]=transportmodesstreet#lanes


    Inwiefern UG ggf. doch CAR anschaltet, wird man nach dem Bauen sehen. (Ggf. meckert es beim Laden oder ignoriert die Einstellung)

    Wer ganz sicher gehen will, nutzt den CommonAPI2 Inspektor, die Komponente ist TRANSPORT_NETWORK. Beachtet CommonAPI2 ändert sehr viel wie Straßenlanes behandelt werden.


    Die Bitliste dafür:



    Der Taschenrechner in Windows kann euch die Bitmaske anzeigen... (Programmierer Modus)

    Code
    commonapi2.init    20251010
    commonapi2.init: Can't load native code CommonAPI2Native: error loading module 'CommonAPI2Native' from file 'D:\SteamLibrary\steamapps\common\Transport Fever 2\mods\eis_os_commonapi2_1\bin\CommonAPI2Native.dll':
        Das angegebene Modul wurde nicht gefunden.

    Die Zeile Das angegebene Modul wurde nicht gefunden. ist die Fehlermeldung, die Windows zurückgibt.
    Vielleicht hast du auch zwei Versionen installiert... Meist liegt es an einen Virenscanner...

    NEP sagt nur, das ein anderer Mod die Farbpalette kaputt macht.



    Better RCI Colors entfernen, dann sollte dieses Problem gelöst sein...

    Schönen NodeEditor haben Sie da, hoffentlich sind dafür genügend Modding Schnittstellen vorhanden.

    In der UI scheint es keine Möglichkeit zu geben den Gleistyp für Trams auszuwählen? :/ Hoffentlich hat UG da genügen Platz gelassen, damit man das noch in Zukunft hinzufügen kann...

    Aus dem Log ist eigentlich nichts ersichtlich.


    Ein paar Punkte zur Fehleranalyse:

    - Lässt sich die kopierte Station auf freien Feld bauen?

    - Kannst du die Station / Konstruktion via UI bauen?

    - Mal den commonapi/clipboard Ordner umbenennen ( im Benutzerordner ), bitte nicht löschen, da er ggf. für Fehleranalyse benötigt wird. Vielleicht ist beim Speichern was daneben gegangen. (TPF2 darf dabei nicht gestartet sein)

    Well, the stdout.txt shows clearly commonapi2.init 20240129 in it, this version can't be downloaded any more here: CommonAPI2


    Again, you are not extracting the right version, have an older zip file in mods folder around or do something other than the instructions.


    The best way, please start fresh:


    Remove any eis_os_commonapi2_1 folder.

    Start the game, any remaining CommonAPI2 found?

    If yes search for old versions in both mods folder.

    Remove any zip files, as TPF2 loads them too.



    Download / move the downloaded zip into an empty folder not reachable by TPF2, extract the zip file. (use the right password, please see the screenshot)

    You get a eis_os_commonapi2_1 folder, copy this folder to your mods directory of TPF2.


    https://commonapi2.bytetransfer.de/#/install


    Don't copy eis_os_commonapi2_1_20251010, there will be eis_os_commonapi2_1 in it, use this.

    Make sure your AV didn't kill the dll file in it, in the bin folder. Make sure it is extracted, if it is empty, likely you don't use the right password.

    People actual play with these versions, you do something wrong installing CommonAPI2.


    First make sure there is no other version around. Like in a zip file in mods, or in the game mods folder.


    Please make sure your Antivirus doesn't remove the dll, start with a fresh extract and fresh folder.

    Don't have the steam mod subscribed.


    Then post a stdout.txt so I can see what may go wrong...