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


    Code: stdout.txt
    Requested layers:
    Create Vulkan instance.
    Supported depth resolve: { SampleZero | Average | Min | Max }
    Supperted stencil resolve: { SampleZero | Min | Max }
    Found device #0: NVIDIA GeForce RTX 3080 Laptop GPU (id: 9372, vulkan version: 1.3.280, driver version: 2353152000 [561.9.0.0], vendor id: 4318 [Nvidia])
    Supported depth resolve: { SampleZero | Min | Max }
    Supperted stencil resolve: { SampleZero | Min | Max }
    Found device #1: AMD Radeon(TM) Graphics (id: 5688, vulkan version: 1.2.150, driver version: 8388763 [2.0.155], vendor id: 4098 [AMD])
    -> Selected device #0
    __CRASHDB_RENDERER__ Vulkan|Nvidia|NVIDIA GeForce RTX 3080 Laptop GPU|1.3.280 561.9.0.0|1.3.280|561.9.0.0|


    Also laut der stdout.txt wird die Geforce genutzt ...

    Build 35905 / 35915 Development version link:


    CommonAPI2 20241006

    Neue development version.

    Dampf (Steam) Client funktioniert wieder

    Allee Straßen (Assets) sollten nun auch wieder rendern



    1.9.20241006-dev

    - !!! BUILD 35905, 35915 TEST Version Steam windows only !!!

    - !!! THIS IS A DEVELOPMENT VERSION, backups required !!!

    - Dampf client: add fragments for windows build 35905 and 35915

    - FlexStreets: fix missing street assets, hook second asset call



    Es ist ein frühe Version, macht Backups.

    Die Linux Version ist in einem sehr sehr schlechten Zustand und läuft immer noch nicht, also nur Windows.


    Early development version, create backups.

    The linux version is still in a totally broken state, so windows only.

    Neue development version.

    Der Dampf (Steam) Client funktioniert noch nicht, aber das Mod Management in "Erweiterte Spieleinstellungen"


    Es ist ein sehr sehr frühe Version, macht Backups.

    Die Linux Version ist in einem sehr sehr schlechten Zustand und läuft immer noch nicht, also nur Windows.



    New development version:

    The "Dampf" (Steam) client doesn't work, but the mod management in "Advanced Game Settings", modio mod prefix should be recognized too.


    Early development version, create backups.

    The linux version is still in a totally broken state, so windows only.


    1.9.20241005-dev

    - !!! BUILD 35905, 35915 TEST Version Steam windows only !!!

    - !!! THIS IS A DEVELOPMENT VERSION, backups required !!!

    - fixed UI::ModDataProvider struct size and hooking

    - fixed UI::CustomGameSettingsComp struct size and hooking

    - fix: LUA::State of TPF2 now has a lockdown mode

    - mods: introduce + as modio prefix



    Bekannte Probleme, Known Problems:

    - Advanced assets screwed on

    - Dampf client broken



    Wer noch Fehler findet. Bitte mitteilen ...

    Ein ganzer Tag Arbeit um die verdammten internen Strukturen zu finden.

    Der Dampf Client läuft immer noch nicht, aber die aktive Modliste dort wird wohl in der nächsten CommonAPI2 Version wieder funktionieren... oder UG macht alles wieder mit nem Update kaputt...


    -edit-

    testing 35915 hat Änderungen, die ich erst analysieren muss...

    Well the UI::ModDataProvider looks completely different , the unsubscribe window is gone, and a lot other stuff doesn't make sense, so

    Zitat von changelog.txt

    No mod management support in advanced game settings dialog!

    This includes all interaction.

    I did spend time yesterday analyzing to get sense about the mess, but to be honest, it doesn't look great. The UI::ModDataProvider (where UG knows I am using it) is totally different. The GameSettingsDialog has a complete different memory layout...

    Dieser Teil der CommonAPI2 ist schlicht nicht fertig:

    "- Disabled UI::ModDataProvider hooks, currently no mod management support in advanced game settings dialog!"


    Auch läuft der Dampf Client für Steam Mods nicht, mit modio mods kommt CommonAPI2 auch nicht zurecht.


    Im Hauptmenü solltest du alle lokalen Mods angezeigt bekommen.

    Neuer Tag, neuer versuch:


    1.9.20240929-devB

    - !!! BUILD 35905 TEST Version Steam windows only !!!

    - !!! THIS IS A DEVELOPMENT VERSION, backups required !!!

    - Disabled UI::ModDataProvider hooks, currently no mod management support in advanced game settings dialog!

    - FlexStreets: disable flexstreetscurve setting

    - Add NodeWindow button to road construction tab

    - NodeWindow: stop any action, so selection of nodes does work.

    - NodeWindow: use UIHacks getCameraControllerRealPos to calculate clicking on node anchors

    - NodeWindow: pass entity 3D position to addCircleMarker

    - remove api[sol::create_if_nil]["gui"]["commonapi"]["util"]["CoLine"], screws scripting interface

    - FlexStreet: remove some debug output



    Ich möchte nochmals auf die experimentellen Zustand hinweisen. Daher findet Ihr CommonAPI2 auch nicht in der Webdisk, sondern nur hier.
    Aber Feedback hilft eben um große Probleme schneller auszumerzen.


    Ich bin mir ziemlich sicher dass das Scripting Interface nun wieder läuft.

    Da ich wohl Morgen früh nicht dazu komme, lade ich mal heute schon eine Testversion hoch.


    1.9.20240929-dev

    - !!! BUILD 35905 TEST Version Steam windows only !!!

    - !!! THIS IS A DEVELOPMENT VERSION, backups required !!!

    - Disabled UI::ModDataProvider hooks, currently no mod management support in advanced game settings dialog!

    - FlexStreets: disable flexstreetscurve setting

    - Add NodeWindow button to road construction tab

    - NodeWindow: stop any action, so selection of nodes does work.

    - NodeWindow: use UIHacks getCameraControllerRealPos to calculate clicking on node anchors

    - NodeWindow: pass entity 3D position to addCircleMarker



    Es lädt meine Testkarte, hab mal ein paar Nodes verändert. Ein paar Straßen gelegt.


    Nochmalig, das ist ein sehr sehr frühe Version, macht Backups, sehr vieles wird ggf. nicht richtig funktionieren.

    Die Linux Version ist in einem sehr sehr schlechten Zustand, da läuft noch nix.



    Ich kann meine Testkarten mit Straßenpaket ohne CommonAPI2 so/dll laden und auch ohne CommonAPI2 komplett mit Build 35905

    Inkl. etwaige Render Fehler, hier mal die Linux Version, gerade erst nochmals getestet:



    :


    Ich habe also keine Ahnung woran das liegen soll...


    Auch der Fehler hier:

    urban_games/train_fever/src/Lib/Util/ResTypeRep.h:151: struct TrackType &__cdecl ResTypeRep<struct TrackType,int>::Get(int): Assertion `iindex > -1' failed.

    sagt einen Fehler in den TrackTypes (also Gleise und nicht Straßen aus)


    Das Straßenpaket hat keine Gleise...

    Mit Rücksprache bzw. einem Tipp eines nicht grünen Urban Games Mitarbeiter funktioniert nun die AttributeMap wieder. :thumbup:

    (Für Programmierer: Iterationen gingen, ein Lookup nicht, da eine andere Hash Funktion genutzt wurde)


    Es renderte ein Bisl und Crasht dann halt, aber 70% von Newstreets sind halt auskommentiert und gehen noch gar nicht.



    Der Depot Adapter und andere Mods fragen die CommonAPI2 beim laden der con Datei (also vor der postRunFn) welche Straßen und Schienen vorhanden sind. Das funktioniert in TPF2 nur wenn CommonAPI2 eine DLL lädt. Sprich die Logik ist in der CommonAPI2, da es nun seit Jahren andere Möglichkeiten gibt, sehe ich mich nicht veranlasst da groß Zeit zu investieren. Das Feedback zu diesem Feature im letzten Jahr war auch eher Richtung Anfeindung gestimmt. Ich mach halt eher Sachen, die man normalerweise nicht hinbekommt...

    Da ich immer wieder lese, das es keine CommonAPI2 Version geben wird, das hab ich so nie gesagt!


    Ich arbeite an CommonAPI2 weiterhin in meiner Freizeit wenn es eine fertige Version geben wird kann ich aber nicht sagen.

    Es gibt aber schon Development Versionen


    Es wurden etliche Änderungen in TPF2 gemacht, die mich halt ausbremsen.

    Es kann natürlich auch passieren das bestimme Konzepte nicht mehr funktionieren oder anders umgesetzt werden müssen.


    English:


    As I read several times there won't be any CommonAPI2 anymore, this I never said!


    I only have limited time, and the time I have for it is eaten by complicate problems.


    I still work on CommonAPI2 on my free time, when I can offer a version I won't know.

    But there are already development versions.


    A lot of TPF2 internals have changes so there is only slow progress.

    It may be that certain aspects won't work with the new update, and may need to be changed.


    -edit-


    Im Diskussionsfaden findet Ihr vorab Version für build 35905 und build 35915.


    There a development versions for build 35905 and build 35915 in the discussion thread.

    Da ich immer wieder lese, das es keine CommonAPI2 Version geben wird, das hab ich so nie gesagt!

    Ich habe nur wenig Zeit dafür und wenn doch, wie gestern, ist alles recht kompliziert.


    Ich arbeite an CommonAPI2 weiterhin in meiner Freizeit wenn es eine fertige Version geben wird kann ich aber nicht sagen.


    Es wurden etliche Änderungen in TPF2 gemacht, die mich halt ausbremsen.

    Es kann natürlich auch passieren das bestimme Konzepte nicht mehr funktionieren oder anders umgesetzt werden müssen.


    Randnotiz, Ich hab sogar detailliert über Änderungen des Spiels berichtet.




    English:

    As I read several there won't be any CommonAPI2 anymore, this I never said!

    I only have limited time, and the time I have for it is eaten by complicate problems.


    I still work on CommonAPI2 on my free time, when I can offer a version I won't know.


    A lot of TPF2 internals have changes so there is only slow progress.

    It may be that certain aspects won't work with the new update, and may need to be changed.


    Sidenote: I wrote about internal changes of TPF2 in my last posts...

    Wenn Ihr mein letzte Nachricht angeschaut hättet, seht Ihr Ich habe daran gearbeitet und auch erklärt warum das alles sehr lange dauert.


    Inwiefern und wenn ich die Windows Version zum laufen bekomme habe ich keine Ahnung und ich will mich auch nicht festlegen.


    Ich hab ne Tonne an Fragmente für Straßen wieder gesucht und nun gibt es ein Ladecrash in Windows, also kein Fortschritt. Layerview hat mal funktioniert unter Windows habe ich ein CommonAPI2 Menü.
    Die Linux Version hat mir zumindest schon wieder eine CommonAPI2 Menü angezeigt,, aber die Fragmente passen auf neuere Versionen schon wieder nicht mehr. Wie schwierig das ist, hab ich ja schon gezeigt.



    FlexStreets alleine besteht aus 51 Dateien und etwas mehr als 450KB Code. Und nen Debugger kann ich auch nicht dran klemmen...


    Achtung:

    Wegen privater Angelegenheiten wird es für das Herbstupdate kein direktes Update geben

    Sprich benutzt bitte bei Steam die Stabile Version bzw. bei Release des Herbst Updates das Build Archive und seht bitte von privaten Nachrichten ab, danke


    Anleitung gibt es hier:

    https://www.transportfever2.co…php?id=gamemanual:updates

    buildArchive35732 kann genutzt werden um bei der vorherigen Version von TransportFever2 zu bleiben.


    Beachtet Ihr könnt keine neuen Spielstände in ältere Spielversionen nutzen.


    Important:

    CommonAPI2 won't work with the new Autumn Update.


    You can use buildArchive35732 to keep the pre autumn stable release. (Maintenance update in January 2024)

    UG has written a guide:

    https://www.transportfever2.co…php?id=gamemanual:updates


    Please note, you can't use newer savegames in older builds.


    Please don't send me private messages, thank you.



    -edit-

    Unser Dino von Urban Games war so lieb und hat die Erstellung des buildArchive Eintrags in die Wege geleitet...

    Nochmaliger Hinweis:



    Achtung:

    Wegen privater Angelegenheiten wird es für das Herbstupdate kein direktes Update geben

    Sprich benutzt bitte bei Steam das Build Archive und seht bitte von privaten Nachrichten ab, danke


    Anleitung gibt es hier:

    https://www.transportfever2.co…php?id=gamemanual:updates

    buildArchive35732 kann genutzt werden um die vorherige Version des Spiels zu nutzen.


    Important:

    CommonAPI2 won't work with the new Autumn Update.


    Please use buildArchive35732 to keep the previous game version.


    UG has written a guide:

    https://www.transportfever2.co…php?id=gamemanual:updates


    Please don't send me private messages, thank you.



    -edit-

    Unser Dino von Urban Games war so lieb und hat die Erstellung des buildArchive Eintrags in die Wege geleitet...


    Agrr, CommonAPI2 hat da keinen Fehler. Könnt Ihr mit den Behauptungen aufhören! Wenn Ihr CommonAPI2 Features nutzt und dann ohne CommonAPI2 spielt (bzw. die Funktionen abschaltet) ist das kein Wunder.


    Der Fehler ist, CommonAPI2 ist nicht geladen und daher zerbricht UGs Renderer.


    Warum meint Ihr denn das ich soviel Code als DLL ausliefere?

    Seit Froh das Ihr die Spielstände so landen könnt. Sprich für die nächsten Versionen ändere ich die Savegame Id, dann könnt Ihr die Spielstände eben nicht mehr laden. Es reicht... Ich hab diese blöden Statements satt...

    Schau mal hier, ein Workaround wenn windows curl nicht richtig funktioniert:

    Um euch mal einen Eindruck zu geben was das dann bedeutet:


    Fragestellung: Warum crasht meine "UI Improve" Funktion (in der Beta Version)?

    (Der Großteil ist in LUA geschrieben und nutzt quasi nur TPF Bordmittel bis auf 4 Funktionen)


    Ab geht die Reise:

    - Crash in ConstructionList in Lua

    - in conlist.patchModelGroups()

    - bei commonapi._native.ModelMetadataExt.set( modelId, "uiCommonAPI", uiCommonAPI)


    Hmm, aber die MetadataMap sieht doch noch recht gleich aus im Speicher, also weiter:

    - schau mir die Code Zeile an: IdRep_Model* idrep_model = ModelMetadataExt_getIdRepModel(), die aufruft:

    Code
    IdRep_Model* ModelMetadataExt_getIdRepModel() {
        if (CGame_CurrentPtr == nullptr) {
            return nullptr;
        }
        ModelRep* modelRep = CGame_CurrentPtr->gameRes->modelRep;
        IdRep_Model* idrep_model = &modelRep->modeldata->rep_Model;
        return idrep_model;
    };

    Also wieder mal die Struktur von CGame analysiert:

    Wo wird gameRes gesetzt und ist es noch an der selben stelle?

    - Analysiert und ja, ist immer noch an der richtigen Stelle.


    Also GameRes analysieren:

    - GameRes ModelRep ist auch an der gleichen Stelle.


    Aber die Speicherallokation für ModelRep ist nun um 24 Bytes größer :/



    Hier nun mal ein paar C++ Strukturen dazu:


    und das finale geänderte Speicherlayout:


    Sprich ich muss die neue Position von ModelData *modeldata finden, und die geänderte Funktionalität von IdRep_Model.

    Anstatt std::unordered_map name2id;> haben wir nun eine phmap, diese funktioniert anders und hat auch eine andere Speichergröße.



    Das hat mich heute den Nachmittag gekostet.


    Hätte ich die Header Dateien (bzw. ne Art SDK) wäre das ne Sache von 3 Minuten bzw. würde gar nicht erst passieren.

    So Sitze ich da halt Stunden dran. ||


    Jetzt fragt Ihr euch, das Feature ist ja unwichtig, schalten wir UI Improve ab.

    Ok, aber schauen wir doch mal in FlexStreets:


    getOverwriteStripeMaterialsNew von mir macht das:

    int materialId = CGame_CurrentPtr->gameRes->modelRep->modeldata->rep_Material.GetMaterialId(&extra->materialName);


    Das würde natürlich auch Crashen, wenn CGame_CurrentPtr->gameRes->modelRep->modeldata->rep_Material nicht angesprochen wird, sondern irgendwo falsch abbiegt.

    D.h. hier müssen 4 Zeiger und Ihre relative Position richtig sein, sonst gibt es Chaos und die Funktionalität einen Namen zu einer Id aufzulösen.


    Ich hoffe ich konnte euch einen kleinen Einblick geben, warum das nicht so einfach ist und nicht mit der LUA Seite von TPF2 zu vergleichen ist.


    PS: Auch die Pointer validieren bringt meisten nichts, an der Stelle haben wir ggf. nen validen Pointer, der Zeigt nur ggf. auf ne andere Art von Objekt.

    Und das wird im Render Code bzw. beim erstellen von Meshdaten aufgerufen, da gibt es keine LUA Runtime...


    Einzigster Trost, ich hab während des Code bastelns nicht an andere Sachen denken müssen, das kommt aber nun um so mehr. ;(