Der Eintrag hier ist durch Natter's Verweis auf
518 nach meiner Frage ausgelöst.
Die Zufallssteuerung in XForce ist sehr rudimentär - kein Spielsatzersteller hat Einfluss darauf, wie häufig ein UFO auftaucht (lediglich wie oft welches Modell bei einem Ufo ausgewählt wird) oder wie häufig zufällige Scripts ausgelöst werden.
Man kann in einem Spiel wie XForce aber auch nicht so einfach einen beliebigen Zufall unterbringen - das kollidiert dann an einigen Punkten in der Zeitsteuerung oder bringt kaum steuerbare Zufallsergebnisse, denn XForce rechnet mit Schritten von Minuten bzw. Stunden.
Man braucht allerdings auch keinen ganz freien Zufall um vernünftig einen Spielsatz steuern zu können. Ich würde deshalb vorschlagen, einige Zufallstypen einzuführen und diese dann den jeweiligen Ereignissen zuordnenbar zu machen.
Es wird dann also im Spielsatz bei einem Script und bei allgemeinen Zuordnungen lediglich der Zufallstyp ausgewählt und eine Funktion geschrieben, mit der man Zufallsereignisse im Spiel auch noch gescriptet einem anderen Zufallstyp zuweisen kann.
Diese Zufallstypen können dann fest in den passenden Zeitabständen aufgerufen werden und haben jedesmal eine Liste wie oft und für was sie überprüft werden.
Typ 1: Prüfung einmal pro Minute, Ereignis tritt mit 0,16% ein (müsste die aktuelle Wahrscheinlichkeit für UFOs sein, wenn ich mich richtig durch den Code gehangelt habe)
Typ 2: Prüfung einmal pro Minute, 1% (UFO-Ansturm)
Typ 3: Prüfung einmal pro Stunde, 0,16%
Typ 4: Prüfung einmal pro Stunde, 1%
Typ 5: Prüfung einmal pro Tag, 1%
Typ 6: Prüfung einmal pro Tag, 5%
Typ 7: Prüfung einmal pro Woche, 5%
Eventuell auch als Wertematrix, d.h. ein Wert ob pro Minute, pro Stunde, pro Tag oder pro Woche geprüft wird und ein Wert für die Wahrscheinlichkeit (0,16%, 1%, 5%). Hierbei würde ich aber keine freie Wahrscheinlichkeitseingabe zulassen sondern nur die drei vorgegebenen Werte zur Auswahl.
Im Editor gibt es dann die Möglichkeit, als allgemeine Spielsatzeigenschaft die Ufo-Wahrscheinlichkeit einem Typen zuzuordnen sowie bei jedem Skript außer Zufällig auch den Zufallstyp festzulegen.
In der Zeitsteuerung wird in den entsprechenden Zeitabständen die Zufallsroutine aufgerufen, die eine Liste mit allen Ereignissen enthält die diesen Typ zugeordnet bekommen haben. Dann wird jedesmal ein Random gemacht und im Erfolgsfall die passende Funktion aufgerufen.
Das kann dann die UFO-Erzeugung oder ein beliebiges Script sein, z.B. für Pseudo-Nachrichten oder Zufallsereignisse.
Und die Beschränkung auf die fest definierten Zufallstypen verhindert das irgend ein Spielsatz oder Spiel aufgrund falscher freier Zufallswerte abstürzt etc.