Skip to content

The Blaze Map Terminology

LordFokas edited this page Oct 7, 2024 · 4 revisions

User Facing Terms

Map Type

One of the maps (in the image sense) you can see ingame, such as Aerial or Topography. The term map is ambiguous, as it has multiple meanings both in the game and in programming, making its usage difficult in both contexts, so, Map Type was chosen.

Layer

The main component of Map Types. Each Map Type is composed of one or multiple layers that are superimposed at the time they are drawn on screen. Layers generate these images as you explore the world and save them to disk as needed.

Overlay

Overlays are like layers in that they are stacked on each other. These are laid on top of the map after every Layer has already been applied, but instead of being defined per map type, all overlays are available in all map types by definition. Also, the pixels from Overlays, if any, are calculated at runtime instead of saved on disk.

Marker

An object that can be attached to a layer or overlay that renders on top of the map. Entity markers and waypoints are one example.

Minimap

The map rendered on the corner of your screen

World Map

AKA full map or fullscreen map. Renders fullscreen with lots of buttons and things to look at when you press the assigned hotkey (default is B).

Technical Terms

Engine

The part of Blaze Map that manages all the technical aspects of map generation. Contains infrastructure to back most of the mod's functionality, as well as keeps one running Pipeline per active dimension.

Pipeline

The part of the Engine that manages all Master Data activities. It runs Collectors, Transformers, Processors, Layers, LRT generation and caching, MD serialization and caching, and sends notifications when an LRT changes.

Master Data (MD)

A blob of data representing one aspect of a chunk. Typically it is composed of one or more 16x16 grids of data points. The entire engine runs on these, and they power every aspect of the map generation

Collector

MD Producer. Collects MD from a given chunk. They need to run in the main game thread to ensure the chunk isn't modified in parallel, and so they have some impact on tick times and must be as efficient as possible.

Layer (Technical)

MD Consumer. Uses one or more MD from a single chunk to generate the respective chunk tile. This small image is later inserted at the right coordinates of the LRT to form, literally, the bigger picture (region sized).

Comes in 3 flavors:

  • Physical: The default Layer type. Generates tiles that are saved on disk. The only kind that interacts with MD and runs on the Pipeline.
  • Synthetic: Also displays pixels on the map, but instead of being generated from MD in the pipeline, they are calculated on the fly at render time.
  • Fake / Ghost: Does not generate any images or save anything. Only used to attach markers to.

Transformer

MD Consumer and Producer. Can transform one ore more types of MD from a single chunk into another MD for the same chunk, however, because they run without direct access to the chunk itself they are executed in the background threads and so performance isn't as critical. Thus, if an MD can be produced with Transformers from existing MD, it should not be produced in a Collector. As of this point it is not guaranteed that a Transformer can run on data produced by another Transformer.

Processor

MD Consumer. Can consume MD to generate data, interactions, and otherwise desirable results that are not necessarily map images.

LayerRegionTile (LRT)

A single map image, that saves to disk as PNG. Blaze Map divides images (tiles) per Layer and per Region, thus the name, Layer Region Tile.

This is an engine class that is responsible for loading, updating, and saving these images.

RegionPos

The same way Minecraft has BlockPos and ChunkPos to represent the coordinates of a block or chunk, we have RegionPos to represent the coordinates of a region. This class is part of the Blaze Map API and is used for almost everything.