Was bedeutet (Lua) Game Scripting?

9

Ich habe gelesen, dass Lua oft für eingebettetes Scripting und insbesondere für Scripting-Spiele verwendet wird. Es fällt mir schwer, mir vorzustellen, wie es genau verwendet wird. Können Sie beschreiben, warum und für welche Funktionen und für welches Publikum es verwendet wird?

Diese Frage bezieht sich nicht speziell auf Lua, sondern auf eingebettete Skripte, die einem ähnlichen Zweck wie Lua- Skripte dienen.

Wird es für Endbenutzer verwendet, um benutzerdefinierte Anpassungen vorzunehmen? Wird es für Spieleentwickler verwendet, um die Erstellung von Spielelogik (Levels, KI, ...) zu beschleunigen? Wird es zum Skripten von Game-Framework-Code verwendet, da das Scripting schneller sein kann?

Grundsätzlich frage ich mich, wie tief zwischen der einfachen Konfiguration und der Framework-Logik eine solche Verwendung von Skripten liegt. Und wie viel Scripting wird gemacht. Ein paar Konfigurationszeilen oder eine beträchtliche Menge?

Gerenuk
quelle

Antworten:

11

Eine Skriptsprache in einer Spiel-Engine dient dazu, Ihre Spiel-Engine auf eine übergeordnete, interpretierte Weise verfügbar zu machen.

Nehmen Sie zum Beispiel ein Spiel wie Skyrim. Sie werden feststellen, dass viele Quests und Interaktionen stattfinden, und einige davon haben eine ziemlich beeindruckende Logik, wie beispielsweise eine Wache, die darauf reagiert, dass Sie sich während einer Szene einem Gegenstand nähern. Dies sind Dinge, die in einem reinen Datenformat nur schwer auszudrücken sind. Aus diesem Grund werden Quests und benutzerdefinierte Verhaltensweisen normalerweise als Skripte ausgedrückt.

Es gibt auch viele praktische Aspekte zu beachten: Die Spieleentwickler, die diese Skripte erstellen, arbeiten häufig auf einer höheren Abstraktionsebene als die Game-Engine-Codierer. Sie möchten sich keine Gedanken über die Speicherzuweisung usw. machen. Eine Skriptsprache passt gut zu ihnen, und mit LUA rufen sie normalerweise eine schöne Fassade auf hoher Ebene der Engine auf. Sie möchten Ihr Spiel auch nicht jedes Mal neu kompilieren, wenn Sie ein Minutenattribut in einem Skript anpassen möchten.

Darüber hinaus ermöglichen sie ein einfaches Debuggen, Modden und all die anderen netten Dinge, die Sie erwähnt haben.

Daniel B.
quelle
3

Wird es für Endbenutzer verwendet, um benutzerdefinierte Anpassungen vorzunehmen?

Es kann für eine Vielzahl von Zwecken verwendet werden, von einfachen Konfigurationen bis zur Implementierung des Großteils der High-End-Logik des Spiels, z. B. hängt es vom Spiel ab, aber Lua ist nur eingebettetes Scripting. Die Leute können so viel oder so wenig verwenden, wie sie wollen.


quelle
1
Bei einigen Spielen können Endbenutzer ihre eigenen Skripte implementieren. Neben der öffentlichen API können Benutzer Addons, Widgets usw. implementieren, die auf die Spielereignisse reagieren.
Laiv
1
Ich dachte in MMO rpgs :-)
Laiv
1
@ Laiv IMO-MMORPGs sind eines der Dinge, deren Implementierung so unterhaltsam zu sein scheint, aber ähnlich wie wenn man sie lange spielt, wird es zu einem solchen Problem. Die Spielwelt muss normalerweise so statisch sein oder es muss eine so aktive Beteiligung der Spielmoderatoren geben. Ich denke, Offline-Spiele machen so viel mehr Spaß, weil man mit einer Geschichte, die tatsächlich zu Ende geht, eine sehr dynamische Welt erschaffen kann.
1
Nein, nein. Vor Jahren habe ich Allods Online gespielt. Das Spiel hatte eine kleine API für Spieler, um Addons und Widgets zu implementieren.
Ich
1
@ Laiv Oh ich verstehe! Ich bin gerade dabei, mein Konto zu löschen, aber ich habe meine Antwort bearbeitet, um sie kürzer und süßer zu machen. Dabei habe ich ein wenig Informationen verloren, aber in meiner vorherigen Bearbeitung wurde darüber gesprochen, wie ich das Skript persönlich verwendet habe. Im Moment versuche ich, alle persönlichen Informationen aus meinen Antworten herauszuarbeiten.
2

Es kann von anderen Personen als den ursprünglichen Spielprogrammierern verwendet werden, um die Spielelogik zu ändern oder zu erweitern. Solche Leute können relativ nicht technisch sein, z. B. Spieledesigner oder Endbenutzer (Gamer).

Skripte sind normalerweise höhere Sprachen und daher ist Lua einfacher als C ++. In Skripten geschriebener Code kann normalerweise geändert werden, ohne die Hauptanwendung (Game Engine) neu zu kompilieren. Dies ist nützlich, damit Spieleentwickler Spielszenen schnell optimieren können.

PS: Stellen Sie diese Frage besser auf gamedev.stackexchange.com

Den
quelle