]> git.lizzy.rs Git - minetest.git/blobdiff - README.txt
Simple decorations: Fix range check for deco->deco_param2
[minetest.git] / README.txt
index ae5003f77bf741533f38cfc10007b0eb9fbf0ed8..5d4d15263fd00c6eb8a5f8a7a9c17af993b461c3 100644 (file)
@@ -1,5 +1,5 @@
 Minetest
-============
+========
 
 An InfiniMiner/Minecraft inspired game.
 
@@ -9,15 +9,14 @@ and contributors (see source file comments and the version control log)
 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 these projects too:
-  https://github.com/minetest/common/
+contained, you probably want to download the minetest_game project too:
   https://github.com/minetest/minetest_game/
-See the README.txt in them.
+See the README.txt in it.
 
 Further documentation
 ----------------------
 - Website: http://minetest.net/
-- Wiki: http://wiki.minetest.com/
+- Wiki: http://wiki.minetest.net/
 - Developer wiki: http://dev.minetest.net/
 - Forum: http://forum.minetest.net/
 - Github: https://github.com/minetest/minetest/
@@ -28,20 +27,47 @@ This game is not finished
 - Don't expect it to work as well as a finished game will.
 - Please report any bugs. When doing that, debug.txt is useful.
 
-Default Controls
+Default controls
 -----------------
-- WASD: move
-- Space: jump/climb
-- Shift: sneak/go down
-- Q: drop item
-- I: inventory
-- Mouse: turn/look
-- Mouse left: dig/punch
-- Mouse right: place/use
-- Mouse wheel: select item
-- Esc: pause menu
-- T: chat
-- Settable in the configuration file, see the section below.
+- Move mouse: Look around
+- W, A, S, D: Move
+- Space: Jump/move up
+- Shift: Sneak/move down
+- Q: Drop itemstack
+- Shift + Q: Drop single item
+- Left mouse button: Dig/punch/take item
+- Right mouse button: Place/use
+- Shift + right mouse button: Build (without using)
+- I: Inventory menu
+- Mouse wheel: Select item
+- 0-9: Select item
+- Z: Zoom (needs zoom privilege)
+- T: Chat
+- /: Commad
+
+- Esc: Pause menu/abort/exit (pauses only singleplayer game)
+- R: Enable/disable full range view
+- +: Increase view range
+- -: Decrease view range
+- K: Enable/disable fly mode (needs fly privilege)
+- J: Enable/disable fast mode (needs fast privilege)
+- H: Enable/disable noclip mode (needs noclip privilege)
+
+- 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 info screens
+- F6:  Cycle through profiler info screens
+- F7:  Cycle through camera modes
+- F8:  Toggle cinematic mode
+- F9:  Cycle through minimap modes
+- Shift + F9: Change minimap orientation
+- F10: Show/hide console
+- F12: Take screenshot
+- P: Write stack traces into debug.txt
+
+Most controls are settable in the configuration file, see the section below.
 
 Paths
 ------
@@ -60,9 +86,9 @@ $share = /usr/share/minetest
 $user  = ~/.minetest
 
 OS X:
-$bin   = ?
-$share = ?
-$user  = ~/Library/Application Support/minetest
+$bin   = Contents/MacOS
+$share = Contents/Resources
+$user  = Contents/User OR ~/Library/Application Support/minetest
 
 World directory
 ----------------
@@ -85,46 +111,141 @@ Compiling on GNU/Linux:
 -----------------------
 
 Install dependencies. Here's an example for Debian/Ubuntu:
-$ apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev
+$ sudo apt-get 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
 
-Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
-$ wget https://github.com/minetest/minetest/tarball/master -O master.tar.gz
-$ tar xf master.tar.gz
-$ cd minetest-minetest-286edd4 (or similar)
+For Fedora users:
+$ sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* 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
 
-Download common (needed for minetest_game and some others)
-$ cd games/
-$ wget https://github.com/minetest/common/tarball/master -O common.tar.gz
-$ tar xf common.tar.gz
-$ mv minetest-common-* common
-$ cd ..
+You can install git for easily keeping your copy up to date.
+If you dont want git, read below on how to get the source without git.
+This is an example for installing git on Debian/Ubuntu:
+$ sudo apt-get install git
+
+For Fedora users:
+$ sudo dnf install git
+
+Download source (this is the URL to the latest of source repository, which might not work at all times) using git:
+$ git clone --depth 1 https://github.com/minetest/minetest.git
+$ cd minetest
 
