FSM bei liniaren Missionsverlauf?

  • Moinsen.


    Ich habe mich mal ein bißchen mit FSM auseinander gesetzt.
    Macht es eigentlich Sinn, einen Liniaren Misisonsverlauf in FSM umzusetzen? Gibt das Performance-Vorteile?


    Momenten ungefähr so (vom Server ausgeführt):
    bla bla
    waituntil {sleep 1; !alive Radarstation}
    spawne dies und jendes
    waitUntil {sleep 3; missionNameSpace getVariable "var_foundIntel"};
    bla bla
    setze Task
    waitUntil {sleep 3; !alive Munitionsdepot};
    bla bla
    ..
    Mission zu ende

  • Ich spiele ausschließlich Singleplayer, editiere demnach auch nur für SP, kann daher keine Aussagen über die Funktionalität im MP machen. Seit es FSM in ArmA gibt, nutze ich es für das Taskhandling, was ich in der missionflow.fsm mache. In Arma 2 gab es ein rudimentäres FTL (Friendly to local) system, angeknüpft an die ALICE und SILVIE Module. In meinen Singleplayer Missionen, die ich ausschließlich für mich selbst erstelle, nutze ich das FTL System für Arma 3. Dafür verwende ich ebenfalls FSM. Für mich und meine Arbeitsweise ist die Verwendung von FSM nützlich, über Leistungsgewinn im Nano-Frame-Bereich mache ich mir keine Gedanken.

  • Mit einer FSM wäre es (lt. Theorie) leichter, aus einem linearen einen verzweigten Missionsverlauf zu machen.


    Ich finde den FSM-Editor viel zu unübersichtlich verglichen mit einem herkömmlichen Texteditor für SQF. Man muss nicht alles benutzen, nur weil es verfügbar ist. Eine Statemachine kann man auch in SQF implementieren, indem man die Zustände in z.B. lokale Funktionen packt.

  • Performance kann man an ganz anderer Stelle sparen.


    Wenn es für dich logischer/einfacher ist, würde ich FSM nutzen.
    Ansonsten wüsste ich nicht, was FSM kann, was man nicht auch als reines SQF script abbilden kann.

    FSM ist SQF mit Statemachine Zeugs oben drauf. CBA Statemachine implementiert das in reinem SQF.
    FSM's könnten für verzweigte Missionen ziemlich nützlich sein. Aber für eine Lineare eher nicht. Und nein einen Performance vorteil bekommst du nicht. Eher einen Nachteil da die FSM conditions wie ein waitUntil ohne sleep gecheckt werden.

  • FSM ist SQF mit Statemachine Zeugs oben drauf. CBA Statemachine implementiert das in reinem SQF.FSM's könnten für verzweigte Missionen ziemlich nützlich sein. Aber für eine Lineare eher nicht. Und nein einen Performance vorteil bekommst du nicht. Eher einen Nachteil da die FSM conditions wie ein waitUntil ohne sleep gecheckt werden.

    Der einzige Vorteil, welche ich sehe, ist dass man sich rein optisch auch die Abfolge anzeigen kann.
    Die CBA-Statemachine, oder wenn man eine Statemachine selber schreibt, ist hingegen mehr auf die Vorstellungskraft des Nutzers angewiesen.


    Ein Nachteil wäre, dass es für andere Nutzer, aufgrund der seltenen Nutzung, schwerer nachzuvollziehen ist.
    Wenn es für dich einfacher zu nutzen ist, spricht aus meiner Sicht aber nichts dagegen.


    Performance ist natürlich eine Frage, aber solange man in den einzelnen Abschnitten nicht irgendwelche riesigen Abfragen macht, kann man den Verlust meiner Meinung nach vernachlässigen.