Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. LÖVE
  3. astray

astray

ZlibLua

A Lua library for procedural generation of mazes, rooms, and dungeons for roguelikes and dungeon crawlers.

GitHubGitHub
177 stars13 forks0 contributors

What is astray?

Astray is a Lua library for procedural generation of mazes, rooms, and dungeons. It provides a flexible system for creating diverse layouts suitable for dungeon crawlers, roguelikes, and other games requiring procedural map generation. The library solves the problem of manually designing game levels by offering configurable algorithms that generate unique dungeons each time.

Target Audience

Game developers working on roguelikes, dungeon crawlers, or any Lua-based game that requires procedural map generation. It's particularly useful for indie developers and hobbyists creating 2D tile-based games.

Value Proposition

Developers choose Astray for its fine-grained control over dungeon characteristics, simple Lua integration, and customizable ASCII output. Its modified depth-first search algorithm produces organic-feeling dungeons with configurable room placement and corridor behavior.

Overview

Astray is a lua based maze, room and dungeon generation library for dungeon crawlers and rougelike video games

Use Cases

Best For

  • Generating procedural dungeons for roguelike games
  • Creating maze layouts for dungeon crawler adventures
  • Prototyping level designs with customizable parameters
  • Integrating procedural generation into Lua-based game engines
  • Producing ASCII map outputs for text-based or terminal games
  • Experimenting with dungeon generation algorithms in Lua projects

Not Ideal For

  • Games requiring real-time generation of massive, seamless open worlds
  • Projects needing integrated graphical tilemaps without manual ASCII conversion
  • Teams using game engines like Unity or Unreal that lack native Lua support
  • Developers seeking a visual, drag-and-drop dungeon editor with WYSIWYG feedback

Pros & Cons

Pros

Granular Parameter Control

Offers fine-tuning via mods for corridor winding, sparseness, dead ends, and room properties, enabling diverse dungeon feels as shown in the configurable ranges.

Flexible ASCII Customization

Generates maps with user-definable symbols for walls, doors, and spaces through the symbols table, ideal for text-based or terminal games.

Straightforward Lua API

Simple constructor with Astray:new() and methods like Generate() and CellToTiles() make integration quick, per the clear quick start example.

Organic Layout Generation

Uses modified depth-first search to create natural-looking mazes and rooms, avoiding rigid grid patterns in the sample output.

Cons

Map Size Quirks

Input dimensions are halved and produce uneven maps (e.g., 39x39 from 40x40), which can be unintuitive and complicate level design.

No Built-in Graphics Support

Outputs only ASCII representations, requiring additional rendering logic for graphical games, as admitted in the customization section.

Opaque Parameter Ranges

Modifiers like changeDirectionMod (1-30) lack detailed documentation on how values affect generation, leading to trial-and-error tuning.

Frequently Asked Questions

Quick Stats

Stars177
Forks13
Contributors0
Open Issues0
Last commit1 month ago
CreatedSince 2014

Tags

#game-design#dungeon-crawler#procedural-generation#ascii-art#maze-generation#game-development#room#roguelike#maze#dungeon#video-game#lua#love2d#dungeon-generation

Built With

L
Lua

Included in

LÖVE4.3k
Auto-fetched 17 hours ago

Related Projects

lumelume

Lua functions geared towards gamedev

Stars1,239
Forks86
Last commit2 years ago
Simple Tiled ImplementationSimple Tiled Implementation

Tiled library for LÖVE

Stars1,070
Forks136
Last commit2 years ago
knifeknife

A collection of useful micro-modules for Lua.

Stars518
Forks40
Last commit7 years ago
batteriesbatteries

Reusable dependencies for games made with lua (especially with love)

Stars433
Forks32
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub