Luanti in der Schule/Selber ein Mod erstellen
Mod in Minetest zu erstellen ist wirklich extrem einfach. Das Wiki hier liefert außerdem alle notwendigen Informationen, die man benötigt.
Modding, wie geht das?
Minetest verwendet die Script-Sprache Lua, um Mods und andere Erweiterung zu erstellen. Es ähnelt einer Programmiersprache aber es geht hier vor allem darum, dem Programm Minetest zum Beispiel zu den selbst erstellten Block mitzuteilen, wie er aussehen und sich verhalten soll. Ob man ihn abbauen kann, wie man ihn craften(=herstellen) kann, ob man ihn in einem Ofen als Brennmaterial nutzen kann usw.
Es in Minetest-Mods also meist um Gegenstände, dass sind entweder sogenannte Nodes, die Blöcke, oder Item, was Gegenstände aller Art sein kann, die aber nicht wie Blöcke gesetzt können und abgebaut werden müssen. Item kann man aber ablegen und aufhaben (wie einen Apfel zum Beispiel).
Die Informationen werden mit Hilfe von bestimmten Befehlen bzw. Anweisungen übergeben, bei denen auf ein bestimmter Syntax zu achten ist. D.h. man muss wissen, wie man einen Befehl aufschreibt, welche Informationen man übergibt und in welchem Format diese Informationen angegeben sein müssen, also als Text, als Zahl oder vielleicht auch ein Datei-Name für ein Bild.
Was außerdem zu beachten ist, dass das Mod als Verzeichnis mit bestimmten Unterverzeichnissen verwendet wird, in denen wiederum bestimmte Dateien vorhanden sein müssen, wobei die Anzahl der Dateien schwankt, je nachdem, welche Funktionalität man eben haben will. Bestimmte Dateien sind Pflicht, andere stellen eine Ergänzung dar.
Was man dazu braucht
Bei der, für das Erstellen von eigenen Mods, benötigten Software, kann man auf Open-Source-Programme zurückgreifen. Ich würde vorschlagen:
- Zum Schreiben des Lua-Codes braucht man einen einfache Editor, wie unter Windows das normalerweise vorhandene "Notepad". Auch die anderen Betriebssysteme bieten Editoren, wie unter Linux/KDE das Programm "kate".
- Das Zeichenprogramm "The Gimp", mit dem Pixelgrafiken für die Texture erstellen kann. Eventuell könnte man auch mit dem Programm "Inkscape" für kompliziertere Grafiken SVG-Dateien erstellen und die als PNG-Dateien exportieren, wobei man dann die Auflösung vermutlich etwas reduzieren muss.
- Mit dem sehr leistungsstarken 3D-Programm "Blender" kann man 3D-Modell erstellen, sogenannte Meshes. Zusammen mit passenden Texturen kann man Objekte in jeder beliebigen Form erstellen.
- Ein kleines Helferlein, zum einfach Erstellen von Blöcken, die nicht einfach nur aus einem Würfel bestehen, braucht man Blender glücklicherweise nicht sondern kann das Programm "NodeBoxEditor" verwenden. Forum-Seite dazu
Wie man anfängt
Freundlicherweise hat ein deutscher Minetest-User angefangen, eine kleine Serie von Video zu erstellen, in der er vormacht, wie man ein Mod erstellt. Die Videos sind auf einer YouTube-Benutzer-Seite zu finden.
Wie wäre es, einfach mal anzufangen? Entweder man hat schon ein Thema für ein Mod, das man umsetzen möchte, oder probiert einfach aus, die Anleitung nachzuvollziehen!
Wenn man erst einmal das Prinzip verstanden hat, kann man sich vielleicht einmal dieses Handbuch zum Thema Modding anschauen, dass einen ähnlichen Weg geht, wie die Videos, aber alle Informationen schriftlich liefert und dazu auch
Und weiter?
Beide vorher genannten Informationsquellen sind (leider) nicht sehr vollständig. Es werden nur einzelne Beispiele geliefert, anhand deren man sich orientieren kann. Die beste Quelle für die Informationen, wie man das Lua-Scripting in Minecraft-Mods anwendet sollte das Entwickler-Wiki sein, dass die Befehle dokumentiert.
So findet man zum Beispiel Seiten dazu, wie man Nodes (Blöcke) und Craft-Item (Sachen, die man eher in der Hand hält) anlegt:
Oder man findet auch den Befehl, mit dem man ein selbst angelegtes Item/Node im Spiel herstellbar machen kann.
Das Problem bei alle diesen Seiten aber ist, dass die Informationen zu den einzelnen Opionen teilweise sehr rar sind und es hier und da an Informationen mangelt. Zwar ist zum Beispiel auf der Seite register_node angegeben, welche Felder in der Block-Definition angegeben werden können und um welche Typen es sich handelt. An einigen Stellen fehlen aber Informationen, wie zum Beispiel wird in dem Artikel zu register_node nicht erwähnt, dass man Blöcke Abbaubar machen kann, indem man sie in einer Grabe-Gruppe zuordnet. Dazu findet man im Mooding-Handbuch Informationen, dass im Entwickler-Wiki auch zu finden ist:
Nur das eine Beispiel am Ende der Seite enthält eine solche Gruppen-Zuordnung.
Im Entwickler-Wiki findet man, wenn man weiß nach was man suchen muss, zu den Gruppen Informationen auf der Seite
Was auch nicht so gut zu finden ist, sind Informationen dazu, wie man einem Block verschiedene Bilder auf den unterschiedlichen Seiten gibt. Das steht richtigerweise auf der Seite register_node aber recht versteckt unter dem Stichpunkt "tiles".
Alles in allem etwas unbefriedigend, denn man kann sich nicht wirklich einlesen und sicher sein, alle notwendigen Informationen zu finden.
Die Lösung: Nachmachen
Also, was tun, um zum Profi-Modder zu werden?
Ich würde, statt sich in jede Kleinigkeit einzuarbeiten, mir ein Mod raussuchen und nach Blöcken oder Items schauen, dir ich so ähnlich selber erstellen möchte.
So könnte man zum Beispiel schauen, wie im Mod "Moreblocks" neue Blocke erzeugt werden und wie sie weitere Funktionen erhalten.
Oder wer noch tiefer reingehen will kann natürlich gleich im Minetest-Spiel selber nachschauen, wie bestimmte Gegenstände ihre Funktionalität bekommen.
Möchte ich zum Beispiel in einem Chemie-Mod einem Reagenzglas eine Funktionalität ähnlich wie ein Eimer geben, so könnte ich nachschauen, wie ein "Eimer" funktioniert und programmiert wird.
- https://github.com/minetest/minetest/tree/master/games/minimal/mods/bucket
- https://github.com/minetest/minetest_game/tree/master/mods/bucket
Links zur Ablage
- http://dev.minetest.net/Main_Page Developer Wiki mit allen Hintergrund-Informationen
- http://wiki.minetest.net/Using_Blender Anleitung zum Erstellen eines Mobs in Minetest mit Blender
- https://de.wikibooks.org/wiki/Blender_Dokumentation bei Wikibooks