Die Ausbildung hat mich in den letzten beiden Monaten ganz schön ausgelastet. Aber schön ist, dass bald wieder Luft da ist.

Zum Thema RailWorks

Wie geschrieben stecke ich einen Teil meiner Kräfte noch in RailWorks. Das genannte Oberleitungssystem, ISSR-System und die Signale werden sich wohl noch weiter verzögern, da ich kooperiere. In ein paar Monaten kann/darf ich euch sicherlich mit Informationen vollspammen :-D . Aber bis dahin hab ich echt noch viel zu tun!

Und was macht der BahnSimulator?

Was es dem BahnSimulator angeht, gab es jetzt mal so eine Blaumacher-Phase bei mir. Ich hab mich mit Designdokumenten herumgeärgert, Funktionsumfänge deklariert, Arbeitspläne erstellt und was weis ich. Das Buch “3D Engine Design for Virtual Globes” von Patrick Cozzi und Kevin Ring hat mich bezüglich Koordinatensysteme und dem Darstellen von großen Landschaften sehr weit gebracht. Ich weiß jetzt worauf es ankommt und viele werden sich noch über hochkomprimierte Objekte und BHC 5 Kompression + ZLIB freuen. Zuvor habe ich mir das Buch “Grundlagen der Ephemeridenrechnung (Astro Praxis)” von Oliver Montenbruck gekauft; Ich bekomme langsam einen Durchblick in die Astro-Koordinatensysteme und kann nun mithilfe des Bright-Star-Kataloges viele viele Sternchen und Planeten platzieren – so macht der Nachthimmel spaß.

Neue Beleuchtungstechnik: Environment Based Diffuse Color (EBDC)

Während ich dann mal wieder durch die Gegend kutschiert wurde ist mir eine völlig neue Methode zur Lichtberechnung bezüglich atmosphärischer Systeme eingefallen. Das was ich mir schriftlich festgehalten habe wird sich noch als sehr revolutionär herausstellen. Ich freue mich schon auf die ersten Tests. Dieses neue Verfahren habe ich “Environment Based Diffuse Color” getauft und wird für großartige Lichtverhältnisse sorgen.

Wenn man sich mal beraten lässt…

Zuletzt habe ich mir das Buch “Effektiv C++ programmieren” gekauft, was mich dann echt auf den Kopf gestellt hat. Ich habe mich schon gewundert, warum ich früher mit einer bestimmten Technik deutlich produktiver war als heute. Aber nachdem ich gelesen habe, dass das was ich gemacht habe (“früher”) genau richtig war, hat es mein gesamtes API-Design ungekrempelt: Keine Defines mehr (wenn möglich), möglichst inline was einfach ist, Enumerationen statt Konstanten und const ist mein liebstes Schlüsselwort geworden. Ich hab mich halt über die Zeit hinweig von “gutgemeinten” Ratschlägen bestimmter Entwickler leiten lassen und dabei vergessen, dass es um das Programm und nicht um irgendeine Linux-Portabilität oder benutzerfreundliche Idioten-API geht.

Ein Update vom Basiswissen tut gut – und das war sicherlich ein Service Pack.

Was kommt… und wann?

Ich habe mir jetzt vorgenommen, so als “Monatsziel”, pro Monat einen Artikel über den aktuellen Stand zu schreiben. Klar ist oder fest steht, dass es bis März nichts zu sehen gibt und vieles unter der Haube gebastelt wird. Aber das versuche ich mal mit meinen C++-Ratschlägen bezüglich API-Design und effizientes Programmieren zu füllen.

Bis dahin wünsche ich dir nun viel Spaß beim Surfen und Basteln. :-)


Ich habe mich entschlossen, beide Wege zu gehen.

Das heißt ich hab meine Schublade mal wieder geöffnet und plane schon wieder am BaSi herum. Da ich aus Prinzip-Fehlern des RailWorks gelernt habe, fange ich mit der Simulation “von vorne” an. Dies umfasst den Konfigurations-, Organisations- und Simulationsbereich. Dazu erstelle mir ein Designdokument, damit ich weiß was das Ziel ist und wie die Organisation und Finanzierung zu stemmen ist. Aber bis dahin ist es noch ein weiter weg.

