---
title: Spiele kreieren
layout: default
root: ../..
idx: 7.1
---

## Einleitung <!-- omit in toc -->

Die Stärke von Minetest ist die Möglichkeit, Spiele einfach zu entwickeln, ohne
dass man eigene Voxel-Grafiken, Voxel-Algorithmen oder ausgefallenen
Netzwerkcode erstellen muss.

- [Was ist ein Spiel?](#was-ist-ein-spiel)
- [Spiel-Verzeichnis](#spiel-verzeichnis)
- [Spielübergreifende Kompatibilität](#spielübergreifende-kompatibilität)
	- [API-Kompatibilität](#api-kompatibilität)
	- [Gruppen und Aliase](#gruppen-und-aliase)
- [Sie sind dran](#sie-sind-dran)

## Was ist ein Spiel?

Spiele sind eine Sammlung von Mods, die zusammen ein zusammenhängendes Spiel ergeben.
Ein gutes Spiel hat zum Beispiel ein einheitliches Grundthema und eine Richtung,
es könnte ein klassischer Craft-Miner mit harten Survival-Elementen sein oder
ein Weltraum-Simulationsspiel mit einer Steampunk-Ästhetik.

Spieldesign ist ein komplexes Thema und eigentlich ein ganzes Fachgebiet.
Es würde den Rahmen des Buches sprengen, es auch nur kurz zu besprechen.

## Spiel-Verzeichnis

Die Struktur und der Ort eines Spiels werden nach der Arbeit mit Mods ziemlich
vertraut erscheinen.
Spiele befinden sich in einem Spielverzeichnis, z. B. `minetest/games/foo_game`.

	foo_game
	├── game.conf
	├── menu
	│   ├── header.png
	│   ├── background.png
	│   └── icon.png
	├── minetest.conf
	├── mods
	│   └── ... mods
	├── README.txt
	└── settingtypes.txt

Das einzige, was erforderlich ist, ist ein Mod-Ordner, aber `game.conf` und `menu/icon.png`
werden empfohlen.

## Spielübergreifende Kompatibilität

### API-Kompatibilität

Es ist eine gute Idee, zu versuchen, so viel API-Kompatibilität mit dem Minetest-Grundspiel (Minetest Game) zu erhalten wie geeignet, da dies die Portierung von Mods in ein anderes Spiel
sehr viel einfacher macht.

Der beste Weg, um die Kompatibilität mit einem anderen Spiel zu erhalten, ist die
API-Kompatibilität mit allen Mods, die denselben Namen tragen. Das heißt, wenn ein Mod den gleichen Namen wie ein anderer Mod verwendet, auch wenn sie von einem Drittanbieter stammt, sollte sie eine kompatible API haben. Wenn ein Spiel zum Beispiel einen Mod mit dem Namen `doors` enthält, dann sollte dieser die gleiche API haben wie `doors` in Minetest Game.

Die API-Kompatibilität eines Mods ist die Summe der folgenden Punkte:

* Lua-API-Tabelle - Alle dokumentierten/angekündigten Funktionen in der globalen Tabelle, die den gleichen Namen haben. Zum Beispiel: `mobs.register_mob`.
* Registrierte Nodes/Items - Das Vorhandensein von Items.

Kleine Fehler sind nicht so schlimm, wie z.B. das Fehlen eines zufälligen Nutzens
Funktion zu haben, die eigentlich nur intern verwendet wurde, aber größere Brüche
in Bezug auf Kernfunktionen sind sehr schlecht.

Es ist schwierig, die API-Kompatibilität mit einem Mega-God-Mod wie *default* in Minetest Game aufrechtzuerhalten. In diesem Fall sollte das Spiel keinen Mod namens default enthalten.

Die API-Kompatibilität gilt auch für andere Mods und Spiele von Drittanbietern, Stellen Sie also sicher, dass alle neuen Mods einen eindeutigen Mod-Namen haben. Um zu überprüfen, ob ein Mod-Name bereits vergeben ist, suchen Sie ihn z.B. auf [content.minetest.net](https://content.minetest.net/).

### Gruppen und Aliase

Gruppen und Aliase sind beides nützliche Werkzeuge, um die Kompatibilität zwischen Spielen zu gewährleisten, da sie es ermöglichen, dass die Namen von Gegenständen in verschiedenen Spielen unterschiedlich sein können. Gemeinsame Nodes wie Stein und Holz sollten Gruppen haben, um das Material zu kennzeichnen Es ist auch eine gute Idee, Aliasnamen von Standardnodes zu direkten Ersetzungen zu erstellen.

## Sie sind dran

* Erstellen Sie ein einfaches Spiel, bei dem der Spieler durch das Abbauen spezieller Blöcke Punkte erhält.
