PlayersWorlds.Maps
0.2.0
dotnet add package PlayersWorlds.Maps --version 0.2.0
NuGet\Install-Package PlayersWorlds.Maps -Version 0.2.0
<PackageReference Include="PlayersWorlds.Maps" Version="0.2.0" />
<PackageVersion Include="PlayersWorlds.Maps" Version="0.2.0" />
<PackageReference Include="PlayersWorlds.Maps" />
paket add PlayersWorlds.Maps --version 0.2.0
#r "nuget: PlayersWorlds.Maps, 0.2.0"
#:package PlayersWorlds.Maps@0.2.0
#addin nuget:?package=PlayersWorlds.Maps&version=0.2.0
#tool nuget:?package=PlayersWorlds.Maps&version=0.2.0
PlayersWorlds.Maps
A procedural maze / dungeon map-generation library — corridors, rooms, halls, caves, and impassable zones for 2D/3D games. It generates the backbone of a map; the consuming game supplies gameplay, loot, mobs, and the visual layer.
The core library is BCL-only (no third-party dependencies) and targets net8.0, so it drops cleanly into a Godot 4 project.
Install
dotnet add package PlayersWorlds.Maps
Quick start — the region façade
Games code against PlayersWorlds.Maps.World, a narrow, frozen contract over the
generation pipeline (no internal Area/Cell types leak through):
using PlayersWorlds.Maps;
using PlayersWorlds.Maps.World;
// Game start: one seeded world, created once.
var world = new World(
store: new NullRegionStore(), // supply your own IRegionStore to persist
worldSeed: 12345,
regionSize: new Vector(65, 65), // the region's world footprint == RegionView.Size
defaultRecipe: RegionRecipe.Maze); // Maze / Corridors / Dungeon / Caverns
// As the player moves: generate (or load) a region, choosing its kind.
RegionView region = world.GetOrCreate(new RegionAddress(new Vector(0, 0)));
foreach (var poi in region.Pois) { /* Entrance / Exit / DeadEnd, in local coords */ }
bool floor = region.CellAt(new Vector(x, y)).IsPassable; // drives your tiles
Full integration guide, scenario coverage, and the latency envelope:
docs/INTEGRATION.md.
The lower-level GeneratedWorld pipeline (layers, area overlays, explicit
algorithm/render options) is still available for advanced composition — see
docs/DESIGN.md.
Build from source
Requires the .NET SDK (net8.0). Everyday commands are in the Makefile:
make build # dotnet build
make test # fast unit tests (what CI runs)
make ci # lint + build + test + smoke render
make demo # render a maze with two rooms as ASCII
To develop the library against a consuming game locally, reference it as a
ProjectReference instead of the package — see the conditional-reference pattern
in docs/INTEGRATION.md.
Docs
docs/PRD.md— vision & journeysdocs/DESIGN.md— architecture, API, algorithmsdocs/INTEGRATION.md— the living integration guidedocs/ROADMAP.md— phased plan
Contributing
See the contributing guide.
License
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0 | 123 | 7/9/2026 |
| 0.2.0-preview.3 | 58 | 7/9/2026 |
| 0.2.0-preview.2 | 59 | 7/7/2026 |
| 0.1.0 | 110 | 7/7/2026 |