Stellaris News - Stellaris-Entwicklungstagebuch #240 - Scripting-Verbesserungen in 3.3
Es gibt eine neue News zu dem Steam Game Stellaris vom 03.02.2022. Folgendes hat dabei der Entwickler von Stellaris veröffentlicht:
geschrieben von Caligula
Доступно на русском в ВК/Lesen auf Russisch auf VK
Hallo und willkommen zu einem weiteren Modding-basierten Entwicklertagebuch - wie es in den Wochen vor der Veröffentlichung in letzter Zeit zur Tradition geworden ist. Ich fürchte, dass uns bald die Möglichkeiten ausgehen werden, das Skript-System zu revolutionieren, aber für den Moment gibt es ein paar ziemlich coole Verbesserungen zu zeigen, die in 3.3 ihr Debüt feiern werden (ihr könnt sie in der offenen Beta frühzeitig ausprobieren).
Skript-Werte
Diese Geschichte beginnt mit Gewichtsfeldern. Damit meine ich etwas, das in etwa so aussieht:
weight = {
Basis = 1
Modifikator = {
Faktor = 2
some_trigger = yes
}
}
Wir stellten fest, dass der dieser Skriptstruktur zugrundeliegende Code nicht einheitlich war: Es gab eine Reihe unterschiedlicher Code-Implementierungen, die sich in einer Weise unterschieden, die für den Endbenutzer, den Skripter, nicht ohne weiteres ersichtlich war. So konnte man beispielsweise in einigen Skripten "Faktor" oder "addieren" eingeben, in anderen "Faktor" oder "Gewicht". Und dann gab es noch die ganz problematischen Fälle: Manchmal, wenn man die Basis auf 0 setzte, zeigte das Spiel 1 an, und in einem Fall (KI-Persönlichkeiten) zählte "factor" tatsächlich als "add"!
Die Lösung bestand darin, alle Varianten zu entfernen und sie in einer einzigen Code-Implementierung zusammenzufassen, die für alle gilt. Dabei müssten die Eigenheiten (abgesehen von den erwähnten Problemen/Fehlern) der bestehenden Versionen berücksichtigt werden (d.h. es dürften keine großen Teile des Skripts kaputt gehen), aber andererseits würde ein einziges System es uns ermöglichen, Verbesserungen einzuführen, die überall im Spiel verwendet werden könnt.
Trotz einiger Anfangsschwierigkeiten (ich habe vielleicht versehentlich jede Anomalie auf jedem Planeten spawnen lassen), hat sich dies als durchaus machbar erwiesen, so dass wir uns nun keine Sorgen mehr darüber machen müssen, dass diese Felder an verschiedenen Orten unterschiedlich funktionieren. Im Grunde ist die einzige Abweichung, die übrig bleibt, ob ihr Standardwert 1 oder 0 ist.
Wenn das erledigt ist, könnten noch ein paar Dinge zum System hinzugefügt werden. Warum zum Beispiel nur "Faktor", "Addieren" und "Gewicht"? Es gibt eine Menge anderer mathematischer Operationen. Also haben wir Subtraktion, Division, Modulo, min, max, abs und Rundung (mit round, floor, ceiling und round_to) hinzugefügt. Wir haben auch dafür gesorgt, dass diese Operationen nicht mehr in "modifier = {}" eingeschlossen werden müssen, wenn sie nicht ausgelöst werden sollen, sondern immer gelten sollen.
Aber das war nur der Anfang. In Version 3.1 haben wir die Möglichkeit hinzugefügt, "trigger:" anstelle von...
Die vollständige News zu Stellaris-Entwicklungstagebuch #240 - Scripting-Verbesserungen in 3.3 findet ihr auf der Stellaris Steam Seite