Merge remote-tracking branch 'origin/master'
[oweals/minetest.git] / README.txt
1 Minetest
2 ============
3
4 An InfiniMiner/Minecraft inspired game.
5
6 Copyright (c) 2010-2013 Perttu Ahola <celeron55@gmail.com>
7 and contributors (see source file comments and the version control log)
8
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 these projects too:
13   https://github.com/minetest/common/
14   https://github.com/minetest/minetest_game/
15 See the README.txt in them.
16
17 Further documentation
18 ----------------------
19 - Website: http://minetest.net/
20 - Wiki: http://wiki.minetest.com/
21 - Developer wiki: http://dev.minetest.net/
22 - Forum: http://forum.minetest.net/
23 - Github: https://github.com/minetest/minetest/
24 - doc/ directory of source distribution
25
26 This game is not finished
27 --------------------------
28 - Don't expect it to work as well as a finished game will.
29 - Please report any bugs. When doing that, debug.txt is useful.
30
31 Default Controls
32 -----------------
33 - WASD: move
34 - Space: jump/climb
35 - Shift: sneak/go down
36 - Q: drop item
37 - I: inventory
38 - Mouse: turn/look
39 - Mouse left: dig/punch
40 - Mouse right: place/use
41 - Mouse wheel: select item
42 - Esc: pause menu
43 - T: chat
44 - Settable in the configuration file, see the section below.
45
46 Paths
47 ------
48 $bin   - Compiled binaries
49 $share - Distributed read-only data
50 $user  - User-created modifiable data
51
52 Windows .zip / RUN_IN_PLACE source:
53 $bin   = bin
54 $share = .
55 $user  = .
56
57 Linux installed:
58 $bin   = /usr/bin
59 $share = /usr/share/minetest
60 $user  = ~/.minetest
61
62 OS X:
63 $bin   = ?
64 $share = ?
65 $user  = ~/Library/Application Support/minetest
66
67 World directory
68 ----------------
69 - Worlds can be found as separate folders in:
70     $user/worlds/
71
72 Configuration file:
73 -------------------
74 - Default location:
75     $user/minetest.conf
76 - It is created by Minetest when it is ran the first time.
77 - A specific file can be specified on the command line:
78         --config <path-to-file>
79
80 Command-line options:
81 ---------------------
82 - Use --help
83
84 Compiling on GNU/Linux:
85 -----------------------
86
87 Install dependencies. Here's an example for Debian/Ubuntu:
88 $ 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
89
90 Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
91 $ wget https://github.com/minetest/minetest/tarball/master -O master.tar.gz
92 $ tar xf master.tar.gz
93 $ cd minetest-minetest-286edd4 (or similar)
94
95 Download common (needed for minetest_game and some others)
96 $ cd games/
97 $ wget https://github.com/minetest/common/tarball/master -O common.tar.gz
98 $ tar xf common.tar.gz
99 $ mv minetest-common-* common
100 $ cd ..
101
102 Download minetest_game (otherwise only the "Minimal development test" game is available)
103 $ cd games/
104 $ wget https://github.com/minetest/minetest_game/tarball/master -O minetest_game.tar.gz
105 $ tar xf minetest_game.tar.gz
106 $ mv minetest-minetest_game-* minetest_game
107 $ cd ..
108
109 Build a version that runs directly from the source directory:
110 $ cmake . -DRUN_IN_PLACE=1
111 $ make -j2
112
113 Run it:
114 $ cd bin
115 $ ./minetest
116
117 - Use cmake . -LH to see all CMake options and their current state
118 - If you want to install it system-wide (or are making a distribution package), you will want to use -DRUN_IN_PLACE=0
119 - You can build a bare server or a bare client by specifying -DBUILD_CLIENT=0 or -DBUILD_SERVER=0
120 - You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
121   - Debug build is slower, but gives much more useful output in a debugger
122 - If you build a bare server, you don't need to have Irrlicht installed. In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
123
124 Compiling on Windows:
125 ---------------------
126 - This section is outdated. In addition to what is described here:
127   - In addition to minetest, you need to download common and minetest_game.
128   - If you wish to have sound support, you need libogg, libvorbis and libopenal
129
130 - You need:
131         * CMake:
132                 http://www.cmake.org/cmake/resources/software.html
133         * MinGW or Visual Studio
134                 http://www.mingw.org/
135                 http://msdn.microsoft.com/en-us/vstudio/default
136         * Irrlicht SDK 1.7:
137                 http://irrlicht.sourceforge.net/downloads.html
138         * Zlib headers (zlib125.zip)
139                 http://www.winimage.com/zLibDll/index.html
140         * Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
141                 http://www.winimage.com/zLibDll/index.html
142         * Optional: gettext library and tools:
143                 http://gnuwin32.sourceforge.net/downlinks/gettext.php
144                 - This is used for other UI languages. Feel free to leave it out.
145         * And, of course, Minetest:
146                 http://minetest.net/download.php
147 - Steps:
148         - Select a directory called DIR hereafter in which you will operate.
149         - Make sure you have CMake and a compiler installed.
150         - Download all the other stuff to DIR and extract them into there.
151           ("extract here", not "extract to packagename/")
152           NOTE: zlib125dll.zip needs to be extracted into zlib125dll
153         - All those packages contain a nice base directory in them, which
154           should end up being the direct subdirectories of DIR.
155         - You will end up with a directory structure like this (+=dir, -=file):
156         -----------------
157         + DIR
158                 - zlib-1.2.5.tar.gz
159                 - zlib125dll.zip
160                 - irrlicht-1.7.1.zip
161                 - 110214175330.zip (or whatever, this is the minetest source)
162                 + zlib-1.2.5
163                         - zlib.h
164                         + win32
165                         ...
166                 + zlib125dll
167                         - readme.txt
168                         + dll32
169                         ...
170                 + irrlicht-1.7.1
171                         + lib
172                         + include
173                         ...
174                 + gettext (optional)
175                         +bin
176                         +include
177                         +lib
178                 + minetest
179                         + src
180                         + doc
181                         - CMakeLists.txt
182                         ...
183         -----------------
184         - Start up the CMake GUI
185         - Select "Browse Source..." and select DIR/minetest
186         - Now, if using MSVC:
187                 - Select "Browse Build..." and select DIR/minetest-build
188         - Else if using MinGW:
189                 - Select "Browse Build..." and select DIR/minetest
190         - Select "Configure"
191         - Select your compiler
192         - It will warn about missing stuff, ignore that at this point. (later don't)
193         - Make sure the configuration is as follows
194           (note that the versions may differ for you):
195         -----------------
196         BUILD_CLIENT             [X]
197         BUILD_SERVER             [ ]
198         CMAKE_BUILD_TYPE         Release
199         CMAKE_INSTALL_PREFIX     DIR/minetest-install
200         IRRLICHT_SOURCE_DIR      DIR/irrlicht-1.7.1
201         RUN_IN_PLACE             [X]
202         WARN_ALL                 [ ]
203         ZLIB_DLL                 DIR/zlib125dll/dll32/zlibwapi.dll
204         ZLIB_INCLUDE_DIR         DIR/zlib-1.2.5
205         ZLIB_LIBRARIES           DIR/zlib125dll/dll32/zlibwapi.lib
206         GETTEXT_BIN_DIR          DIR/gettext/bin
207         GETTEXT_INCLUDE_DIR      DIR/gettext/include
208         GETTEXT_LIBRARIES        DIR/gettext/lib/intl.lib
209         GETTEXT_MSGFMT           DIR/gettext/bin/msgfmt
210         -----------------
211         - Hit "Configure"
212         - Hit "Configure" once again 8)
213         - If something is still coloured red, you have a problem.
214         - Hit "Generate"
215         If using MSVC:
216                 - Open the generated minetest.sln
217                 - The project defaults to the "Debug" configuration. Make very sure to
218                   select "Release", unless you want to debug some stuff (it's slower
219                   and might not even work at all)
220                 - Build the ALL_BUILD project
221                 - Build the INSTALL project
222                 - You should now have a working game with the executable in
223                         DIR/minetest-install/bin/minetest.exe
224                 - Additionally you may create a zip package by building the PACKAGE
225                   project.
226         If using MinGW:
227                 - Using the command line, browse to the build directory and run 'make'
228                   (or mingw32-make or whatever it happens to be)
229                 - You may need to copy some of the downloaded DLLs into bin/, see what
230                   running the produced executable tells you it doesn't have.
231                 - You should now have a working game with the executable in
232                         DIR/minetest/bin/minetest.exe
233
234 Windows releases of minetest are built using a bat script like this:
235 --------------------------------------------------------------------
236
237 set sourcedir=%CD%
238 set installpath="C:\tmp\minetest_install"
239 set irrlichtpath="C:\tmp\irrlicht-1.7.2"
240
241 set builddir=%sourcedir%\bvc10
242 mkdir %builddir%
243 pushd %builddir%
244 cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=1 -DCMAKE_INSTALL_PREFIX=%installpath%
245 if %errorlevel% neq 0 goto fail
246 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
247 if %errorlevel% neq 0 goto fail
248 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
249 if %errorlevel% neq 0 goto fail
250 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
251 if %errorlevel% neq 0 goto fail
252 popd
253 echo Finished.
254 exit /b 0
255
256 :fail
257 popd
258 echo Failed.
259 exit /b 1
260
261 License of Minetest textures and sounds
262 ---------------------------------------
263
264 This applies to textures and sounds contained in the main Minetest
265 distribution.
266
267 Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
268 http://creativecommons.org/licenses/by-sa/3.0/
269
270 License of Minetest source code
271 -------------------------------
272
273 Minetest
274 Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
275
276 This program is free software; you can redistribute it and/or modify
277 it under the terms of the GNU Lesser General Public License as published by
278 the Free Software Foundation; either version 2.1 of the License, or
279 (at your option) any later version.
280
281 This program is distributed in the hope that it will be useful,
282 but WITHOUT ANY WARRANTY; without even the implied warranty of
283 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
284 GNU Lesser General Public License for more details.
285
286 You should have received a copy of the GNU Lesser General Public License along
287 with this program; if not, write to the Free Software Foundation, Inc.,
288 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
289
290 Irrlicht
291 ---------------
292
293 This program uses the Irrlicht Engine. http://irrlicht.sourceforge.net/
294
295  The Irrlicht Engine License
296
297 Copyright © 2002-2005 Nikolaus Gebhardt
298
299 This software is provided 'as-is', without any express or implied
300 warranty. In no event will the authors be held liable for any damages
301 arising from the use of this software.
302
303 Permission is granted to anyone to use this software for any purpose,
304 including commercial applications, and to alter it and redistribute
305 it freely, subject to the following restrictions:
306
307    1. The origin of this software must not be misrepresented; you
308       must not claim that you wrote the original software. If you use
309           this software in a product, an acknowledgment in the product
310           documentation would be appreciated but is not required.
311    2. Altered source versions must be plainly marked as such, and must
312       not be misrepresented as being the original software.
313    3. This notice may not be removed or altered from any source
314       distribution.
315
316
317 JThread
318 ---------------
319
320 This program uses the JThread library. License for JThread follows:
321
322 Copyright (c) 2000-2006  Jori Liesenborgs (jori.liesenborgs@gmail.com)
323
324 Permission is hereby granted, free of charge, to any person obtaining a
325 copy of this software and associated documentation files (the "Software"),
326 to deal in the Software without restriction, including without limitation
327 the rights to use, copy, modify, merge, publish, distribute, sublicense,
328 and/or sell copies of the Software, and to permit persons to whom the
329 Software is furnished to do so, subject to the following conditions:
330
331 The above copyright notice and this permission notice shall be included
332 in all copies or substantial portions of the Software.
333
334 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
335 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
336 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
337 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
338 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
339 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
340 IN THE SOFTWARE.
341
342 Lua
343 ---------------
344
345 Lua is licensed under the terms of the MIT license reproduced below.
346 This means that Lua is free software and can be used for both academic
347 and commercial purposes at absolutely no cost.
348
349 For details and rationale, see http://www.lua.org/license.html .
350
351 Copyright (C) 1994-2008 Lua.org, PUC-Rio.
352
353 Permission is hereby granted, free of charge, to any person obtaining a copy
354 of this software and associated documentation files (the "Software"), to deal
355 in the Software without restriction, including without limitation the rights
356 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
357 copies of the Software, and to permit persons to whom the Software is
358 furnished to do so, subject to the following conditions:
359
360 The above copyright notice and this permission notice shall be included in
361 all copies or substantial portions of the Software.
362
363 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
364 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
365 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
366 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
367 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
368 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
369 THE SOFTWARE.
370
371 Fonts
372 ---------------
373
374 DejaVu Sans Mono:
375
376   Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
377   Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
378
379   Bitstream Vera Fonts Copyright:
380
381   Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
382   a trademark of Bitstream, Inc.
383
384   Arev Fonts Copyright:
385
386   Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
387
388   Liberation Fonts Copyright:
389
390   Copyright (c) 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.
391
392