4 An InfiniMiner/Minecraft inspired game.
6 Copyright (c) 2010-2017 Perttu Ahola <celeron55@gmail.com>
7 and contributors (see source file comments and the version control log)
9 In case you downloaded the source code:
10 ---------------------------------------
11 If you downloaded the Minetest Engine source code in which this file is
12 contained, you probably want to download the minetest_game project too:
13 https://github.com/minetest/minetest_game/
14 See the README.txt in it.
17 ----------------------
18 - Website: http://minetest.net/
19 - Wiki: http://wiki.minetest.net/
20 - Developer wiki: http://dev.minetest.net/
21 - Forum: http://forum.minetest.net/
22 - Github: https://github.com/minetest/minetest/
23 - doc/ directory of source distribution
25 This game is not finished
26 --------------------------
27 - Don't expect it to work as well as a finished game will.
28 - Please report any bugs. When doing that, debug.txt is useful.
32 - Move mouse: Look around
35 - Shift: Sneak/move down
37 - Shift + Q: Drop single item
38 - Left mouse button: Dig/punch/take item
39 - Right mouse button: Place/use
40 - Shift + right mouse button: Build (without using)
42 - Mouse wheel: Select item
44 - Z: Zoom (needs zoom privilege)
48 - Esc: Pause menu/abort/exit (pauses only singleplayer game)
49 - R: Enable/disable full range view
50 - +: Increase view range
51 - -: Decrease view range
52 - K: Enable/disable fly mode (needs fly privilege)
53 - J: Enable/disable fast mode (needs fast privilege)
54 - H: Enable/disable noclip mode (needs noclip privilege)
58 - F3: Disable/enable fog
59 - F4: Disable/enable camera update (Mapblocks are not updated anymore when disabled, disabled in release builds)
60 - F5: Cycle through debug info screens
61 - F6: Cycle through profiler info screens
62 - F7: Cycle through camera modes
63 - F8: Toggle cinematic mode
64 - F9: Cycle through minimap modes
65 - Shift + F9: Change minimap orientation
66 - F10: Show/hide console
67 - F12: Take screenshot
68 - P: Write stack traces into debug.txt
70 Most controls are settable in the configuration file, see the section below.
74 $bin - Compiled binaries
75 $share - Distributed read-only data
76 $user - User-created modifiable data
78 Windows .zip / RUN_IN_PLACE source:
85 $share = /usr/share/minetest
90 $share = Contents/Resources
91 $user = Contents/User OR ~/Library/Application Support/minetest
95 - Worlds can be found as separate folders in:
102 - It is created by Minetest when it is ran the first time.
103 - A specific file can be specified on the command line:
104 --config <path-to-file>
105 - A run-in-place build will look for the configuration file in
106 $location_of_exe/../minetest.conf and also $location_of_exe/../../minetest.conf
108 Command-line options:
109 ---------------------
112 Compiling on GNU/Linux:
113 -----------------------
115 Install dependencies. Here's an example for Debian/Ubuntu:
116 $ 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
119 $ 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
121 You can install git for easily keeping your copy up to date.
122 If you don’t want git, read below on how to get the source without git.
123 This is an example for installing git on Debian/Ubuntu:
124 $ sudo apt-get install git
127 $ sudo dnf install git
129 Download source (this is the URL to the latest of source repository, which might not work at all times) using git:
130 $ git clone --depth 1 https://github.com/minetest/minetest.git
133 Download minetest_game (otherwise only the "Minimal development test" game is available) using git:
134 $ git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
136 Download source, without using git:
137 $ wget https://github.com/minetest/minetest/archive/master.tar.gz
138 $ tar xf master.tar.gz
141 Download minetest_game, without using git:
143 $ wget https://github.com/minetest/minetest_game/archive/master.tar.gz
144 $ tar xf master.tar.gz
145 $ mv minetest_game-master minetest_game
148 Build a version that runs directly from the source directory:
149 $ cmake . -DRUN_IN_PLACE=TRUE
150 $ make -j <number of processors>
155 - Use cmake . -LH to see all CMake options and their current state
156 - If you want to install it system-wide (or are making a distribution package),
157 you will want to use -DRUN_IN_PLACE=FALSE
158 - You can build a bare server by specifying -DBUILD_SERVER=TRUE
159 - You can disable the client build by specifying -DBUILD_CLIENT=FALSE
160 - You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
161 - Debug build is slower, but gives much more useful output in a debugger
162 - If you build a bare server, you don't need to have Irrlicht installed.
163 In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
169 BUILD_CLIENT - Build Minetest client
170 BUILD_SERVER - Build Minetest server
171 CMAKE_BUILD_TYPE - Type of build (Release vs. Debug)
172 Release - Release build
174 SemiDebug - Partially optimized debug build
175 RelWithDebInfo - Release build with Debug information
176 MinSizeRel - Release build with -Os passed to compiler to make executable as small as possible
177 ENABLE_CURL - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
178 ENABLE_CURSES - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
179 ENABLE_FREETYPE - Build with FreeType2; Allows using TTF fonts
180 ENABLE_GETTEXT - Build with Gettext; Allows using translations
181 ENABLE_GLES - Search for Open GLES headers & libraries and use them
182 ENABLE_LEVELDB - Build with LevelDB; Enables use of LevelDB map backend
183 ENABLE_POSTGRESQL - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
184 ENABLE_REDIS - Build with libhiredis; Enables use of Redis map backend
185 ENABLE_SPATIAL - Build with LibSpatial; Speeds up AreaStores
186 ENABLE_SOUND - Build with OpenAL, libogg & libvorbis; in-game Sounds
187 ENABLE_LUAJIT - Build with LuaJIT (much faster than non-JIT Lua)
188 ENABLE_SYSTEM_GMP - Use GMP from system (much faster than bundled mini-gmp)
189 RUN_IN_PLACE - Create a portable install (worlds, settings etc. in current directory)
190 USE_GPROF - Enable profiling using GProf
191 VERSION_EXTRA - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
193 Library specific options:
195 BZIP2_INCLUDE_DIR - Linux only; directory where bzlib.h is located
196 BZIP2_LIBRARY - Linux only; path to libbz2.a/libbz2.so
197 CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll
198 CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located
199 CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
200 EGL_INCLUDE_DIR - Only if building with GLES; directory that contains egl.h
201 EGL_LIBRARY - Only if building with GLES; path to libEGL.a/libEGL.so
202 FREETYPE_INCLUDE_DIR_freetype2 - Only if building with Freetype2; directory that contains an freetype directory with files such as ftimage.h in it
203 FREETYPE_INCLUDE_DIR_ft2build - Only if building with Freetype2; directory that contains ft2build.h
204 FREETYPE_LIBRARY - Only if building with Freetype2; path to libfreetype.a/libfreetype.so/freetype.lib
205 FREETYPE_DLL - Only if building with Freetype2 on Windows; path to libfreetype.dll
206 GETTEXT_DLL - Only when building with Gettext on Windows; path to libintl3.dll
207 GETTEXT_ICONV_DLL - Only when building with Gettext on Windows; path to libiconv2.dll
208 GETTEXT_INCLUDE_DIR - Only when building with Gettext; directory that contains iconv.h
209 GETTEXT_LIBRARY - Only when building with Gettext on Windows; path to libintl.dll.a
210 GETTEXT_MSGFMT - Only when building with Gettext; path to msgfmt/msgfmt.exe
211 IRRLICHT_DLL - Only on Windows; path to Irrlicht.dll
212 IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h
213 IRRLICHT_LIBRARY - Path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a/Irrlicht.lib
214 LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h
215 LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
216 LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll
217 PostgreSQL_INCLUDE_DIR - Only when building with PostgreSQL; directory that contains libpq-fe.h
218 POSTGRESQL_LIBRARY - Only when building with PostgreSQL; path to libpq.a/libpq.so
219 REDIS_INCLUDE_DIR - Only when building with Redis; directory that contains hiredis.h
220 REDIS_LIBRARY - Only when building with Redis; path to libhiredis.a/libhiredis.so
221 SPATIAL_INCLUDE_DIR - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
222 SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
223 LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located
224 LUA_LIBRARY - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
225 MINGWM10_DLL - Only if compiling with MinGW; path to mingwm10.dll
226 OGG_DLL - Only if building with sound on Windows; path to libogg.dll
227 OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h
228 OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
229 OPENAL_DLL - Only if building with sound on Windows; path to OpenAL32.dll
230 OPENAL_INCLUDE_DIR - Only if building with sound; directory where al.h is located
231 OPENAL_LIBRARY - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
232 OPENGLES2_INCLUDE_DIR - Only if building with GLES; directory that contains gl2.h
233 OPENGLES2_LIBRARY - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
234 SQLITE3_INCLUDE_DIR - Directory that contains sqlite3.h
235 SQLITE3_LIBRARY - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
236 VORBISFILE_DLL - Only if building with sound on Windows; path to libvorbisfile-3.dll
237 VORBISFILE_LIBRARY - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
238 VORBIS_DLL - Only if building with sound on Windows; path to libvorbis-0.dll
239 VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
240 VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
241 XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so
242 ZLIB_DLL - Only on Windows; path to zlib1.dll
243 ZLIBWAPI_DLL - Only on Windows; path to zlibwapi.dll
244 ZLIB_INCLUDE_DIR - Directory that contains zlib.h
245 ZLIB_LIBRARY - Path to libz.a/libz.so/zlibwapi.lib
247 Compiling on Windows:
248 ---------------------
249 - This section is outdated. In addition to what is described here:
250 - In addition to minetest, you need to download minetest_game.
251 - If you wish to have sound support, you need libogg, libvorbis and libopenal
255 http://www.cmake.org/cmake/resources/software.html
256 * MinGW or Visual Studio
257 http://www.mingw.org/
258 http://msdn.microsoft.com/en-us/vstudio/default
260 http://irrlicht.sourceforge.net/downloads.html
261 * Zlib headers (zlib125.zip)
262 http://www.winimage.com/zLibDll/index.html
263 * Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
264 http://www.winimage.com/zLibDll/index.html
265 * SQLite3 headers and library
266 https://www.sqlite.org/download.html
267 * Optional: gettext library and tools:
268 http://gnuwin32.sourceforge.net/downlinks/gettext.php
269 - This is used for other UI languages. Feel free to leave it out.
270 * And, of course, Minetest:
271 http://minetest.net/download
273 - Select a directory called DIR hereafter in which you will operate.
274 - Make sure you have CMake and a compiler installed.
275 - Download all the other stuff to DIR and extract them into there.
276 ("extract here", not "extract to packagename/")
277 NOTE: zlib125dll.zip needs to be extracted into zlib125dll
278 NOTE: You need to extract sqlite3.h & sqlite3ext.h from sqlite3 source
279 and sqlite3.dll & sqlite3.def from sqlite3 precompiled binaries
280 into "sqlite3" directory, and generate sqlite3.lib using command
281 "LIB /DEF:sqlite3.def /OUT:sqlite3.lib"
282 - All those packages contain a nice base directory in them, which
283 should end up being the direct subdirectories of DIR.
284 - You will end up with a directory structure like this (+=dir, -=file):
290 - sqlite-amalgamation-3130000.zip (SQLite3 headers)
291 - sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
292 - 110214175330.zip (or whatever, this is the minetest source)
320 - Start up the CMake GUI
321 - Select "Browse Source..." and select DIR/minetest
322 - Now, if using MSVC:
323 - Select "Browse Build..." and select DIR/minetest-build
324 - Else if using MinGW:
325 - Select "Browse Build..." and select DIR/minetest
327 - Select your compiler
328 - It will warn about missing stuff, ignore that at this point. (later don't)
329 - Make sure the configuration is as follows
330 (note that the versions may differ for you):
334 CMAKE_BUILD_TYPE Release
335 CMAKE_INSTALL_PREFIX DIR/minetest-install
336 IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
339 ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
340 ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
341 ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
342 GETTEXT_BIN_DIR DIR/gettext/bin
343 GETTEXT_INCLUDE_DIR DIR/gettext/include
344 GETTEXT_LIBRARIES DIR/gettext/lib/intl.lib
345 GETTEXT_MSGFMT DIR/gettext/bin/msgfmt
347 - If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
348 right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
349 SQLITE3_LIBRARY manually.
350 - If you want to build 64-bit minetest, you will need to build 64-bit version
351 of irrlicht engine manually, as only 32-bit pre-built library is provided.
353 - Hit "Configure" once again 8)
354 - If something is still coloured red, you have a problem.
357 - Open the generated minetest.sln
358 - The project defaults to the "Debug" configuration. Make very sure to
359 select "Release", unless you want to debug some stuff (it's slower
360 and might not even work at all)
361 - Build the ALL_BUILD project
362 - Build the INSTALL project
363 - You should now have a working game with the executable in
364 DIR/minetest-install/bin/minetest.exe
365 - Additionally you may create a zip package by building the PACKAGE
368 - Using the command line, browse to the build directory and run 'make'
369 (or mingw32-make or whatever it happens to be)
370 - You may need to copy some of the downloaded DLLs into bin/, see what
371 running the produced executable tells you it doesn't have.
372 - You should now have a working game with the executable in
373 DIR/minetest/bin/minetest.exe
375 Windows releases of minetest are built using a bat script like this:
376 --------------------------------------------------------------------
379 set installpath="C:\tmp\minetest_install"
380 set irrlichtpath="C:\tmp\irrlicht-1.7.2"
382 set builddir=%sourcedir%\bvc10
385 cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
386 if %errorlevel% neq 0 goto fail
387 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
388 if %errorlevel% neq 0 goto fail
389 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
390 if %errorlevel% neq 0 goto fail
391 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
392 if %errorlevel% neq 0 goto fail
402 License of Minetest textures and sounds
403 ---------------------------------------
405 This applies to textures and sounds contained in the main Minetest
408 Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
409 http://creativecommons.org/licenses/by-sa/3.0/
411 Authors of media files
412 -----------------------
413 Everything not listed in here:
414 Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
417 textures/base/pack/smoke_puff.png
420 textures/base/pack/menu_header.png
423 misc/minetest-icon-24x24.png
424 misc/minetest-icon.ico
426 textures/base/pack/logo.png
428 License of Minetest source code
429 -------------------------------
432 Copyright (C) 2010-2017 celeron55, Perttu Ahola <celeron55@gmail.com>
434 This program is free software; you can redistribute it and/or modify
435 it under the terms of the GNU Lesser General Public License as published by
436 the Free Software Foundation; either version 2.1 of the License, or
437 (at your option) any later version.
439 This program is distributed in the hope that it will be useful,
440 but WITHOUT ANY WARRANTY; without even the implied warranty of
441 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
442 GNU Lesser General Public License for more details.
444 You should have received a copy of the GNU Lesser General Public License along
445 with this program; if not, write to the Free Software Foundation, Inc.,
446 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
451 This program uses the Irrlicht Engine. http://irrlicht.sourceforge.net/
453 The Irrlicht Engine License
455 Copyright © 2002-2005 Nikolaus Gebhardt
457 This software is provided 'as-is', without any express or implied
458 warranty. In no event will the authors be held liable for any damages
459 arising from the use of this software.
461 Permission is granted to anyone to use this software for any purpose,
462 including commercial applications, and to alter it and redistribute
463 it freely, subject to the following restrictions:
465 1. The origin of this software must not be misrepresented; you
466 must not claim that you wrote the original software. If you use
467 this software in a product, an acknowledgment in the product
468 documentation would be appreciated but is not required.
469 2. Altered source versions must be plainly marked as such, and must
470 not be misrepresented as being the original software.
471 3. This notice may not be removed or altered from any source
478 This program uses the JThread library. License for JThread follows:
480 Copyright (c) 2000-2006 Jori Liesenborgs (jori.liesenborgs@gmail.com)
482 Permission is hereby granted, free of charge, to any person obtaining a
483 copy of this software and associated documentation files (the "Software"),
484 to deal in the Software without restriction, including without limitation
485 the rights to use, copy, modify, merge, publish, distribute, sublicense,
486 and/or sell copies of the Software, and to permit persons to whom the
487 Software is furnished to do so, subject to the following conditions:
489 The above copyright notice and this permission notice shall be included
490 in all copies or substantial portions of the Software.
492 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
493 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
494 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
495 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
496 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
497 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
503 Lua is licensed under the terms of the MIT license reproduced below.
504 This means that Lua is free software and can be used for both academic
505 and commercial purposes at absolutely no cost.
507 For details and rationale, see https://www.lua.org/license.html .
509 Copyright (C) 1994-2008 Lua.org, PUC-Rio.
511 Permission is hereby granted, free of charge, to any person obtaining a copy
512 of this software and associated documentation files (the "Software"), to deal
513 in the Software without restriction, including without limitation the rights
514 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
515 copies of the Software, and to permit persons to whom the Software is
516 furnished to do so, subject to the following conditions:
518 The above copyright notice and this permission notice shall be included in
519 all copies or substantial portions of the Software.
521 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
522 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
523 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
524 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
525 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
526 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
532 Bitstream Vera Fonts Copyright:
534 Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
535 a trademark of Bitstream, Inc.
537 Arimo - Apache License, version 2.0
538 Digitized data copyright (c) 2010-2012 Google Corporation.
540 Cousine - Apache License, version 2.0
541 Digitized data copyright (c) 2010-2012 Google Corporation.
543 DroidSansFallBackFull:
545 Copyright (C) 2008 The Android Open Source Project
547 Licensed under the Apache License, Version 2.0 (the "License");
548 you may not use this file except in compliance with the License.
549 You may obtain a copy of the License at
551 http://www.apache.org/licenses/LICENSE-2.0
553 Unless required by applicable law or agreed to in writing, software
554 distributed under the License is distributed on an "AS IS" BASIS,
555 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
556 See the License for the specific language governing permissions and
557 limitations under the License.