PlayersWorlds.Maps 0.2.0

dotnet add package PlayersWorlds.Maps --version 0.2.0
                    
NuGet\Install-Package PlayersWorlds.Maps -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PlayersWorlds.Maps" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PlayersWorlds.Maps" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="PlayersWorlds.Maps" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PlayersWorlds.Maps --version 0.2.0
                    
#r "nuget: PlayersWorlds.Maps, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PlayersWorlds.Maps@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PlayersWorlds.Maps&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=PlayersWorlds.Maps&version=0.2.0
                    
Install as a Cake Tool

PlayersWorlds.Maps

NuGet NuGet prerelease Build License: MIT

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

Contributing

See the contributing guide.

License

MIT.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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