Ein Skript ist normalerweise ein Teil des Codes, der außerhalb Ihrer Core Engine ausgeführt wird. Es ist normalerweise in Textdateien enthalten, wo immer Sie sie aufbewahren möchten. Dann wird es normalerweise von der Engine geladen, analysiert und zur Laufzeit ausgeführt.
Was im Allgemeinen passiert, ist, dass unabhängig von der Sprache, die Sie verwenden (beispielsweise Lua, Angelscript), diese Sprache in der Regel über einige Funktionen verfügt, die es dem Engine-Programmierer ermöglichen, Engine-Funktionen oder sogar ganze Klassen für die Instanz der "Scripting Engine" verfügbar zu machen, die gerade ausgeführt wird .
Zum Beispiel (total dummes Beispiel, aber nur um den Punkt zu verdeutlichen) könnte Ihr Spielcode eine öffentliche Funktion haben, die irgendwo Zombies erzeugt:
void SpawnZombie(int x, int y, int hp /* whatever else */)
{
//...
}
Mit der jetzt verwendeten Skriptsprache können Sie diese Funktion für den ausgeführten Skriptparser verfügbar machen. Dies bedeutet effektiv, dass Sie eine Textdatei öffnen und "SpawnZombie (200,300,1337)" schreiben können. Sobald Ihre Engine den Code ausführt, wird an dieser Stelle ein Zombie erzeugt.
In den anderen Antworten sind bereits einige gute Beispiele dafür aufgeführt, wie dies normalerweise verwendet wird, aber sie lassen einen Punkt aus, den ich sehr wichtig finde:
Diese Art von Skripten macht es sehr einfach, das Gameplay zur Laufzeit zu debuggen oder zu testen.
Angenommen, Sie möchten herausfinden, wie Sie einen Zombie auf der Karte platzieren können, damit er den Spieler am meisten erschreckt, sobald er ihn entdeckt. Ohne Skriptunterstützung müssten Sie die Anwendung beenden, einige magische Zahlen im Code ändern, neu kompilieren und testen.
Mit Scripting-Unterstützung (vorausgesetzt, Sie haben bereits eine Methode zur Texteingabe zur Laufzeit, z. B. eine Debug-Konsole), geben Sie einfach "SpawnZombie (333,444,555)" ein und sehen, wie es aussieht.
Auf die gleiche Weise ist es möglich, Waffen und Fahrzeuge zu spawnen, verschiedene Karten zu laden, die Werte einiger Dinge im Spiel zu ändern usw., Feinde zu befördern, weil Sie keine Zeit damit verschwenden möchten, zu dem Teil zu gelangen, der sein muss getestet etc.
Dies erspart Ihnen bei komplexeren Spielen jede Menge Zeit.