Andererseits werde ich noch teile meiner Kräfte in RailWorks stecken. Dies umfasst folgende Ziele bis nächsten Juni:

  • Erstellung eines Tutorials nach Art Volker Bolligs Tutorial für GMax. Objektbau, Waggonbau, Fahrzeugbau.
  • Programmierung einer Fahrzeug-Grundschnittstelle mit PZB, LZB, Hauptschalter, Sifa und diversen Hilfssteuerungen.
    Diese wird sich ISSR: Informations- und Steuerschnittstelle für RailWorks nennen.
  • Entwicklung eines Gesamtdeutschen Signalsystems (DS- und DV-Bereich), dass ISSR-tauglich ist.
    Die erste Testversion mit Ks- und Hl-, Ra-, Sh-, BÜ- und El-Signalen ausgestattet sein.
  • Modellierung eines Fahrdraht- und Oberleitungssystems mit Richtlinie für Artisten.

Der erste Teil der Tutorialserie hab ich schonmal online gestellt. Wer mag?: RailWorks-Bereich


Aber jetzt habe ich mich mal wieder meiner Ausbildung zu widmen… übrigens:
In Berlin und Rostock gibt es in der Stellenbörse der Deutschen Bahn AG wunderschöne Ausbildungsplätze ;-) !
Zum Beispiel: Lokführer bei DB Regio, DB Fernverkehr und DB Schenker. Oder gehörst du eher zum Fahrdienstleiter?


Passiert was in England?
Die Dokumentationen sind immer noch nicht online und Berichtigungen an den bekannten Problemen sind nicht veröffentlicht worden. Einige Tricks um die Leistung zu steigern scheinen den Entwicklern nicht bekannt zu sein… Wie geht es dort wohl weiter? So langsam bekomme ich das Gefühl, dass die Entwickler nur für sich selbst entwickeln. Ich warte jetzt noch bis zum nächsten Freitag. Sind die Dokumentationen dann nicht verfügbar, werde ich wohl mal wieder die Schublade für Plan B öffnen → BahnSimulator.

OptimizedShaders: Es geht weiter, aber stagnierende Entwicklung
Zwar habe ich in den letzten Tagen an der Optimierung der RailWorks-Shader gearbeitet, aber nicht mehr so intensiv wie am letzten Wochenende (um ehrlich zu sein). Die aktuelle Version der OptimizedShader 1.04 befindet sich in der Downloadrubrik. Im Vergleich zu den RailWorks Shadern erhalte ich bei mir eine Steigerung der Performance um ca. 30%. Dann wurden eine Dinge verbessert wie die Tiefenunschärfe und die Darstellung des Himmels.

Microsoft stellt neue Entwicklungsumgebung vor: Visual Studio 11!
Mittlerweile wurde eine Probeversion von Microsoft(R) Visual Studio(R) 11 für Entwickler veröffentlicht. Jason Zander hat hierzu einen kurzen Review zur Entwicklungsumgebung geschrieben. Das sieht alles sehr interessant aus, was da für Spieleentwickler kommt. Ich bin schon am Testen der neuen Funktionen. Derzeit bin ich am Vorbereiten des Plan Bs und lasse dabei Erkenntnisse einfließen, die ich in RailWorks sammeln konnte. Es ist ja nicht alles an RailWorks schlecht, aber ich merke an den Shadern, dass alles irgendwie zusammengeknippsert wird und man darauf hofft, dass es funktioniert.

Nächsten Freitag teile ich mit ob die Dokumentationen und Tools online sind und gebe bescheid, wie ich mit der Situation umgehe.


