In diesem Tutorial möchte ich die wichtigsten Grundlagen der Programmiersprache Lua vermitteln. Allerdings so einfach wie möglich, sodass Programmierkenntnisse vorab nicht notwendig sein sollten. Ist etwas unverständlich, lass mir ruhig einen Kommentar da, oder schreibe eine E-Mail.
Zuerst sollten wir klären, was Lua überhaupt ist. In erster Linie eine Programmiersprache, klar. Allerdings fällt diese Sprache in die Kategorie Skriptsprache. Wann immer wir also von Lua reden, reden wir von einer Skriptsprache.
Aber was unterscheidet eine Skriptsprache von anderen Sprachen? Code der zum Beispiel in der Sprache C geschrieben wurde, durchläuft einen relativ langen Prozess. Dabei wird der Code auf Fehler und Ungereimtheiten überprüft, für eine bestimmte Plattform angepasst und am Ende in Maschinencode übersetzt, den ein Prozessor versteht.
Bei Skriptsprachen ist das anders. Hier wurde bereits ein Programm entwickelt, dass der Programmierer dann mit einem Skript steuern kann. Das ist der sogenannte Interpreter. Er interpretiert das Skript und führt entsprechende Befehle aus. World of Warcraft enthält zum Beispiel einen Lua-Interpreter der als Schnittstelle zwischen Spiel und Skript fungiert. Er stellt bestimmte Funktionen und Daten bereit, die über Lua-Skripte gesteuert und verarbeitet werden können.
Das hat unter anderem den Vorteil, dass der Code nicht erst in Maschinencode übersetzt werden muss und man so Änderungen vornehmen kann, ohne lang warten zu müssen. Bei großen Produktionen kann das Kompilieren (übersetzen) ziemlich viel Zeit in Anspruch nehmen.
Oder, ein noch realistischeres Beispiel: Man möchte Spielern ermöglichen das Spiel um Funktionen zu erweitern, ohne dafür den Code offenzulegen oder vom Spieler zu verlangen das Ding selbst zu kompilieren. Zudem kann so auch sehr strikt reguliert werden, welche Funktionen und Daten für Spieler überhaupt zugänglich sind.
Lua ist eine Skriptsprache, die häufig in Spielen zum Einsatz kommt, um Nutzern die Möglichkeit zu geben, Add-ons oder andere Dinge zu programmieren. Das bekannteste Beispiel dafür dürfte World of Warcraft sein. Für GTA V gibt es inoffizielle Möglichkeiten das Spiel mit Lua zu modifizieren. Dafür benötigt man einen Client namens FiveM, der es ermöglicht modifizierte Multiplayer-Server bereitzustellen.
Während Lua selbst überall gleich funktioniert hängt es immer vom Interpreter ab, was man damit anstellen kann. Beziehungsweise von der Umgebung, in der dein Skript ausgeführt wird (WoW, Roblox, Löve2D, …).
Damit wir mit Lua durchstarten können, um zum Beispiel ein Plugin für WoW zu programmieren, müssen wir erst mal die Grundlagen lernen. Zugegeben, das sieht immer etwas langweilig aus. Auf lange Sicht spart man sich aber viel Zeit und Frustration, wenn man die Grundlagen lernt und so später auch Fehler versteht und weiß, warum etwas nicht funktioniert. Daher (und aus vielen anderen Gründen) beginnt dieses Tutorial mit einfachen Programmen, die in der Konsole angezeigt werden.