-Download minetest_game (otherwise only the "Minimal development test" game is available)
+Download minetest_game (otherwise only the "Minimal development test" game is available) using git:
+$ git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
+
+Download source, without using git:
+$ wget https://github.com/minetest/minetest/archive/master.tar.gz
+$ tar xf master.tar.gz
+$ cd minetest-master
+
+Download minetest_game, without using git:
 $ cd games/
-$ wget https://github.com/minetest/minetest_game/tarball/master -O minetest_game.tar.gz
-$ tar xf minetest_game.tar.gz
-$ mv minetest-minetest_game-* minetest_game
+$ wget https://github.com/minetest/minetest_game/archive/master.tar.gz
+$ tar xf master.tar.gz
+$ mv minetest_game-master minetest_game
 $ cd ..
 
 Build a version that runs directly from the source directory:
-$ cmake . -DRUN_IN_PLACE=1
-$ make -j2
+$ cmake . -DRUN_IN_PLACE=TRUE
+$ make -j <number of processors>
 
 Run it:
-$ cd bin
-$ ./minetest
+$ ./bin/minetest
 
 - 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=0
-- You can build a bare server or a bare client by specifying -DBUILD_CLIENT=0 or -DBUILD_SERVER=0
+- 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
+- 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
+-------------
+General options:
+
+BUILD_CLIENT        - Build Minetest client
+BUILD_SERVER        - Build Minetest server
+CMAKE_BUILD_TYPE    - Type of build (Release vs. Debug)
+    Release         - Release build
+    Debug           - Debug build
+    SemiDebug       - Partially optimized debug build
+    RelWithDebInfo  - Release build with Debug information
+    MinSizeRel      - Release build with -Os passed to compiler to make executable as small as possible
+ENABLE_CURL         - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
+ENABLE_CURSES       - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
+ENABLE_FREETYPE     - Build with FreeType2; Allows using TTF fonts
+ENABLE_GETTEXT      - Build with Gettext; Allows using translations
+ENABLE_GLES         - Search for Open GLES headers & libraries and use them
+ENABLE_LEVELDB      - Build with LevelDB; Enables use of LevelDB map backend
+ENABLE_POSTGRESQL   - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater required)
+ENABLE_REDIS        - Build with libhiredis; Enables use of Redis map backend
+ENABLE_SPATIAL      - Build with LibSpatial; Speeds up AreaStores
+ENABLE_SOUND        - Build with OpenAL, libogg & libvorbis; in-game Sounds
+ENABLE_LUAJIT       - Build with LuaJIT (much faster than non-JIT Lua)
+ENABLE_SYSTEM_GMP   - Use GMP from system (much faster than bundled mini-gmp)
+RUN_IN_PLACE        - Create a portable install (worlds, settings etc. in current directory)
+USE_GPROF           - Enable profiling using GProf
+VERSION_EXTRA       - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
+
+Library specific options:
+
+BZIP2_INCLUDE_DIR               - Linux only; directory where bzlib.h is located
+BZIP2_LIBRARY                   - Linux only; path to libbz2.a/libbz2.so
+CURL_DLL                        - Only if building with cURL on Windows; path to libcurl.dll
+CURL_INCLUDE_DIR                - Only if building with cURL; directory where curl.h is located
+CURL_LIBRARY                    - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
+EGL_INCLUDE_DIR                 - Only if building with GLES; directory that contains egl.h
+EGL_LIBRARY                     - Only if building with GLES; path to libEGL.a/libEGL.so
+FREETYPE_INCLUDE_DIR_freetype2  - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it
+FREETYPE_INCLUDE_DIR_ft2build   - Only if building with Freetype2; directory that contains ft2build.h
+FREETYPE_LIBRARY                - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib
+FREETYPE_DLL                    - Only if building with Freetype2 on Windows; path to libfreetype.dll
+GETTEXT_DLL                     - Only when building with Gettext on Windows; path to libintl3.dll
+GETTEXT_ICONV_DLL               - Only when building with Gettext on Windows; path to libiconv2.dll
+GETTEXT_INCLUDE_DIR             - Only when building with Gettext; directory that contains iconv.h
+GETTEXT_LIBRARY                 - Only when building with Gettext on Windows; path to libintl.dll.a
+GETTEXT_MSGFMT                  - Only when building with Gettext; path to msgfmt/msgfmt.exe
+IRRLICHT_DLL                    - Only on Windows; path to Irrlicht.dll
+IRRLICHT_INCLUDE_DIR            - Directory that contains IrrCompileConfig.h
+IRRLICHT_LIBRARY                - Path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a/Irrlicht.lib
+LEVELDB_INCLUDE_DIR             - Only when building with LevelDB; directory that contains db.h
+LEVELDB_LIBRARY                 - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
+LEVELDB_DLL                     - Only when building with LevelDB on Windows; path to libleveldb.dll
+POSTGRESQL_INCLUDE_DIR          - Only when building with PostgreSQL; directory that contains libpq-fe.h
+POSTGRESQL_LIBRARY              - Only when building with PostgreSQL; path to libpq.a/libpq.so
+REDIS_INCLUDE_DIR               - Only when building with Redis; directory that contains hiredis.h
+REDIS_LIBRARY                   - Only when building with Redis; path to libhiredis.a/libhiredis.so
+SPATIAL_INCLUDE_DIR             - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
+SPATIAL_LIBRARY                 - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
+LUA_INCLUDE_DIR                 - Only if you want to use LuaJIT; directory where luajit.h is located
+LUA_LIBRARY                     - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
+MINGWM10_DLL                    - Only if compiling with MinGW; path to mingwm10.dll
+OGG_DLL                         - Only if building with sound on Windows; path to libogg.dll
+OGG_INCLUDE_DIR                 - Only if building with sound; directory that contains an ogg directory which contains ogg.h
+OGG_LIBRARY                     - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
+OPENAL_DLL                      - Only if building with sound on Windows; path to OpenAL32.dll
+OPENAL_INCLUDE_DIR              - Only if building with sound; directory where al.h is located
+OPENAL_LIBRARY                  - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
+OPENGLES2_INCLUDE_DIR           - Only if building with GLES; directory that contains gl2.h
+OPENGLES2_LIBRARY               - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
+SQLITE3_INCLUDE_DIR             - Directory that contains sqlite3.h
+SQLITE3_LIBRARY                 - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
+VORBISFILE_DLL                  - Only if building with sound on Windows; path to libvorbisfile-3.dll
+VORBISFILE_LIBRARY              - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
+VORBIS_DLL                      - Only if building with sound on Windows; path to libvorbis-0.dll
+VORBIS_INCLUDE_DIR              - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
+VORBIS_LIBRARY                  - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
+XXF86VM_LIBRARY                 - Only on Linux; path to libXXf86vm.a/libXXf86vm.so
+ZLIB_DLL                        - Only on Windows; path to zlib1.dll
+ZLIBWAPI_DLL                    - Only on Windows; path to zlibwapi.dll
+ZLIB_INCLUDE_DIR                - Directory that contains zlib.h
+ZLIB_LIBRARY                    - Path to libz.a/libz.so/zlibwapi.lib
 
 Compiling on Windows:
 ---------------------
 - This section is outdated. In addition to what is described here:
