Trainz Simulator 2010

  • Das große "X" soll es dann mal richten, ...
    TRS "X" ...da wurde schon vor 5 Jahren von geschwafelt, passiert ist NiX
    Da wird auch NIX passieren wenn die so weiter mit Trainz und den Anwendern umgehen.
    Wenn ich mir nur das Video ansehe ...da fährt diese ewige US Vorzeiglok durch einen Märchenbaumwald und das schlimmste ist noch dabei ....mit Rucklern im Video. Sowas als Präsentation":clap:


    Mal was zur Inovation des TS2010 ...
    abwärtskompatible zu TS2009 ... das heißt soviel wie "Es passiert am Software Code nichts."
    Allerhöchstens ein paar kosmetische Eingriffe, paar neue Routes.


    Den selben Kalauer hat sich Railworks erlaubt...
    Abwärtskompatible zu Railsimulator ...LOL ...Kosmetik, Kosmetik ...und allenfalls ein paar Gimicks.:sinister:


    greets ice

  • @Partyman79
    Ja..natürlich ... was sich so compilieren nennt...VB3.0 code nannte sich damals auch "compiliert"... und wieso macht der TS das jedes mal aufs neue.. z.B. auch wenn neue Objekte geladen werden? Wieso macht man das nicht zur Entwicklungszeit? Kennst du den Unterschied zwischen Runtime code, Mnemonics, Maschinensprache usw? Der Code wird alles.. aber sicher nicht compiliert. Ich hab mir noch kein Trace angesehen, wenn der TS "compiliert" aber ich kann assembler.. und das schon bissi länger. Reden wir also über compilieren oder doch nur über interpretierten tokenised runtimecode?


    schau einfach mal in ein gsl file rein.. da stehen die Tokens sogar im Klartext drin.. nix mit compilieren... und wenn man nen Packer drüber scheucht, bekommt man ein "unleserliches" gse... na doll... das kostet nicht nur Zeit das zu interpretieren, das muss auch vorher noch ausgepackt werden... weil Rechenzeit hat man ja in trainz sowas von reichlich ^^....

    Einmal editiert, zuletzt von ()

  • Moin,


    Zitat

    RolfD schrieb:


    ...Kein mensch braucht derzeit eine Jet3 - das was stört ist das der Suveyor abschmiert wenn man undo drückt! ...


    Hm, seit ich TS 2009 benutze (November 2008) habe ich es noch nicht geschafft, durch UNDO den Editor zu verlassen und ich benutze diese Funktion nicht gerade wenig.

  • DonZer63
    Ok.. dann baue mal bissel an einer Map (meine hat ca. 30 kacheln), warte das Autosave ab (zeigt sich bei meiner Halycon Version durch kompletten Neuaufbau des Bildes) und drücke dann undo->Exeption.
    Es müsste genau so auch gehen, wenn du von Hand savest und dann undo drückst.
    In 80-90% der Fälle schmiert TS 2009 da ab, es stellt aber garantiert nicht den Zustand von vor dem Save wieder her wie es jede normale undo-Funktion macht.


    Kann jeder bei seiner TS Version ausprobieren, ich hab mir dabei auch schon die DB abgeschossen. Ob die Build 40040 die Macke noch hat weiss ich nicht aber die 39176 schmiert da zuverlässig ab. Ich vermute daher die 40040 auch. Ab und zu nippelt die und eben auch zu anderen Anlässen ab, den genauen Zusammenhang hab ich noch nicht rausgefunden. Sollte das jedoch in der 40040 behoben sein.. (incl. dem Neuaufbau) ok.. dann muss ich vielleicht einfach auf die trödelige SP2 von Halycon warten.. mal sehen ob die noch raus kommt bevor TS 2010 da ist.
    Die Autosave selbst ist aber auch Fehlerhaft, wenn das getimte Save-event komt und man dabei just in dem Augenbblick ein Objekt setzt, bleibt der TS hängen... hatte ich auch schon oft genug.

    Einmal editiert, zuletzt von ()

  • Moin


    Eine UNDO Funktion nimmt den/die letzten Veränderung(en) zurück, und das gewiß nicht nach einem Abspeichern ohne dass man danach etwas einfügt was man rückgängig machen kann.
    Das was Du beschreibst, wäre das Gleiche als wenn ich in einer Tabellenkalkulation nach dem Speichern die letzten Einträge rückgängig machen wollte.
    Was soll denn das UNDO nach dem Speichern ausführen?


    Sorry, ist mir unverständlich, was das bezwecken soll.

  • arbeitest du auch in anderen Programmen? ich zeige dir genügend wo das geht.. aber davon abgesehen ist das kein Grund abzuschmieren!


    Zitat

    DonZer63 schrieb:
    Sorry, ist mir unverständlich, was das bezwecken soll.


    Und mir ist unverständlich wie man so argumentieren kann...


    Eine Do-Liste ist üblicher weise eine Listenkette von Interaktionen in der man sich per Pfeiltasten bewegen kann, es gibt weder einen Grund, die Liste bei einem Save auf 0 zu setzen noch wenn dann undo gedrückt wird vor den Anfang der Liste zu springen was offensichtlich zum Absturz führt. Sowas ist einfach schlecht geprogt und leicht zu fixen! Sowas lernt sogar jeder Schüler in der EDV-AG. Das mindeste wäre den Sprung vor die Liste zu unterbinden (z.B. indem man die Liste Ringförming anlegt), schöner wäre auch die do-Liste in Ruhe zu lassen. Da Trainz aber mehr oder weniger nen kompletten Reset/Reload bei Save ausführt (sowas trickst man üblicher Weise wenn sonst Programmteile aus dem Ruder laufen), zerschieß es natürlich dabei auch die Do-liste.
    Es ist nicht selbstverständlich das Programme beim Save die do-Liste löschen bzw. dabei abschmieren!
    Ich kenne ausser Trainz KEIN EINZIGES PROGRAMM was so "dumm" abschmiert vor allem da verkettete Listen nun wirklich nicht Neu oder ungetestet wären! Wenn Listenbehandlung in Trainz grundsätzlich so funktioniert, wundert mich allerdings so einiges nicht mehr.


    Da empfehle ich dringenst Algorithmen in C++ (Addison-Wesley) / Sedgewick, Robert
    Ein Standardwerk was man kennen sollte - auch als CC!

    Einmal editiert, zuletzt von ()

  • Zitat

    ... Sowas ist einfach schlecht geprogt und leicht zu fixen! ...


    Was verstehste unter schlecht "geprogt?


    Glaub mir, einen Programmcode zu schreiben, korrigieren und zu warten ist nicht leicht.
    Selbst die beste Dokumentation reicht da nicht aus.
    Jede noch so kleine Änderung kann das ganze Programm zum Absturz bringen.
    Die Herausforderung ist es, den/die Fehler zu finden. Es kann etwas simples sein, wie ein Schreibfehler z.B. Klammer vergessen oder etwas komplexes z.B. eine komplett falsch geschriebene Methode, die mehrere Zeilen lang ist, und so was erkennt man nicht.
    Ich selbst kann nach einer gewisser Zeit meinen eigenen Code nicht mal verstehen trotz Dokumentation. Dafür brauche ich etwas Zeit und je länger der Code umso mehr Zeit braucht man.
    Muss man aber ein Termin einhalten, dann fehlt einem die Zeit dafür, da fliegt schon so manche Funktion weg und bei Fehlern wird ein Auge zugedrückt, nur um bloß etwas abzuliefern.


    Wenn man fehlerfrei programmieren würde, dann müsste nicht jeder Hersteller einen neuen Patch rausbringen.
    Das sieht man doch bei den Spielen. Kaum ist ein Spiel auf dem Markt, wird gleich ein Patch hinterhergeworfen.
    Ist das Spiel deswegen schlecht programmiert? Nein, Unternehmen können nicht einfach die ganze Zeit Fehler suchen. Das kostest Zeit und Geld. Niemand wird auf ein Spiel warten wollen, um dann dafür 1000 Euro zu bezahlen, nur damit das Spiel fehlerfrei ist. Unternehmen müssen sich entscheiden, ob sie eine hohe Qualität, niedrigen Preis haben oder den Zeitplan einhalten möchten.

  • Nur mal so am Rande: Von fliegenden Bäumen (TRS2007+) zu wackelnden Bäumen (TS2010) :)


    Nehmt's locker.


    p.s. Man kann Sourcecode mit Sicherheit AUCH nach Jahren gut wieder erkennen /lesen/verstehen etc.) und man kann auch komplexe Mehrzeiler (wieder/weiter) verstehen.
    Auch wenn es Schwierigkeiten geben kann, so lassen sich diese aber auch lösen - Erfahrungssache und guter Umgang mit mehreren Informatiker lehrten mich das.

  • @ikael


    Das stimmt schon, aber man braucht eine gewisse Zeit, um es zu verstehen.
    Am besten ist es, wenn man im gleiche Team an dem gleichen Code arbeitet, das spart einem Arbeit.

    Einmal editiert, zuletzt von Klopfer ()

  • Zitat

    RolfD schrieb:
    Eine Do-Liste ist üblicher weise eine Listenkette von Interaktionen in der man sich per Pfeiltasten bewegen kann, es gibt weder einen Grund, die Liste bei einem Save auf 0 zu setzen noch wenn dann undo gedrückt wird vor den Anfang der Liste zu springen was offensichtlich zum Absturz führt.


    Naja. Undo/Redo-Strukturen sind zunächst Stacks, keine Rollspeicher. Doppelt verkettete Listen sind eine mögliche Implementierung aber nicht die einzige. Gewöhnliche Arrays oder bestimmte Vektoren tun es auch. Und Arrays würden dann als Rollspeicher implementiert.


    Zur Undo/Redo-Stack-Verwaltung gehört auch Rücksetz-Funktionalität. Und Speichern des aktuellen Zustandes als Reset zu verwenden ist ein sehr gängiges Verfahren. Es nicht zu tun, wird den Anwender durchaus irritieren. Die Speicherkapazität der Stacks ist normalerweise endlich. Zumindest der Undo-Stack könnte blockieren, würde nicht das älteste Element bei Überlauf gelöscht. Also muss und wird man aufräumen. Empfindlich sind solche Konstrukte allemal. Wann werden z.B. unter C++ Heap-Objekte tatsächlich frei? Ich würde mir nicht zutrauen, bei auftretenden Undo/Redo-Fehlern auf allgemein schlecht programmierte Software zu schließen.




    Am Rande: Wenn man seinen eigenen Code später nicht mehr versteht, sollte man vielleicht seinen Programmierstil überdenken.
    :shock:

  • [ot]

    Zitat

    geophil schrieb:
    ...

    Am Rande: Wenn man seinen eigenen Code später nicht mehr versteht, sollte man vielleicht seinen Programmierstil überdenken.
    :shock:


    Naja, Variablen und Methoden bekommen bei mir einen vernünftigen Namen und einige Kommentare.
    Mein Problem ist, dass ich Methoden viel zu kompliziert aufbaue. Ich mache mir bei solchen Sachen viel zu viele Gedanken. Wenn ich dann nach mehreren Monaten meine Arbeit nochmal ansehe, weiß ich trotz der Dokumentation nicht, obwohl ich auch meine Gedanken aufschreibe, warum ich auf diese Weise die Methode implementiert habe und keinen leichteren Weg gesucht habe, den es auch meistens gibt. :shitpc:
    Hab schon von genug Leuten gehört, dass ich zu kompliziert denke und deswegen mein Code manchmal zu kompliziert aussieht.


    Kurze Methoden sind ja kein Problem, aber sobald diese mehrere Zeilen lang sind, wird's unschön.[/ot]

  • Interssante Gedanken...
    zu Basti: warum soll ich dort Cheffprogrammierer werden? Ich glaube nicht, das es Auran was nutzt. Aber ich habe in der Tat schon in der Softwarequalitätskontrolle gearbeitet und ich denke, auch Auran könnte jemand brauchen der speziel sowas macht. Man wird als Programmierer irgendwann betriebsblind.. aber für sowas macht man ja z.B. auch Betatests.... eigentlich... aber dazu gehört eben mehr als paar Loks hin und her schieben...
    zu Klopfer und geophil:
    das stimmt schon alles was ihr sagt... zur Gültigkeit von Objekten... ja ein nicht immer einfaches Thema. Auch was Codeerstellung angeht gibts ja immerhin so schöne Sätze wie "Teile und Herrsche".. und jeder der eine Funktion entwickelt, kennt das topdown-levelup Prinzip und Kommentarzeilen bei der Code Erstellung.
    Vernünftiger effizienter Code muss nicht unleserlich sein und anständige Compiler wie der VC8, den Auran scheinbar benutzt, optimiert vieles wenn man ihn lässt, was man vielleicht an "Umwegen" zur Leserlichkeit einbaut. Ein guter Progger schreibt pro Tag max. ca. 10 Zeilen Code, nur viele vergessen auch die zur Pflicht gehörenden 10 Zeilen Docu!
    Aber wir brauchen keine Hochsprachenkonzepte diskutieren - ein Sprung vor ein Listenende gehört genau so abgefangen wie ein Overrun oder falsches Stackhandling. Egal ob nun als verkettete Ringliste oder sonst wie. Die meisten Bugs sind Annahmen bei der Codeerstellung, welche sich zu einem späteren Zeitpunkt auf Grund von unpräzisen Implementationen als Fehlerträchtig erweisen. Das kennt jeder Programmierer und das ist auch nichts besonderes... aber man kann und sollte sowas fixen - insbesondere dann, wenn man sich angeblich um den Code kümmert und bestimmte Richtlinien bei der Codeerstellung einhält. Proggen ist auch eine Frage von Disziplin. Und genau das kann man von den Programmieren von Trainz erwarten - als Service & Support und nicht als Grund, neue Software zu kaufen - so wie bei jedem anderen Code Projekt auch, liebe CC's.
    Und daher ist es auch kein Frevel wenn User fixes einfordern sondern für Programmierer eine Selbstverständlichkeit, dem nachzukommen. In so fern kann ich mich über so manchen Kommentar hier nur wundern, für manche scheint das unerhört. Man hat bei Auran recht exakt ein Jahr lang gute Ansätze gezeigt - daran habe ich kein Zweifel gelassen. Aber mit der Entscheidung für TS 2010 zur jetzigen Situation sind diese Bemühungen mit einem Schlag verdorben. Und dazu muss ich nicht Cheffprogger bei Auran sein um das einschätzen zu können. Ich zahle gern für neue Features aber nicht damit handfeste Bugs durchgeschleppt werden. Und es gibt genug Bugs die noch bleiben selbst wenn der Undo Bug gefixt und das Handling überarbeitet ist.
    Bei der Code Entwicklung wie sie bis vor kurzem intensiv statt fand hätte ich Mitte bis Ende 2010 mit einem stabil gepatchtem TS 2009 gerechnet. Man hätte dann für 2011 eine neue Version... mit Wackelbäumen, Layern und von mir aus auch Jet3 anvisieren können. Das hätte Zeit gegeben, die DLS weiter zu fixen, Docu zu schreiben usw...
    Aber man wird sich auch mit dem TS X auf dem Markt wundern, warum die User immer noch mit TRS 2007 und manche alte Hasen sogar mit dem TRS 2004 weiter fummeln... und lange nicht jeder der hoffnungsvoll TS 2009 gekauft und ausprobiert hat um dann in 2007 weiter zu fummeln wird sich die TSX/EE kaufen. Damit dürfte der TS X wirtschaftlich ein Desaster werden. Das IST Spekulation.. aber genau so wirds kommen wenn man nicht endlich ein Einsehen bei Auran bzw. dem jetzigen Inhaber von Trainz hat! Wetten?


    Es wäre verlogen zu behaupten, man hätte es nicht absehen können.


    Übrigends nebenbei .. ein schönes Tut für Anfänger in Sachen Trainz Script - meines Wissens sogar das einzige was anfängertauglich ist. Da arbeite ich mich ja grade ein - allerdings wie gesagt mit Vorwissen in c++ und in den Tiefen der Trainzdev.
    http://publish.uwo.ca/~gerard/…ting/index.html#tutorials

    Einmal editiert, zuletzt von ()

  • Zitat

    siebziger schrieb:Und dass Auran die ausstehende Veröffentlichung der EE mit dem angekündigten, aber wohl schwer finanzierbaren TS X zusammenpackt, ist doch auch nicht schlecht, damit wenigstens die EE auf den Markt kommt. Für die "alles neu"-Edition TS X auf der Basis der Jetengine 3 dürfte die Finanzierung schwierig werden.


    Lieber Rolf
    zunächst danke für das Lob. Deinen letzten Ausführungen zum Thema undo kann ich auf Grund absoluter Basiskenntnisse in der Programmierung (Grundkurse Fortran und Cobol, Uni Hamburg 1978/79) nicht mehr folgen.


    Aber noch mal für Alle zum Thema TS X: Wie ich geschrieben habe, wird es die "echte", vor vier Jahren angekündigte, Version auf der Basis der Jetengine 3 nicht geben (ich laß mich da gern angenehm überraschen). Aber die Hoffnung, daß TS :unamused_face: 2009 EE jetzt die Plattform wird/bleibt für die weitere Entwicklung, ist sehr groß. Deshalb macht es auch Sinn, dieser Version - entgegen der ursprünglichen Planung als reine Fahrversion - den Surveyor beizupacken.


    Gruss
    Norbert

  • Auf Seite 6, Beitrag 60 und Seite 7 Beitrag 62 ging es übrigends um compilieren oder interpretieren bei Trainz...
    Wo ich so grade in der API-Liste für 2006 stöber... möcht ich doch mal was zitieren.


    Aus der offiziellen Auran Docu Script-API-2006.chm:

    Zitat


    Using Auran GameScript
    Auran Game Script (GS) is a game control scripting language. For the most part, Auran GS is similar to C/C++ or JAVA. It lacks a few of the features common to these languages but has a few other features as well. The following list is a few of the differences between Auran GS and C/C++:


    is interpreted. GS compiles to byte code in a .gsl library.


    interpretiert und bytecode.. also Tokens
    soviel dazu...

  • Hi, ...


    Ich weiss zwar nicht Wer von Auran auf mich gekommen ist, ...habe heute Post von der Brew Crew Von Auran DEVS bekommen.
    Eine Beta für 2010..mit eigenen CD Key auf meinen Account und Zeit -abhängig und nur im Online Mode nutzbar.


    Soviel vorweg, sie schreiben sie wollen für TS2009 Nutzer mit einen SP Paket Kompabilität zu TS2010 schaffen, das heißt, TS2009 User sollen nicht durch Inkompatibelkeit der Modelle oder Objekte ect. zu TS2010 wechseln, sondern klar durch die neuen Vorteile die der TS2010 bietet.



    Hört sich erstmal gut an für mich.. ...schliesslich "i was a trainzer before you was( were:sinister: )a trainzer".
    Lets get ready to Rumble oder lass die Bäume wackeln..:sinister:


    greets ice

    Einmal editiert, zuletzt von ice ()

  • omg...


    und ich dachte, TRS2009 war die letzte Panne, die ich mit erleben musste :shock:


    Das nächste Trainz was ich mir kaufen würde MUSS genau wie TRS2007 sein inkl. einem Multiplayermodus...
    Ist mir wurscht, ob und wie man das machen muss...
    vorher gebe ich dieser Firma kein Geld mehr...


    Ich bin mit TRS2007 überaus zu frieden, lediglich die Funktion fehlt, wo man vllt mit paar anderen Trainzern gleichzeitig auf einer Route fahren könnte...


    Das stelle ich mir richtig geil vor (so wie die Funktion im FSX-Gold)
    Die Strecke abfahren, Personen oder Güterverkehr, oder für die Spieler auf Güterbahnhöfen den nächsten Verband zusammenstellen...
    Dann müsste es noch die funktion geben, dass es für bestimmte Abschnitte Fahrdienstleiter gibt, die die Weichen für Spieler stellen würden...


    Auf so was warte ich, da können noch so viele Trainzversionen kommen, erst die Multiplayer-Funktion würde mich zum Kauf animieren!!!


    ENDE :stop:


    MfG - Christopher

  • Zitat

    cj187 schrieb:
    Das stelle ich mir richtig geil vor (so wie die Funktion im FSX-Gold)
    Die Strecke abfahren, Personen oder Güterverkehr, oder für die Spieler auf Güterbahnhöfen den nächsten Verband zusammenstellen...
    Dann müsste es noch die funktion geben, dass es für bestimmte Abschnitte Fahrdienstleiter gibt, die die Weichen für Spieler stellen würden...


    Das wäre allerdings genial. Am Besten noch mit integrierten Voice-Chat. Ein Eisenbahn MMOG sozusagen. Wow.:angel:

  • Eisenbahn und Multiplayer?
    Ob das zusammenpasst?


    Man darf nicht vergessen, dass die Bahn an etwas wichtiges gebunden ist und zwar an das Gleis, bei anderen Spielen gibt es so was nicht. Bei allen anderen Spielen gibt es keine relevanten Einschränkungen, man kann mit dem Auto fahren wohin man will und das muss nicht immer eine Strasse sein, mit dem Flugzeug kann man kreuz und quer durch die Luft fliegen und bei einem Shooter läuft man durch eine Stadt ohne von irgendwas behindert zu werden.
    Also ist jeder Spieler für sich selbst verantwortlich. Er kann machen was er will. Bei der Eisenbahn geht das aber nicht.


    Bei der Bahn braucht man dafür einen Fahrdienstleiter, der alle Weichen und Signale stellt und für den Zugverkehr verantwortlich ist. Wer soll das machen? Wenn dann nur einer der verantwortungsbewusst ist also am besten ein echter Fahrdienstleiter, ansonsten macht es keinen Spaß, wenn man im Spiel ist, aber man selbst nicht fahren darf, weil jemand nicht alle Spieler beachtet, die z.B. auf einen Auftrag warten.
    Denn ohne den kann der Multiplayer nicht funktionieren oder sollen sich alle gegenseitig die Weichen und somit die Strecke blockieren?
    Man könnte die KI zum Fahrdienstleiter machen, aber wie sieht es dann aus, wenn die KI nicht für einen Zug verantwortlich ist, den sie selbst steuert, sondern für andere Züge, denen sie Anweisungen geben muss?
    An der KI von Trainz sieht man, dass sie manchmal nicht reibungslos funktioniert und unmögliche Sachen macht, die es bei der echten Eisenbahn nicht gäbe.


    Ein anderes, kleineres Problem sind die Abhängigkeiten. Wenn man Multiplayer spielen möchte, dann sollten nur Sachen benutzt werden, die auf die DLS hochgeladen wurden.

    Einmal editiert, zuletzt von Klopfer ()