2 releases
0.1.1 | Jan 7, 2024 |
---|---|
0.1.0 | Sep 30, 2023 |
#1215 in Game dev
Used in minedmap
24KB
299 lines
MinedMap
- Render beautiful maps of your Minecraft worlds!
- Put them on a webserver and view them in your browser!
- Compatible with unmodified Minecraft Java Edition 1.8 up to 1.20 (no mod installation necessary!)
- Illumination layer: the world at night
- Fast: create a full map for a huge 3GB savegame in less than 5 minutes in single-threaded operation
- Multi-threading support: pass
-j N
to the renderer to useN
parallel threads for generation - Incremental updates: only recreate map tiles for regions that have changed
- Typically uses less than 100MB of RAM in single-threaded operation (may be higher when
-j
is passed) - Cross-platform: runs on Linux, Windows, and likely other systems like MacOS as well
How to use
MinedMap consists of two components: a map renderer generating map tiles from Minecraft save games, and a viewer for displaying and navigating maps in a browser based on Leaflet. The map renderer is heavily inspired by MapRend, but has been reimplemented from scratch (first in C++, now in Rust) for highest performance.
The viewer expects the the map data in a directory named data
. To generate a new
map, create this empty directory inside the viewer directory. Next, to generate the
map files run MinedMap passing the source and the destination paths on the command
line:
minedmap /path/to/save/game /path/to/viewer/data
The save game is stored in saves
inside your Minecraft main directory
(~/.minecraft
on Linux, C:\Users\<username>\AppData\Roaming\.minecraft
on Windows)
in a subdirectory with the name of your world.
The first map generation might take a while for big worlds, but subsequent calls will only rebuild tiles for region files that have changed, rarely taking more than a second or two. This makes it feasible to update the map very frequently, e.g. by running MinedMap as a Cron job every minute.
Note that it is not possible to open the viewer index.html without a webserver, as
it cannot load the generated map information from file://
URIs. For testing purposes,
you can use a minimal HTTP server, e.g. (if you have Python installed):
python3 -m http.server
This test server is very slow and cannot handle multiple requests concurrently, so use a proper webserver like nginx or upload the viewer together with the generated map files to public webspace to make the map available to others.
Installation
Building the MinedMap map generator from source requires a recent Rust toolchain (1.72.0 or newer). The following command can be used to build the current development version:
cargo install --git 'https://github.com/neocturne/MinedMap.git'
In addition, CMake is needed to build the zlib-ng library. If you do not have
CMake installed, you can disable the zlib-ng feature by passing --no-default-features
to cargo. A pure-Rust zlib implementation will be used, which is more portable,
but slower than zlib-ng.
If you are looking for the older C++ implementation of the MinedMap tile renderer, see the v1.19.1 tag.
Dependencies
~1.7–2.5MB
~52K SLoC