-  - In addition to minetest, you need to download common and minetest_game.
+  - In addition to minetest, you need to download minetest_game.
   - If you wish to have sound support, you need libogg, libvorbis and libopenal
 
 - You need:
@@ -139,17 +260,23 @@ Compiling on Windows:
                http://www.winimage.com/zLibDll/index.html
        * Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
                http://www.winimage.com/zLibDll/index.html
+       * SQLite3 headers and library
+               https://www.sqlite.org/download.html
        * Optional: gettext library and tools:
                http://gnuwin32.sourceforge.net/downlinks/gettext.php
                - This is used for other UI languages. Feel free to leave it out.
        * And, of course, Minetest:
-               http://minetest.net/download.php
+               http://minetest.net/download
 - Steps:
        - Select a directory called DIR hereafter in which you will operate.
        - Make sure you have CMake and a compiler installed.
        - Download all the other stuff to DIR and extract them into there.
          ("extract here", not "extract to packagename/")
          NOTE: zlib125dll.zip needs to be extracted into zlib125dll
+         NOTE: You need to extract sqlite3.h & sqlite3ext.h from sqlite3 source
+             and sqlite3.dll & sqlite3.def from sqlite3 precompiled binaries
+             into "sqlite3" directory, and generate sqlite3.lib using command
+             "LIB /DEF:sqlite3.def /OUT:sqlite3.lib"
        - All those packages contain a nice base directory in them, which
          should end up being the direct subdirectories of DIR.
        - You will end up with a directory structure like this (+=dir, -=file):
