Ich stelle heute etwas aus einer Ecke der Spieleentwicklung vor was man nicht so oft sieht, Tools.
Ich habe für meine Spieleengine einen Editor zum Designen von endlichen Zustandsautomaten(FSM) entwickelt.
Warum hab ich das gemacht?
In meiner Spieleengine ist eine Skriptsprache integriert, in die wiederum ein in der Engine implementiertes FSM-System exportiert ist. Damit kann ich in Skripten FSMs erstellen und die verschiedenen Bedingungen für Zustandsübergänge und die Aktionen beim Zustandseintritt implementieren. Ich verwende das vorwiegend für Verhaltenssteuerung meiner NPCs und Levelkontrolle.
Wie hab ich es gemacht?
Der Editor ist in C++mit Qt in etwa 3 Monaten Feierabendarbeit entstanden.
Was kann man damit machen?
Im Hauptbereich des Fenster kann man mit den Tools der Toolbox seine Zustände erzeugen und sie mittels Transitionen verbinden.
Mit Hilfe des Eigenschafteneditors können die Eigenschaften der Zustände und Transitionen geändert werden. Das ist insbesondere bei den Transitionen wichtig, da man hier Werte eintragen sollte, die das Kriterium zum Zustandsübergang definieren. Sobald der FSM fertig designt ist und die Eigenschaften angepaßt wurden, kann man sich ein Fenster öffnen lassen, das einem den komplettem Skriptcode zum Erstellen des FSM anzeigt. Dieser läßt sich dann in einem Texteditor noch nachbearbeiten, was auch notwendig ist, um Funktionen für die Transitionen zu implementieren.
Wer noch etwas mehr lesen will den möchte ich auf meine
Webseite verweisen. Außerdem kann mann in folgendem YouTube-Video einen
Annäherungssensor als FSM implementiert in meinem Spieelengine-Prototypen sehen.
Entschuldigt die schlechte Schrift and den Transitionen, aber da bin ich gerade noch am rumprobieren.