Skip to content
LordFokas edited this page Sep 26, 2024 · 9 revisions

BlazeMap_Logo

Blaze Map is an open-source map mod for Minecraft. Using a layered approach it is possible to provide players with a lot more information, and allow them to switch bits and pieces on and off on the fly to focus on what's important. This system runs on top of an extremely powerful and versatile cartography engine, coupled with a comprehensive API that allows other mods to contribute to and manipulate the maps and associated objects.


Table of Contents
The Basics
For Players
For Modpack Creators
Technical Principles
For Addon Developers
For Contributors

The Basics

This section focuses on the general information that is relevant to every kind of user.

It assumes you have knowledge of The Basic Minecraft Concepts

Layered Approach

Instead of rendering a single image per map type, Blaze Map keeps multiple layers, each with very specific information. This allows us to give users buttons to enable and disable layers on the fly, adding or removing their images and any associated markers instantly.

For example, for the Topography map, these are the 3 layers for one specific Region in one of our test worlds:

Base layers (Note: these layers have transparent backgrounds that have been set to white to make the image more perceptible in dark backgrounds)

From left to right:

  • Topography layer: encodes the altitude of solid ground (ignores vegetation, trees, and water) into a color.
  • Topography isolines: each line marks a place where the ground raises or lowers a set amount of blocks. Spaced out lines mean the terrain is fairly flat, while many lines packed together indicate a very steep surface.
  • Water depth: darker blue means deeper water.

These layers are then superimposed on the fly, to generate the actual map the player sees:

Layering

Which the player finally sees on their screen like this:

Result

For Players

This section focuses on gameplay features

For Modpack Creators

This section focuses on configuration and extensibility

Technical Principles

Core technical information important for both addon developers and contributors. If you are a player or a pack creator your journey probably ends here, but if you do have technical minecraft and/or programming knowledge and are curious to know how Blaze Map works inside, be our guest and continue reading 🙂

Structure

Internally Blaze Map is divided in 3 parts:

  • The engine, which does all the heavy lifting.
    • Detect Chunk changes
    • Collect data from changed Chunks and manage collected data (called Master Data, aka MD)
    • Produce imagery and send notifications from new or changed MD
  • The features, (almost entirely) decoupled from the engine, that communicate with it mostly via API
    • GUIs (fullscreen map, minimap, waypoint management)
    • Default maps (Aerial, Topography, Nether) and layers (Block Color, Terrain Slope, Topography, Topographic isolines, Water Depth)
    • Default waypoint storage, default map overlays, default marker renderer
  • The API, which provides decoupled ways to interact with both the engine and the features

For Addon Developers

This section describes the API

For Contributors

This section describes the inner workings of the engine are other mechanically dense systems