]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - README.md
Fix misleading chat messages of /clearobjects (#10690)
[dragonfireclient.git] / README.md
index 87b9f10af0e7c629d1bcb6132a7f34ab68a60745..1d8f754fedf65a83c9e98e7287db43f77c417977 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,17 +1,17 @@
 Minetest
 ========
 
-[![Build Status](https://travis-ci.org/minetest/minetest.svg?branch=master)](https://travis-ci.org/minetest/minetest)
+![Build Status](https://github.com/minetest/minetest/workflows/build/badge.svg)
 [![Translation status](https://hosted.weblate.org/widgets/minetest/-/svg-badge.svg)](https://hosted.weblate.org/engage/minetest/?utm_source=widget)
 [![License](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
 
 Minetest is a free open-source voxel game engine with easy modding and game creation.
 
-Copyright (C) 2010-2019 Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2010-2020 Perttu Ahola <celeron55@gmail.com>
 and contributors (see source file comments and the version control log)
 
-In case you downloaded the source code:
----------------------------------------
+In case you downloaded the source code
+--------------------------------------
 If you downloaded the Minetest Engine source code in which this file is
 contained, you probably want to download the [Minetest Game](https://github.com/minetest/minetest_game/)
 project too. See its README.txt for more information.
@@ -31,10 +31,10 @@ Table of Contents
 
 Further documentation
 ----------------------
-- Website: http://minetest.net/
-- Wiki: http://wiki.minetest.net/
-- Developer wiki: http://dev.minetest.net/
-- Forum: http://forum.minetest.net/
+- Website: https://minetest.net/
+- Wiki: https://wiki.minetest.net/
+- Developer wiki: https://dev.minetest.net/
+- Forum: https://forum.minetest.net/
 - GitHub: https://github.com/minetest/minetest/
 - [doc/](doc/) directory of source distribution
 
@@ -65,19 +65,19 @@ Some can be changed in the key config dialog in the settings tab.
 | +                             | Increase view range                                            |
 | -                             | Decrease view range                                            |
 | K                             | Enable/disable fly mode (needs fly privilege)                  |
-| L                             | Enable/disable pitch move mode                                 |
+| P                             | Enable/disable pitch move mode                                 |
 | J                             | Enable/disable fast mode (needs fast privilege)                |
 | H                             | Enable/disable noclip mode (needs noclip privilege)            |
-| E                             | Move fast in fast mode                                         |
+| E                             | Aux1 (Move fast in fast mode. Games may add special features)  |
+| C                             | Cycle through camera modes                                     |
+| V                             | Cycle through minimap modes                                    |
+| Shift + V                     | Change minimap orientation                                     |
 | F1                            | Hide/show HUD                                                  |
 | F2                            | Hide/show chat                                                 |
 | F3                            | Disable/enable fog                                             |
 | F4                            | Disable/enable camera update (Mapblocks are not updated anymore when disabled, disabled in release builds)  |
 | F5                            | Cycle through debug information screens                        |
 | F6                            | Cycle through profiler info screens                            |
-| F7                            | Cycle through camera modes                                     |
-| F9                            | Cycle through minimap modes                                    |
-| Shift + F9                    | Change minimap orientation                                     |
 | F10                           | Show/hide console                                              |
 | F12                           | Take screenshot                                                |
 
@@ -92,13 +92,13 @@ Locations:
 Where each location is on each platform:
 
 * Windows .zip / RUN_IN_PLACE source:
-    * bin   = `bin`
-    * share = `.`
-    * user  = `.`
+    * `bin`   = `bin`
+    * `share` = `.`
+    * `user`  = `.`
 * Windows installed:
-    * $bin   = `C:\Program Files\Minetest\bin (Depends on the install location)`
-    * $share = `C:\Program Files\Minetest (Depends on the install location)`
-    * $user  = `%Appdata%\Minetest`
+    * `bin`   = `C:\Program Files\Minetest\bin (Depends on the install location)`
+    * `share` = `C:\Program Files\Minetest (Depends on the install location)`
+    * `user`  = `%APPDATA%\Minetest`
 * Linux installed:
     * `bin`   = `/usr/bin`
     * `share` = `/usr/share/minetest`
@@ -110,18 +110,18 @@ Where each location is on each platform:
 
 Worlds can be found as separate folders in: `user/worlds/`
 
-Configuration file:
--------------------
+Configuration file
+------------------
 - Default location:
     `user/minetest.conf`
-- It is created by Minetest when it is ran the first time.
+- This file is created by closing Minetest for the first time.
 - A specific file can be specified on the command line:
     `--config <path-to-file>`
 - A run-in-place build will look for the configuration file in
     `location_of_exe/../minetest.conf` and also `location_of_exe/../../minetest.conf`
 
-Command-line options:
----------------------
+Command-line options
+--------------------
 - Use `--help`
 
 Compiling
@@ -140,13 +140,21 @@ Compiling
 | GMP        | 5.0.0+  | Bundled mini-GMP is used if not present |
 | JsonCPP    | 1.0.0+  | Bundled JsonCPP is used if not present |
 
-For Debian/Ubuntu:
+For Debian/Ubuntu users:
 
-    sudo apt install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
+    sudo apt install g++ make libc6-dev libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
 
 For Fedora users:
 
     sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
+    
+For Arch users:
+
+    sudo pacman -S base-devel libcurl-gnutls cmake libxxf86vm irrlicht libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses
+
+For Alpine users:
+
+    sudo apk add build-base irrlicht-dev cmake bzip2-dev libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev
 
 #### Download
 
@@ -165,7 +173,7 @@ Download source (this is the URL to the latest of source repository, which might
     git clone --depth 1 https://github.com/minetest/minetest.git
     cd minetest
 
-Download minetest_game (otherwise only the "Minimal development test" game is available) using Git:
+Download minetest_game (otherwise only the "Development Test" game is available) using Git:
 
     git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
 
@@ -188,21 +196,21 @@ Download minetest_game, without using Git:
 Build a version that runs directly from the source directory:
 
     cmake . -DRUN_IN_PLACE=TRUE
-    make -j <number of processors>
+    make -j$(nproc)
 
 Run it:
 
     ./bin/minetest
 
-- Use `cmake . -LH` to see all CMake options and their current state
+- Use `cmake . -LH` to see all CMake options and their current state.
 - If you want to install it system-wide (or are making a distribution package),
-  you will want to use `-DRUN_IN_PLACE=FALSE`
-- You can build a bare server by specifying `-DBUILD_SERVER=TRUE`
-- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`
-- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>`
-  - Debug build is slower, but gives much more useful output in a debugger
-- If you build a bare server, you don't need to have Irrlicht installed.
-  - In that case use `-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source`
+  you will want to use `-DRUN_IN_PLACE=FALSE`.
+- You can build a bare server by specifying `-DBUILD_SERVER=TRUE`.
+- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`.
+- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>`.
+  - Debug build is slower, but gives much more useful output in a debugger.
+- If you build a bare server you don't need to have Irrlicht installed.
+  - In that case use `-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source`.
 
 ### CMake options
 
@@ -210,6 +218,7 @@ General options and their default values:
 
     BUILD_CLIENT=TRUE          - Build Minetest client
     BUILD_SERVER=FALSE         - Build Minetest server
+    BUILD_UNITTESTS=TRUE       - Build unittest sources
     CMAKE_BUILD_TYPE=Release   - Type of build (Release vs. Debug)
         Release                - Release build
         Debug                  - Debug build
@@ -220,15 +229,16 @@ General options and their default values:
     ENABLE_CURSES=ON           - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
     ENABLE_FREETYPE=ON         - Build with FreeType2; Allows using TTF fonts
     ENABLE_GETTEXT=ON          - Build with Gettext; Allows using translations
-    ENABLE_GLES=OFF            - Search for Open GLES headers & libraries and use them
+    ENABLE_GLES=OFF            - Build for OpenGL ES instead of OpenGL (requires support by Irrlicht)
     ENABLE_LEVELDB=ON          - Build with LevelDB; Enables use of LevelDB map backend
     ENABLE_POSTGRESQL=ON       - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
     ENABLE_REDIS=ON            - Build with libhiredis; Enables use of Redis map backend
     ENABLE_SPATIAL=ON          - Build with LibSpatial; Speeds up AreaStores
     ENABLE_SOUND=ON            - Build with OpenAL, libogg & libvorbis; in-game sounds
     ENABLE_LUAJIT=ON           - Build with LuaJIT (much faster than non-JIT Lua)
+    ENABLE_PROMETHEUS=OFF      - Build with Prometheus metrics exporter (listens on tcp/30000 by default)
     ENABLE_SYSTEM_GMP=ON       - Use GMP from system (much faster than bundled mini-gmp)
-    ENABLE_SYSTEM_JSONCPP=OFF  - Use JsonCPP from system
+    ENABLE_SYSTEM_JSONCPP=O  - Use JsonCPP from system
     OPENGL_GL_PREFERENCE=LEGACY - Linux client build only; See CMake Policy CMP0072 for reference
     RUN_IN_PLACE=FALSE         - Create a portable install (worlds, settings etc. in current directory)
     USE_GPROF=FALSE            - Enable profiling using GProf
@@ -291,32 +301,31 @@ Library specific options:
 
 ### Requirements
 
-* Visual Studio 2015 or newer https://visualstudio.microsoft.com
-* CMake https://cmake.org/download/
-* vcpkg https://github.com/Microsoft/vcpkg
-* git https://git-scm.com/downloads
+- [Visual Studio 2015 or newer](https://visualstudio.microsoft.com)
+- [CMake](https://cmake.org/download/)
+- [vcpkg](https://github.com/Microsoft/vcpkg)
+- [Git](https://git-scm.com/downloads)
 
-### Compiling and Installing the dependencies
+### Compiling and installing the dependencies
 
 It is highly recommended to use vcpkg as package manager.
 
 #### a) Using vcpkg to install dependencies
 
-After you successfully built vcpkg you can easily install the required libaries.
+After you successfully built vcpkg you can easily install the required libraries:
 ```powershell
-vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit --triplet x64-windows
+vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
 ```
-`curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
-
-`openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
-
-`freetype` is optional, it allows true-type font rendering.
 
-`luajit` is optional and replaces the integrated lua interpreter with a faster just in time interpreter
+- `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
+- `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
+- `freetype` is optional, it allows true-type font rendering.
+- `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter.
+- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled
 
-There are other libaries that are optional, but are not tested if they can build and linked correctly.
+There are other optional libraries, but they are not tested if they can build and link correctly.
 
-`--triplet` specify the target triplet e.g. x64-windows x86-windows
+Use `--triplet` to specify the target triplet, e.g. `x64-windows` or `x86-windows`.
 
 #### b) Compile the dependencies on your own
 
@@ -324,55 +333,55 @@ This is outdated and not recommended. Follow the instructions on https://dev.min
 
 ### Compile Minetest
 
-#### a) Using the vcpkg toolchain and CMakeGUI
+#### a) Using the vcpkg toolchain and CMake GUI
 1. Start up the CMake GUI
-2. Select "Browse Source..." and select DIR/minetest
-3. Select "Browse Build..." and select DIR/minetest-build
-4. Select "Configure"
+2. Select **Browse Source...** and select DIR/minetest
+3. Select **Browse Build...** and select DIR/minetest-build
+4. Select **Configure**
 5. Choose the right visual Studio version and target platform. It has to match the version of the installed dependencies
-6. Choose "Specify toolchain file for cross-compiling" 
-7. Click "Next"
+6. Choose **Specify toolchain file for cross-compiling**
+7. Click **Next**
 8. Select the vcpkg toolchain file e.g. `D:/vcpkg/scripts/buildsystems/vcpkg.cmake`
 9. Click Finish
 10. Wait until cmake have generated the cash file
-11. If there are any errors, solve them and hit "Configure"
-12. Click "Generate"
-13. Click "Open Project"
+11. If there are any errors, solve them and hit **Configure**
+12. Click **Generate**
+13. Click **Open Project**
 14. Compile Minetest inside Visual studio.
 
 #### b) Using the vcpkg toolchain and the commandline
 
-Run the following script in Powershell:
+Run the following script in PowerShell:
 
 ```powershell
-cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=0 -DENABLE_CURSES=0
+cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF
 cmake --build . --config Release
 ```
 Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct.
 
-#### c) Using your own compiled libaries
+#### c) Using your own compiled libraries
 
 **This is outdated and not recommended**
 
 Follow the instructions on https://dev.minetest.net/Build_Win32_Minetest_including_all_required_libraries#VS2012_Build
 
-### Windows Installer using WIX Toolset
+### Windows Installer using WiX Toolset
 
 Requirements:
-* Visual Studio 2017
-* Wix Toolset
+* [Visual Studio 2017](https://visualstudio.microsoft.com/)
+* [WiX Toolset](https://wixtoolset.org/)
 
-In Visual Studio 2017 Installer select "Optional Features" -> "Wix Toolset"
+In the Visual Studio 2017 Installer select **Optional Features -> WiX Toolset**.
 
-Build the binaries like described above, but make sure you unselect "RUN_IN_PLACE".
+Build the binaries as described above, but make sure you unselect `RUN_IN_PLACE`.
 
-Open the generated Project file with VS. Right click "PACKAGE" and choose "Generate".
+Open the generated project file with Visual Studio. Right-click **Package** and choose **Generate**.
 It may take some minutes to generate the installer.
 
 
 Docker
 ------
-We provide Minetest server docker images using the Gitlab mirror registry.
+We provide Minetest server Docker images using the GitLab mirror registry.
 
 Images are built on each commit and available using the following tag scheme:
 
@@ -380,20 +389,20 @@ Images are built on each commit and available using the following tag scheme:
 * `registry.gitlab.com/minetest/minetest/server:<branch/tag>` (current branch or current tag)
 * `registry.gitlab.com/minetest/minetest/server:<commit-id>` (current commit id)
 
-If you want to test it on a docker server, you can easily run:
+If you want to test it on a Docker server you can easily run:
 
        sudo docker run registry.gitlab.com/minetest/minetest/server:<docker tag>
 
-If you want to use it in a production environment you should use volumes bound to the docker host
+If you want to use it in a production environment you should use volumes bound to the Docker host
 to persist data and modify the configuration:
 
        sudo docker create -v /home/minetest/data/:/var/lib/minetest/ -v /home/minetest/conf/:/etc/minetest/ registry.gitlab.com/minetest/minetest/server:master
 
 Data will be written to `/home/minetest/data` on the host, and configuration will be read from `/home/minetest/conf/minetest.conf`.
 
-Note: If you don't understand the previous commands, please read the official Docker documentation before use.
+**Note:** If you don't understand the previous commands please read the official Docker documentation before use.
 
-You can also host your minetest server inside a Kubernetes cluster. See our example implementation in `misc/kubernetes.yml`.
+You can also host your Minetest server inside a Kubernetes cluster. See our example implementation in [`misc/kubernetes.yml`](misc/kubernetes.yml).
 
 
 Version scheme