From Minetest Developer Wiki
Revision as of 15:04, 14 August 2022 by Wuzzy (talk | contribs) (→‎Minetest and its components: Add texture pack, ContentDB)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Minetest and its components

  • Minetest: a game engine consisting of a collection of libraries connected by C++ code.
  • IrrlichtMt is the 3D rendering library used by Minetest.
  • Irrlicht is the software from which IrrlichtMt was forked.
  • Game: A collection of pre-packaged mods with some additional metadata. Supposed to be a (hopefully) complete interactive playable experience which stands on its own. Can be run from the main menu. Must be put into the games directory. Not to be confused with modpacks. See also Games on the Minetest Wiki.
  • Minetest Game: Official name of the default game (usually) shipped with Minetest, a base for modding.
  • minetest_game: Repository name of Minetest Game. Not the official name of the default game!
  • Mods are the foundation of games which add or modify various features, using the Lua modding API. Here you find the actual source code of games. Players can also add additional own mods to extend a particular game
  • Modpack: A collection of mods which are bundled together in a directory. These mods are usually closely related and are bundled for convenience. Must be put into the mods directory
  • Texture pack: A collection of textures usable by the player to replace the textures/images/graphics used in games and mods to make them look different
  • ContentDB is the official place to publish and download games, mods and texture packs
  • Server: the program that manages and distributes mod, texture and sound data to the players. It also does all of the mod initiation.
  • Client: the program that the player uses to connect to singleplayer or multiplayer games. Handles the rendering of the world.
  • minetest.conf is a file in the root directory which contains settings for the game. A list of default settings can be found in minetest.conf.example or defaultsettings.cpp.

In-game Content

  • A World is a saved game in Minetest, which contains:
    • Map - a database of the map's content, everything from blocks to chest contents.
    • Player passwords, their health, and their inventory.
    • Other needed files, such as ban lists, seed numbers and protected areas.
  • There are several different terms relating to nodes and their organization:
    • Nodes are 1×1×1 meter individual cubes in the game, and are grouped and loaded by their blocks.
      • Node metadata - extra data that is attached to a node. Chests and furnaces use this to store their inventories, and signs use this to store what is written on them.
      • Liquids: are nodes with some kind of property related to liquids. In development, this term is problematic when used without any clarification, as node properties related to liquids are decoupled. To avoid confusion, say to which precise technical property you refer to, for example, the "liquid" drawtype, liquid spreading/flowing, liquid visocity, liquid player movement physics, etc.
    • Blocks or Mapblocks are 16×16×16 groups of nodes.
    • Sectors are stacks of single blocks, extending from the bottom of the worlds to the top.
    • Mapchunks are 80x80x80 nodes (5x5x5 blocks) groups, they are an abstraction used only for mapgen (the mapgen works on one mapchunk at a time, because blocks are too small to efficiently generate).
  • Object - A movable thing that is not bound to a fixed position. Following kinds of objects exist:
    • Entity - an object that is controlled by Lua. For example: mobs, falling nodes or primed TNT.
    • Player - an object that represents a player.
  • Items are things that you can put in inventories. Items can have special uses like digging, dealing damage, crafting, placing, etc., but this is optional. Note the 3 item types are a technical distinction, not a semantic one.
    • Tool or tool item - a type of item that is non-stackable and has a "wear" property so it is capable of wearing out and break.
    • Node item - the "item form" of a node which can be placed by default. Every node (except the unknown node) has a node item associated with it. For example, a cobblestone from Minetest Game is a node when it exists in the world, but it is a node item when in an inventory.
    • Craftitem - a type of item that is neither a tool nor a node item.
  • Item stacks are stacks of identical items with an item count.
  • Environment - A global Lua/C++ object (not the movable thing!) that (amongst other things) provides access to all nodes, (active) objects and players.
  • ABMs (Active Block Modifiers) are functions that run on nodes of a certain type, changing them or giving them interactive properties (eg. grass and moss growth).
  • LBMs (Loading Block Modifiers) are similar to ABMs but are only run once when the mapblock is loaded.

Lua and Modding-related

  • Lua is a simple programming language that is used in mods
  • Modding API or Lua API is a selection of functions and values, used by mod files to modify, extend or add features and blocks. API stands for Application Programming Interface.
  • lua_api.txt is a file in the doc/ directory and contains a reference for the Lua API.

Outdated or incorrect terms

  • Subgame: Outdated term for “game”
  • Minetest Engine: Incorrect name for “Minetest”
  • minetest_game: Old unofficial name of “Minetest Game”. Now this term only refers to the repository of Minetest Game