Wie vielen sicherlich bekannt ist, verläuft der Start von RailWorks 3 nicht so prickelnd wie es sein sollte:

  • Performance-Probleme auf manchen PCs (meist falsche Einstellungen)
  • Kompatibilitätsprobleme mit alten Inhalten aus RailWorks 2
  • Ressourcenfehler in den Editoren und Tools und nicht zuletzt noch
  • Fehlende Dokumentationen für Entwickler

das bremst das eigentlich gute Programm ganz stark aus. Auch wenn nicht immer die RailWorks-Macher schuld sind, hoffen wir auf eine schnelle Besserung der allgemeinen Situation.

Wer Performance-Probleme hat, kann versuchen den folgenden Leitfaden zu nutzen:

“Leitfaden: RailWorks 3 optimieren (ATI)” lesen

Zudem habe ich einen kleinen Bericht zu den kleinen Nachladerucklern in RailWorks geschrieben (Microruckeln). Es gibt zwar einige neue Erkenntnisse, trotzdem möchte ich diesen Beitrag nicht vorenthalten.

“Ursachenforschung: Die Microruckler in RailWorks 3″ lesen

Ich hoffe, dass der Eine oder Andere seine Probleme damit gelöst bekommt.

Für mich selber haben die ganzen Probleme auch ein paar Bedeutungen, über die ich so noch nicht tiefgründig nachgedacht habe:

  1. Halte dich strikt an Standards der Bibliotheken (Lua, XML)
  2. Bereite das System so auf, dass die Leute “das Gefühl Bahn” haben
  3. Teste neue Plattformen und prüfe ob sie funktionieren. Dokumentiere Fehler und nenne sie.
  4. Biete dem Anwender so wenig Einstellungen wie möglich, aber gruppiere sie.
  5. Bastle Bahnobjekte, die ein Geschwindigkeitsgefühl vermitteln. Und VOR ALLEM
  6. Benutze möglichst das aktuelle DirectX und verschwende keine Zeit mit Leuten die Windows XP benutzen!

Ich kann mich noch nicht entscheiden, wie ich auf die derzeitigen Probleme reagieren soll. Entweder bekommt das RailWorks-Team in den nächsten zwei Wochen die Ressourcenfehler in den Editoren bereinigt und veröffentlicht die Entwickler-Dokumentationen und -Tools, damit man mal anfangen kann zu arbeiten. Oder ich lass die Finger von weg und konzentriere mich wieder auf den BahnSimulator – diesmal mit Erfahrungen aus RailWorks. Denn ich habe keine Lust herumbetteln zu müssen, das man allgemeine Fehler löst oder mal ab und zu ein paar Dokumentationsfetzen ins Netz stellt.


Der Wind steht für RailWorks 3 gut und es ist Zeit, auf den aus meiner Sicht richtigen Zug aufzuspringen. Der BahnSimulator (BaSi) wird auf absehbare Zeit nur noch beiläufig weiterentwickelt – hinter den Kulissen der Showbühne.

Das gewonnene Wissen möchte ich für den RailWorks 3 nutzen. Die für den BahnSimulator verwendete Grafikengine „PixelPulse“ bzw. „bsxEngine“ wird genutzt und weiterentwickelt, um Tools für den RailWorks 3 zu entwickeln. Die PixelPulse Library wird eine eigenständige Bibliothek, die für jeden frei zugänglich und erhältlich sein wird.

Meine Arbeit wird sich darauf konzentrieren, die Zugsimulatorgemeinschaft von RailWorks 3 zu fördern – die Entwickler mit neuen Gedanken einbindet. Deshalb habe ich mir für die nächsten Quartale folgende Ziele gesetzt:

- Entwicklung eines deutschen Signalsystems mit realistischer Nachbildung der PZB
- Modellierung realistischer Gleise und Bettungen
- Erstellung eines komplexen DB-Oberleitungssets
- Programmierung eines RailWorks Texturtools (ACEMaster)

Was wir alle aus RailWorks 3 machen hängt von uns allen ab.

Weiteres werde ich in der nächsten Zeit schreiben.


In den nächsten Tagen folgen ein paar Neuigkeiten zum BahnSimulator. Den Rest dieses Eintrages lesen »