Maker – 3D Level Editor Concept
Small World · Tool

Maker

Endlich ein richtiger Editor. Szenen visuell aufbauen, Prefabs verwalten, und direkt in ein glTF-Projekt speichern — ohne Build-Schritt, ohne Kompromisse.

Philosophie

Maker entstand aus einem simplen Unbehagen: Szenen nur durch Code aufzubauen ist mühsam. Ein richtiger Editor erlaubt es, eine Welt zu sehen, während man sie baut. Maker ist kein Unity-Klon — er ist ein leichtgewichtiges, opinioniertes Werkzeug, das exakt auf Small World zugeschnitten ist. Kein Overkill, keine Plugin-Architektur, kein Electron. Nur ein Browser-Tab mit File System Access API und einem sauberen glTF-Workflow.

Implementierte Features

🎯

Always-on-Top Gizmo

Translate / Rotate / Scale mit depthTest: false — verschwindet nie mehr im Inneren von Meshes.

⌨️

Camera-Cardinal Nudge

Pfeiltasten-Transformation in Blickrichtung der Kamera, Höhenanpassung via Shift+Pfeil/PgUp/PgDn.

⬇️

Snap to Ground

End-Taste setzt die Bounding-Box-Unterkante der Selektion bündig auf Y = 0.

🌲

Hierarchy-Panel

Vollständiger Szenenbaum mit Klick-Selektion und Live-Sync.

🔧

Property-Panel

Position, Rotation, Scale numerisch editierbar. Undo bei jedem Commit.

🧱

Objekt-Palette

Eingebaute Geometrien (Cube, Sphere, Grid …) und Lichter per Klick platzieren.

📦

Prefab-Pipeline

Selektion als Prefab speichern, isolierte 3D-Thumbnails rendern, instanziieren.

💾

Autosave & glTF 2.0

500ms Debounced write via File System Access API mit SW_*-Erweiterungen.

↩️

Undo-Stack & Soft-Delete

Command-Pattern mit Off-Scene TrashBin zur GPU-Puffer-Schonung.

🗺️

ASCII-Map-Import

Level aus Text-Map modular generieren mit konfigurierbarer Legende.

⧉

Duplicate / Group

Ctrl+D klont Selektionen inkl. Behaviors. Ctrl+G gruppiert um den Centroid.

📷

Kamera-Bookmarks

9 Slots, Links/1-9 = springen, Rechts/Ctrl+1-9 = speichern.

⛶

Multi-Selektion & Marquee

Lasso-Rechteck, Shift/Ctrl-Klick, Cyan/Amber-Wireframes, Pivot-relativer Gruppen-Transform.

🧲

Dynamic Snapping

0.5m Default, Stufenweises Schalten via [ und ] (0.1m–2.0m), 15° Winkel, 0.25 Scale. Toggle: X.

Roadmap

✅ Transform-Gizmo (Always-on-Top) ✅ Hierarchy-Panel ✅ Property-Panel ✅ Prefabs & isolierte 3D-Thumbnails ✅ Autosave (glTF 2.0 + SW_*) ✅ Undo-Stack & Soft-Delete ✅ ASCII-Map-Import ✅ Gadget-Inspector Ablösung ✅ Licht- & Behavior-Platzierung ✅ Duplicate / Group (Batch) ✅ Kamera-Bookmarks (1-9) ✅ Multi-Selektion & Marquee ✅ Dynamic Grid-Stepping ([ & ]) ✅ Camera-Cardinal Keyboard Nudge ✅ Snap to Ground (End) ✅ Inline Renaming (F2 & Hierarchy) ✅ Hierarchy Search & Filter (Ctrl+F) ✅ Icon-Matrix Palette (20 Primitives/Lights/Helpers) ✅ 3D Light Gizmos & Selection Range Bounds ✅ Player SpawnPoint (1.8m Silhouette) ✅ Smart Viewport-Center Spawning & Ground Resting ✅ Behavior Removal & Inspector Detach ✅ Full Material Management (Switch, Reset, Remove & Add) ✅ Multi-Column Inspector Layout (Transform Trios & Pairs) ◻ Play-in-Browser

Architektur-Entscheidungen

ADR 0010 — Maker Editor Architecture (Delivered)
MakerApp als schlanker Orchestrator. GadgetInspector vollständig abgelöst. Stamped-copies für Prefabs mit isoliertem 3D-Thumbnail-Rendering.
File System Access API — kein Server
Direkter Zugriff auf scene.gltf + prefabs/ im Browser. Abstrakte Interfaces in ProjectBinding ermöglichen vollständige Testbarkeit ohne echtes Dateisystem.
Trash-Bin-Pattern (Soft Delete)
Gelöschte Objekte wandern in einen Off-Scene-Container, nie in Scene.remove(). Verhindert GPU-Buffer-Disposal und hält Undo sauber und sicher.
Inspectable-Reflection-Layer
Das Behavior.inspector-Schema-Pattern generalisiert auf Object3D, Materialien und Lichter via collectInspectorSchema(). Ein einheitlicher Panel-Renderer.