Added installing build-essential to build instructions and modified the main.cpp...
[oweals/minetest.git] / doc / README.txt
index 3467564bd1ed88382696119d2966b45144993c56..12e58e457e4f047d584fc8bd5f51683425110cdd 100644 (file)
 Minetest-c55
 ---------------
-
-Copyright (c) 2010 Perttu Ahola <celeron55@gmail.com>
-
 An InfiniMiner/Minecraft inspired game.
+Copyright (c) 2010-2011 Perttu Ahola <celeron55@gmail.com>
 
 This is a development version:
+------------------------------
 - Don't expect it to work as well as a finished game will.
 - Please report any bugs to me. That way I can fix them to the next release.
-       - debug.txt is very useful when the game crashes.
-
-Public servers:
-       kray.dy.fi :30000 (friend's server - usually in creative mode)
-       celer.oni.biz :30000 (main development server)
-- Both of these have very limited bandwidth and the game will become laggy
-  with 4-5 players.
-- If you want to run a server, I can list you on my website and in here.
-
-Features, as of now:
-- Almost Infinite Map (limited to +-31000 blocks in any direction at the moment)
-    - Minecraft alpha has a height restriction of 128 blocks
-- Map Generator capable of taking advantage of the infinite map
+       - debug.txt is useful when the game crashes.
 
 Controls:
-- WASD+mouse: Move
-- Mouse L: Dig
-- Mouse R: Place block
-- Mouse Wheel: Change item
-- F: Change item
-- R: Toggle full view range
+---------
+- See the in-game pause menu
+
+Map directory:
+--------------
+- Map is stored in a directory, which can be removed to generate a new map.
+- There is a command-line option for it: --map-dir
+- For a RUN_IN_PLACE build, it is located in:
+               ../map
+- Otherwise something like this:
+       Windows: C:\Documents and Settings\user\Application Data\minetest\map
+       Linux: ~/.minetest/map
+       OS X: ~/Library/Application Support/minetest/map
 
 Configuration file:
+-------------------
 - An optional configuration file can be used. See minetest.conf.example.
 - Path to file can be passed as a parameter to the executable:
        --config <path-to-file>
-- If not given as a parameter, these are checked, in order:
-       ../minetest.conf
-       ../../minetest.conf
+- Defaults:
+       - If built with -DRUN_IN_PLACE=1:
+               ../minetest.conf
+               ../../minetest.conf
+       - Otherwise something like this:
+               Windows: C:\Documents and Settings\user\Application Data\minetest\minetest.conf
+               Linux: ~/.minetest/minetest.conf
+               OS X: ~/Library/Application Support/minetest.conf
+
+Command-line options:
+---------------------
+- Use --help
 
-Running on Windows:
-- The working directory should be ./bin
+Compiling on GNU/Linux:
+-----------------------
 
-Running on GNU/Linux:
-- fasttest is a linux binary compiled on a recent Arch Linux installation.
-  It should run on most recent GNU/Linux distributions.
-- Browse to the game ./bin directory and type:
-    LD_LIBRARY_PATH=. ./fasttest
-- If it doesn't work, use wine. I aim at 100% compatibility with wine.
+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
 
-Compiling on GNU/Linux:
-- You need:
-* Irrlicht:
-       http://downloads.sourceforge.net/irrlicht/irrlicht-1.7.2.zip
-* JThread:
-       http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jthread
-* zlib:
-       - Get the -dev package from your package manager.
-- Irrlicht and JThread are very likely not to be found from your distro's
-  repository.
-- Compiling each of them should be fairly unproblematic, though.
+Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
+$ wget https://bitbucket.org/celeron55/minetest/get/tip.tar.gz
+$ tar xf tip.tar.gz
+$ cd minetest
+
+Build a version that runs directly from the source directory:
+$ cmake . -DRUN_IN_PLACE=1
+$ make -j2
+
+Run it:
+$ cd 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
+- You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
+  - Note that the Debug build is considerably slower
 
 Compiling on Windows:
-- You need Irrlicht, JThread and zlib, see above
-- Be sure to
-  #define JMUTEX_CRITICALSECTION
-  in jmutex.h before compiling it. Otherwise mutexes will be very slow.
+---------------------
+
+- You need:
+       * CMake:
+               http://www.cmake.org/cmake/resources/software.html
+       * MinGW or Visual Studio
+               http://www.mingw.org/
+               http://msdn.microsoft.com/en-us/vstudio/default
+       * Irrlicht SDK 1.7:
+               http://irrlicht.sourceforge.net/downloads.html
+       * Zlib headers (zlib125.zip)
+               http://www.winimage.com/zLibDll/index.html
+       * Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
+               http://www.winimage.com/zLibDll/index.html
+       * And, of course, Minetest-c55:
+               http://celeron.55.lt/~celeron55/minetest/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. 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):
+       -----------------
+       + DIR
+               - zlib-1.2.5.tar.gz
+               - zlib125dll.zip
+               - irrlicht-1.7.1.zip
+               - 110214175330.zip (or whatever, this is the minetest source)
+               + zlib-1.2.5
+                       - zlib.h
+                       + win32
+                       ...
+               + zlib125dll
+                       - readme.txt
+                       + dll32
+                       ...
+               + irrlicht-1.7.1
+                       + lib
+                       + include
+                       ...
+               + minetest
+                       + src
+                       + doc
+                       - CMakeLists.txt
+                       ...
+       -----------------
+       - Start up the CMake GUI
+       - Select "Browse Source..." and select DIR/minetest
+       - Now, if using MSVC:
+               - Select "Browse Build..." and select DIR/minetest-build
+       - Else if using MinGW:
+               - Select "Browse Build..." and select DIR/minetest
+       - Select "Configure"
+       - Select your compiler
+       - It will warn about missing stuff, ignore that at this point. (later don't)
+       - Make sure the configuration is as follows
+         (note that the versions may differ for you):
+       -----------------
+       BUILD_CLIENT             [X]
+       BUILD_SERVER             [ ]
+       CMAKE_BUILD_TYPE         Release
+       CMAKE_INSTALL_PREFIX     DIR/minetest-install
+       IRRLICHT_SOURCE_DIR      DIR/irrlicht-1.7.1
+       RUN_IN_PLACE             [X]
+       WARN_ALL                 [ ]
+       ZLIB_DLL                 DIR/zlib125dll/dll32/zlibwapi.dll
+       ZLIB_INCLUDE_DIR         DIR/zlib-1.2.5
+       ZLIB_LIBRARIES           DIR/zlib125dll/dll32/zlibwapi.lib
+       -----------------
+       - Hit "Configure"
+       - Hit "Generate"
+       If using MSVC:
+               - Open the generated minetest.sln
+               - The project defaults to the "Debug" configuration. Make very sure to
+                 select "Release", unless you like to have a very glitchy gaming
+                 experience.
+               - Build the ALL_BUILD project
+               - Build the INSTALL project
+               - You should now have a working game with the executable in
+                       DIR/minetest-install/bin/minetest.exe
+               - Additionally you may create a zip package by building the PACKAGE
+                 project.
+       If using MinGW:
+               - Using the command line, browse to the build directory and run 'make'
+               - You should now have a working game with the executable in
+                       DIR/minetest/bin/minetest.exe
 
 License of Minetest-c55
 -----------------------
 
 Minetest-c55
-Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by