rpg_map documentation
rpg_map
A fast, zero-dependency Python library for visualizing exploration and movement across large pixel-based maps. Built in Rust for speed and efficiency, rpg_map is perfect for turn-based or real-time RPGs, strategy games, and D&D-style map reveals.
Key Features
Hides unexplored areas of the map
Reveals areas as they’re explored or passed through
Draws travel paths using A* pathfinding
Fast and lightweight with zero Python dependencies
Operates directly on pixel data
Customizable visual styles and highlight zones
Includes examples using static image processing and Pygame
Install
Install via pip:
pip install rpg-map
Documentation
Full documentation and examples available at: https://rpg-map.readthedocs.io/
How It Works
The library uses step-by-step image processing to reveal and annotate the map. Here’s an overview of the process:
Draw Obstacles The
Mapclass accepts anobstaclesparameter which allows you to define N-sided polygons. These are rendered onto the map as solid barriers.
Add Padding and Convert to Pathfinding Grid Obstacles and map edges are padded and the image is converted into a binary map (1 = path, 0 = obstacle) for pathfinding.
Pathfinding with A* The library uses the A* algorithm to find the shortest path from point A to point B. The path is drawn on the map using a customizable style.
Draw Dots Optional dots can be placed on the map (e.g., for points of interest, the player, markers).
Divide into Grid Squares The image is divided into equal squares based on the
grid_sizeparameter.
Reveal Explored Areas A mask overlays the map. Areas near the travel path or manually unlocked via
Map.unlock_pointare revealed in circular zones.
Fill Transparent Areas Any remaining transparent pixels are filled with a background layer.
Final Map Output The completed map shows explored areas, paths, markers, and hidden regions yet to be discovered.
Advanced Features
You can define special grid points where the reveal radius is larger — perfect for cities or key landmarks.
The library supports tons of styles for different themes and usecases.
Examples
Check out these demos:
examples/static_poc.py – Generate one image from your code
examples/pygame_poc – Interactively do pathfinding to wherever you click
Contents: