Dies ist eine alte Version des Dokuments!


Lua - Informationen

Wenn wir von Lua sprechen, dann sprechen wir von einer Skriptsprache und nicht von einer Programmiersprache. Der Unterschied ist das bei einer Skriptsprache der Code interpretiert und bei einer Programmiersprache kompiliert wird.

Kompilieren und Interpretieren

Der Unterschied liegt darin, wie Wir mit unseren Dateien verfahren, wenn unser Code fertig geschrieben wurde.

Das Kompilieren

Beim kompilieren werden die von uns geschrieben Dateien zusammgefasst und von einem Compiler in ein Programm umgeschrieben. Dann liegt unser Code nicht mehr so vor wie wir ihn geschrieben haben, sondern in Binär-Form, auch Maschinen-Code genannt. Dieser Code besteht aus 0-len und 1-sen und kann direkt vom Computer verarbeitet werden. Wir sprechen hier auch von einem ausführbaren Programm, einer .exe-Datei.

Das Interpretieren

Beim Interpretieren sind wir von einem anderen Programm abhängig. Unsere Skript-Dateien liegen unverändert vor und werden erst bei Programmstart eingelesen, zu Binär-Code umgewandelt und ausgeführt. Dieser Vorgang wird als Interpretieren bezeichnet und ist logischerweise langsamer als die Ausführung eines kompilierten Programmes.

Vorteil des Interpretierens

Wenn das Interpretieren jetzt so langsam ist, wo liegt dann der Vorteil? Dazu machen wir einen Ausflug in die Spieleprogrammierung. Gehen wir einmal davon aus, wir haben bereits ein komplexes Gefüge aus Game-Engine-Verwaltung, Balancing und Story. Jetzt kompilieren wir all unseren Code. Das kann bei großen Programmen wie Computerspielen bis zu Zehn Stunden dauern. Am Ende stellt sich heraus, das an einer bestimmten Stelle noch ein Unstimmigkeit vorliegt und eine Änderung vorgenommen werden muss. In diesem Fall müsste der Code bei einer kleinen Änderung nochmal komplett neu kompiliert werden. Um diese Arbeit zu vermeiden, gibt es die Möglichkeit Dateien und Inhalte auszulagern. Ein konkretes Beispiel wäre hier eine Spielfigur. Was für Attribute eine Spielfigur hat, ist bereits durch das große Programm festgelegt. Die einzelnen Werte der Attribute sind jedoch in eine passende Datei ausgelagert um nachträglich bequem Änderungen vorzunehmen. Ähnlich verhält es sich bei Lua. Anstatt nur Attribute einzlulesen, kann hier ganzer Programmcode nachträglich ergänzt werden.

Wo liegt die Verbindung zu Lua?

Normalerweise werden solche großen Programme in Hochsprachen wie C/C++ geschrieben. Aber für unsere externen Dateien gibt es noch eine weitere Möglichkeit der Vereinfachung. Nun kommt nun Lua ins Spiel. Lua hat eine C-API (Application Programming Interface), das heisst eine Schnittstelle zu C. Hier werden die Lua-Funktionen in den C/C++ Quellcode übersetzt. Wir können also unseren Code in Lua schreiben und anschließend durch unser C/C++ Programm ausführen oder verarbeiten lassen. Jetzt kommen auch die Vorteile von Lua zum tragen:

  • einfache Syntax
  • keine Typenunterscheidung
  • Betriebsystem übergreifend

Zusätzlich ist Lua jederzeit um Funktionen erweiterbar die in C/C++ geschrieben werden können. Wie die Übergänge zwischen Lua und C funktionieren dazu kommen Wir später.

Lua Syntax

Um die Syntax zu verstehen, muss man wissen wie sie gelesen werden muss. Sie sieht auf den ersten Blick für Anfänger wohl etwas kompliziert aus, aber keine Sorge, die Syntax muss für die Tutorials nicht verstanden werden.

Lua Syntax

Die Programmierung

Weiter geht es mit der Programmierung