Building the Maze Editor

A look at the custom web-based maze editor I built to design and manage D6scend's levels — and why I built it instead of using an off-the-shelf tool.

One of the less visible but critical pieces of D6scend’s development is the maze editor — a custom web app I built to design, organize, and publish all of the game’s levels.

Why build a custom tool?

The level format for D6scend is specific enough that no existing level editor fit cleanly. Each level has a 19×19 grid (coordinates -9 to 9), specific tile types (Floor, Start, Goal, Booster, Spinner, Toggle, Hidden), and color-coded layers. Getting those into a spreadsheet or generic editor was more friction than just building the right tool.

Sample Image

What it does

The editor runs in the browser, backed by Firebase Cloud Functions and Firestore. Levels are organized into Collections, and Collections can be published — which creates a verified snapshot that gets delivered to the game client.

Key features:

  • 19×19 grid canvas with click-to-place tile editing
  • Full CRUD for Collections, Mazes, and Levels
  • Role-based access control (designers can be granted access to specific collections)
  • Publishing workflow that separates work-in-progress from released content
  • Maze Design Mode — a device registration system that lets a registered game client receive unpublished content for testing

What’s next for the editor

The next significant editor feature is STEM mode support — a way to flag collections as educational content and associate them with specific curriculum standards.

Wishlist D6scend on Steam

Your wishlist helps us more than you know!

Wishlist Now