@@ -157,7 +284,9 @@ Compiling on Windows:
        + DIR
                - zlib-1.2.5.tar.gz
                - zlib125dll.zip
-               - irrlicht-1.7.1.zip
+               - irrlicht-1.8.3.zip
+               - sqlite-amalgamation-3130000.zip (SQLite3 headers)
+               - sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
                - 110214175330.zip (or whatever, this is the minetest source)
                + zlib-1.2.5
                        - zlib.h
@@ -167,10 +296,15 @@ Compiling on Windows:
                        - readme.txt
                        + dll32
                        ...
-               + irrlicht-1.7.1
+               + irrlicht-1.8.3
                        + lib
                        + include
                        ...
+               + sqlite3
+                       sqlite3.h
+                       sqlite3ext.h
+                       sqlite3.lib
+                       sqlite3.dll
                + gettext (optional)
                        +bin
                        +include
@@ -197,7 +331,7 @@ Compiling on Windows:
        BUILD_SERVER             [ ]
        CMAKE_BUILD_TYPE         Release
        CMAKE_INSTALL_PREFIX     DIR/minetest-install
-       IRRLICHT_SOURCE_DIR      DIR/irrlicht-1.7.1
+       IRRLICHT_SOURCE_DIR      DIR/irrlicht-1.8.3
        RUN_IN_PLACE             [X]
        WARN_ALL                 [ ]
        ZLIB_DLL                 DIR/zlib125dll/dll32/zlibwapi.dll
@@ -208,6 +342,11 @@ Compiling on Windows:
        GETTEXT_LIBRARIES        DIR/gettext/lib/intl.lib
        GETTEXT_MSGFMT           DIR/gettext/bin/msgfmt
        -----------------
+       - If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
+         right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
+         SQLITE3_LIBRARY manually.
+       - If you want to build 64-bit minetest, you will need to build 64-bit version
+         of irrlicht engine manually, as only 32-bit pre-built library is provided.
        - Hit "Configure"
        - Hit "Configure" once again 8)
        - If something is still coloured red, you have a problem.
@@ -241,7 +380,7 @@ set irrlichtpath="C:\tmp\irrlicht-1.7.2"
 set builddir=%sourcedir%\bvc10
 mkdir %builddir%
 pushd %builddir%
-cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=1 -DCMAKE_INSTALL_PREFIX=%installpath%
+cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
 if %errorlevel% neq 0 goto fail
 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
 if %errorlevel% neq 0 goto fail
@@ -267,6 +406,23 @@ distribution.
 Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
 http://creativecommons.org/licenses/by-sa/3.0/
 
+Authors of media files
+-----------------------
+Everything not listed in here:
+Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+ShadowNinja:
+  textures/base/pack/smoke_puff.png
+
+Paramat:
+  textures/base/pack/menu_header.png
+
+erlehmann:
+  misc/minetest-icon-24x24.png
+  misc/minetest-icon.ico
+  misc/minetest.svg
+  textures/base/pack/logo.png
+
 License of Minetest source code
 -------------------------------
 
@@ -376,17 +532,31 @@ DejaVu Sans Mono:
   Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
   Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
 
-  Bitstream Vera Fonts Copyright:
+Bitstream Vera Fonts Copyright:
 
   Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
   a trademark of Bitstream, Inc.
 
-  Arev Fonts Copyright:
+Arev Fonts Copyright:
 
   Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
 
-  Liberation Fonts Copyright:
+Liberation Fonts Copyright:
 
   Copyright (c) 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.
 
+DroidSansFallback:
+
+  Copyright (C) 2008 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
 
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.