No level editor or custom levels #23
Labels
No labels
blocked:gate-implement
blocked:gate-lint
blocked:gate-plan
blocked:needs-decision
blocked:needs-human
bug
feature-request
in-progress
needs-decompose
needs-triage
quickfix
test-coverage
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/tilt-marble-maze#23
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Only predefined levels. No user-created content.
Impact
Limited replayability.
Suggested Fix
Add a level editor with save/load.
Feature Triage Assessment
Scope: large
Risk: low
Spec Alignment: partial
Summary: Wants a visual level editor allowing users to create, save, load, and play custom marble maze tracks to improve replayability.
Recommendation: Build as an isolated editor route (/editor) with a canvas-based grid and floating palette for placing walls, obstacles, collectibles, and spawn/finish points. Serialize to the existing LevelData interface so the engine consumes them unchanged. Persist in localStorage with JSON export/import for sharing. Add a 'Custom' tab to the track picker when user levels exist.
Rationale: Large: LevelData has 18 fields spanning 9 obstacle types, 5 power-up types, 3 collectible types, themes, hazards, ice tiles, boost pads, and checkpoints — each needs editor tooling, plus serialization, persistence, and a custom level browser. Risk is low because it's pure additive — custom levels use the existing LevelData interface, no game engine paths are touched. Spec alignment is partial since the plan.md mentions a 'level design system (tile-based or procedural)' in Stage 4 but targeted at the developer, not end-user custom content. The editor itself would be ~10-20 new/modified files.
Labeled
blocked:needs-decision— unblock on Forgejo to dispatch to the fixer pipeline.This is broad — filed as #24 (Break down #23 into phased implementation) with 5 phases covering editor route, grid interaction, serialization, level browser, and advanced features. The decomposition issue is auto-approved for the fixer pipeline.
Decomposition filed at #30 with 5 phases: editor route, grid interaction, serialization, level browser, advanced features. This issue is addressed by the decomposition.
Fixed in commit. Closing.