Rustic Engine is built in five sequential phases. Each phase must be playtest-verified before work begins on the next one. Skipping ahead or blending phases is how V1 collapsed — don’t do it.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Quiet-Wolfe/Rustic-Engine/llms.txt
Use this file to discover all available pages before exploring further.
All five phases are currently pending. The engine is under active construction.
Phase overview
Core + Rendering Foundation
Establish the data layer and prove that sprites can be drawn to the screen.
rustic-core work:- Chart parsing (Psych Engine JSON format —
song.notes[],song.events[], BPM changes) - Character and stage file loading (JSON definitions for atlas prefixes, offsets, sprite layers)
- Conductor / timing (song position in milliseconds → beats / steps / sections; mid-song BPM changes)
- Scoring math (hit windows: Sick 45 ms, Good 90 ms, Bad 135 ms, Shit 166 ms)
- Asset path resolution and mod loading stubs
rustic-render work:- Window creation via
winit - Sparrow XML atlas parsing — each
<SubTexture>name, position, frame offsets, optional rotation - Sprite animation playback (animation names derived by stripping trailing digits)
- Basic sprite drawing via the
wgpubackend - Dual-camera system: game world camera + HUD overlay camera
rustic-core parsers, and Sparrow atlases render correctly on screen with animations playing.Gameplay + Audio + HUD
Make the engine playable with a single hardcoded song.
rustic-gameplay work:- Note spawning and downward scrolling
- Strum line positioning
- Input detection (key press → lane mapping)
- Hit / miss judgment against conductor song position
- Hold note logic: score tick while held, miss remaining ticks on release
- Health tracking and score accumulation
rustic-audio work:- Instrumental + vocals playback via
kira - Conductor-driven timing lock (audio position drives game time — never wall-clock)
- Sound effects: miss sounds, countdown audio cues
rustic-render HUD additions:- Health bar
- Score and combo display
- Countdown sequence visuals
- Rating popups (Sick / Good / Bad / Shit), combo number sprites, note splashes
Characters & Stage
Replace placeholder visuals with proper animated characters and a stage.Work items:
- Animated character sprites: idle loop, four sing directions (left / down / up / right), miss animations
- Stage background rendering: layered foreground and background sprites with scroll factors and per-layer zoom
- Camera target system: camera follows the current singing character using lerped movement and section-driven target switches
- Beat-synchronized camera zoom pulses
Camera zoom smoothing is intentionally improved over Psych Engine’s jittery bump math here — but the Lua-facing API stays identical so mods are unaffected.
Mods + Lua + Modcharts
Add the full Psych Engine modding surface and validate it against a real mod.Mod loading (
rustic-core):- Mod directory discovery and loading
- Asset override priority: mod assets shadow base-game assets
- Custom note types (string
typefield dispatch) - Custom event definitions
rustic-scripting):- Lua VM integration
- Callback system — all Psych Engine lifecycle hooks:
- Property bridge:
setProperty/getPropertyfor arbitrary object mutation - Sprite API:
makeLuaSprite,addLuaSprite, transform and tint functions - Tween API: matching Psych Engine function signatures exactly
- Camera API: zoom, position, and flash controls
- Note manipulation from Lua (position, angle, alpha, skip)
- Shader support
- Video playback
- HScript (Haxe script) execution
references/VS-RetroSpecter-PART-2-Compiled/) runs correctly end-to-end — custom events fire, modchart note effects display, and Lua callbacks execute without errors.Phase status
| Phase | Description | Status |
|---|---|---|
| 1 | Core + Rendering Foundation | Pending |
| 2 | Gameplay + Audio + HUD | Pending |
| 3 | Characters & Stage | Pending |
| 4 | Menus | Pending |
| 5 | Mods + Lua + Modcharts | Pending |