Parameterized generation
Layout complexity is driven by a small set of knobs (size, turns, density), enabling controlled difficulty.
Game Case Study
A systems-focused puzzle prototype inspired by AMAZE, built to explore procedural level generation, solvability constraints, and rapid iteration through automation.
AMAZE is a procedural prototype where the core challenge comes from constrained movement and “paint/fill” style coverage. My focus wasn’t on reinventing the mechanic, but on building a generator that produces readable, solvable puzzles at different difficulty bands—so iteration becomes parameter tuning instead of hand-authoring levels.
What I was trying to achieve.
Ensure generated puzzles are playable by construction, avoiding dead layouts that waste player time.
Keep the path logic legible so difficulty feels “fair” and explainable, not random or messy.
Generate and test batches of levels quickly to tune constraints and difficulty progression.
What I personally owned.
Built and refined the generation approach, including constraints that shape layout structure and complexity.
Added checks/filters to reduce unsatisfying outputs and tuned parameters to create consistent difficulty bands.
Framed the work clearly as a systems prototype, focusing on generation intent, iteration workflow, and learnings.
How the project evolved and what I took away.
The biggest lesson was that “random” doesn’t automatically mean “varied in a good way.” Early versions produced plenty of levels, but many were either trivial or confusing. I improved results by treating generation as a design problem: constrain the search space, define what “readable” means, then iterate by adjusting a small set of parameters and testing output batches. That approach made progress predictable and made the prototype useful as a reusable pipeline rather than a one-off demo.
The moment-to-moment flow I focused on.
Start a level → read the layout → plan a route → move to cover tiles efficiently → commit to decisions (limited reversals) → finish when the board is fully covered → next level.
The loop rewards foresight: small mistakes compound, but solutions feel satisfying when the player “sees” the route and executes cleanly. Difficulty comes from constraints, not speed.
What’s implemented in the prototype right now.
Layout complexity is driven by a small set of knobs (size, turns, density), enabling controlled difficulty.
Filtering/constraints reduce broken or unsatisfying levels so output quality stays consistent.
Quickly generate many candidates, test, and adjust parameters—turning content creation into tuning.