Began and finished games.md

This commit is contained in:
debiankaios 2022-11-06 20:08:32 +01:00
parent 3b7e8b2a03
commit d91c3478b8

95
_de/games/games.md Normal file
View File

@ -0,0 +1,95 @@
---
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 kohärentes Spiel ergeben.
Ein gutes Spiel hat zum Beispiel ein einheitliches Grundthema und eine Richtung,
es könnte ein klassischer Crafter 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 Mods-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 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
eine Mod den gleichen Namen wie eine andere Mod verwendet, auch wenn sie von
einem Drittanbieter stammt, sollte sie eine kompatible API haben.
Wenn ein Spiel zum Beispiel eine Mod mit dem Namen `doors` enthält,
dann sollte sie 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 einer ekelhaften Mega-God-Mod wie
*default* in Minetest Game aufrechtzuerhalten. In diesem Fall sollte das Spiel keine 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
* Erstelle ein einfaches Spiel, bei dem der Spieler durch das abbauen spezieller Blöcke Punkte erhält.