1. Debugging
Unter einem Debugger / Debugging versteht man einen Prozess, in dem man Fehler (Bug) findet und / oder behebt. Ursprünglich kommt es von aus dem Programmierwesen, der Begriff wird allgemein auch als Synonym zu "Fehlersuche" verwendet.
2. Debug-Modus aufrufen
OMSI stellt neben dem Hauptspiel und dem Editor auch noch einen Debug-Modus zur Verfügung. Nur damit funktionieren die Debug-Tools, die sich im Tab "Debug" finden. Man ruft den Modus genau so wie den Karteneditor auf - bloß mit einem anderen Parameter.
Hier findet sich eine Anleitung, wie man diesen (und weitere Modi) aufruft. Für den Debug-Modus muss der Parameter -debug gewählt werden.
Der Debug-Modus der Anwendung hängt sich öfters auf und hat verhältnismäßig viele Nachladeprobleme. Jedoch kann der Modus zu einigem ganz nützlich sein, zum Beispiel zum Testen der Fußgänger- und Fahrzeugpfade auf eigens erstellten Straßenzügen.
Bei einigen Funktionen ist jedoch unklar, ob diese funktionieren, da diese weder reproduziert wurden konnten noch irgendwo dokumentiert sind. Es kann davon ausgegangen werden, dass sich der Debug-Modus seitens der Entwicker (MR-Software) noch in einem sehr frühen Zustand befindet und es daher noch viele Funktionen gibt, die nicht vollständig oder gar nicht implementiert sind.
3. Aufbau des Debug-Modus
Auf den ersten Blick ist der Debug-Modus eine Mischung zwischen dem Hauptspiel und dem Editor.
Nach dem Öffnen des Debug-Modus erscheint vor der Oberfläche des Editors der typische Startbildschirm, wie man ihn aus dem Hauptspiel kennt. Dort wählt man die Karte aus, welche man laden möchte (auch über die Karteneditor-Menüleiste oben möglich). Hat man auf "Start!" gedrückt, so wird die Karte geladen. Es scheint zuerst so, als wenn nichts passiert. Man muss jedoch eine Weile warten, erst danach macht sich das Laden bemerkbar.
Nach dem Laden des Umgebungsverkehrs erscheint jedes Mal die Fehlermeldung "Gleitkommadivision durch Null.":
Diese kann jedoch einfach mit "OK" bestätigt werden, da Meldung immer beim Laden einer Karte im Debug-Modus erscheint. Ist die Karte vollständig geladen, so sollte das Editor-Layout mit dem inGame-Menü unten rechts erscheinen.
Im Debug-Modus sind folgende Funktionen möglich:
- Testen / Debugging (Tab "Debug")
- Umgebungseinstellungen (Tab "Envir")
- Sämtliche Funktionen des inGame-Menüs (via ALT aufrufbar)
Es können auch Fahrzeuge platziert und gefahren werden. Dies ist jedoch nicht empfehlenswert (außer man möchte ein Fahrzeug testen), da der Debug-Modus öfters hängt.
4. Debug-Funktionen
Um zu den Debug-Funktionen zu gelangen, muss man zum folgenden Tab namens "Debug" wechseln:
Nun findet man folgende Optionen:
Im folgenden werden alle Funktionen, soweit möglich, erklärt.
4.1. AI-Scripts
Diese Funktion aktiviert dem Namen nach die AI-Scripts. Diese Scripts werden normalerweise nur ausgeführt, sofern das jeweilige Fahrzeug nicht sichtbar ist. Mutmaßlich funktionslos.
4.2. Infomeldung bei Crash
Bei dieser Funktion soll eine Infomeldung bei einem Crash, also einer Kollision mit einen Szenerieobjekt, Fahrzeug oder sonstigem, erscheinen. Findet jedoch eine Kollision statt und diese Funktion ist aktivert, so stürzt die Anwendung ab. Daher wird davon abgeraten, diese Option zu verwenden.
4.3. Benchmark Depth
Damit kann die Tiefe der (unfertigen) Funktion des Benchmark Tests einstellen. Dieser Benchmark-Test findet sich in der Menüleiste des Editors (und dem Debug-Modus). Jedoch funktioniert er nicht richtig und nirgends wurde festgehalten, was bei welcher Tiefe getestet wird.
4.4. Zeitraffer
Mit dieser Funktion wird alles in Zeitraffer wiedergegeben - Autos, Menschen, Zeit und auch die Bewegung und Weichheit der Kamera, wenn man sich z.B. in der F4-Ansicht bewegt.
4.5. Zeitlupe
Diese Funktion ist das Gegenteil des Zeitraffers, alles wird langsamer (und mit weniger FPS (Bildern pro Sekunde)) dargestellt. Kombiniert man Zeitraffer und Zeitlupe, so kommt eine Wiedergabe (x1.0) mit wenigen FPS zustande.
4.6. Peds fast walking
Ist der Haken gesetzt, so bewegen sich nur die KI-Menschen schneller. Kombiniert man diese Funktion mit dem Zeitraffer, so laufen die KI-Menschen ungefähr vier mal so schnell.
4.7. Render joinobject
Funktionslos.
4.8. Gelenkbus-Debugfenster
Mit einem Klick auf diesen Button öffnet sich ein Dialog, den man unabhängig von dem Hauptfenster verschieben und steuern kann. In diesem Fenster findet man Anzeigen zum debuggen von Fahrzeugen mit Gelenken.
4.8.1. Release Link
Mit dieser Funktion kann bei Gelenkbussen das Hinterteil vom Vorderteil getrennt werden. Bei erneutem Klick wird dieses wieder ruckartig zusammengefügt. Während der Teilung kann man sich mit dem Fahrzeug nur schlecht bzw. gar nicht fortbewegen.
Beispielvideo:
4.8.2. LKW Mode
Funktionslos.
4.9. Set
Funktionslos.
4.10. Unload all Tex.
Das drücken dieses Buttons bewirkt, dass alle Texturen neu geladen werden. Das ist das Äquivalent zum Drücken von WINDOWS + L, gefolgt vom erneuten anmelden.
Dies funktioniert auch im Editor und ist für Entwicker durchaus ein effizientes Mittel, wenn es um das schnelle Bearbeiten und Anpassen von Texturen geht.
4.11. Control Humans direct
Setzt man diesen Haken, passiert nichts anderes, als dass sich OMSI aufhängt und man die Anwendung nur noch über den Task-Manager beenden kann.
4.12. Controls
Mit einem Klick auf diesen Button öffnet sich ein Fenster einer wohl unfertigen Funktion - das manuelle kontrollieren der KI-Menschen. Diese Funktion funktioniert jedoch nicht.
4.13. Reverb
Dieser Haken aktiviert / deaktiviert Hall, den man z.B. unter Brücken oder in großen Hallen vorfindet, sofern er am Szenerieobjekt definiert wurde.
4.14. Sel. Station
Funktionslos.
4.15. Refresh Humans @ Busstops
Hiermit können die KI-Menschen in den Personenobjekten an den Haltestellen neu gesetzt werden. Je nachdem, wie viele Fahrgäste bei den Haltestellenwürfeln eingestellt wurden, werden entsprechend viele zufällig neu gesetzt.
4.16. Full
Ist dieser Haken gesetzt, so werden beim Neuladen der KI-Menschen an den Haltestellen (s. Kapitel 4.15) alle Fahrgastplätze belegt. Diese Funktion funktioniert aber auch nur bedingt, da nicht wirklich alle Plätze belegt werden.