Add playable corridor scroll desktop prototype

This commit is contained in:
2026-06-30 11:36:23 -06:00
parent 2b208aff7e
commit 3ed24cf8be
4 changed files with 289 additions and 104 deletions

43
HANDOFF_2026-06-19.md Normal file
View File

@@ -0,0 +1,43 @@
# Handoff — June 19, 2026
## 📌 Summary of Progress
In this session, we successfully built and prototyped a fully playable MVP for the **Corridor Scroll** module using the desktop launcher.
1. **Environment & Build Fixes:**
- Installed `openjdk@17` via Homebrew and set up Java environment variables.
- Fixed desktop configuration in `desktop/build.gradle.kts` by adding the `:shared` dependency and passing `-XstartOnFirstThread` to resolve macOS GLFW thread restrictions.
- Fixed `DesktopLauncher.kt` to instantiate the new `GameHost(ModuleType.LINE_CORRIDOR)` setup.
2. **Gameplay Improvements (Corridor Scroll):**
- Transformed the static horizontal prototype into a vertical wiggling corridor scrolling from bottom to top.
- Slower scroll speed (`100f` px/s) to make drawing manageable.
- Implemented an organic, unpredictable centerline using composite waves (a slow left-to-right drift combined with faster wiggles).
- Designed a dynamic corridor width that swells up to 2x and pinches down to 0.5x of its base width as it scrolls.
3. **Inputs & Feedback Loop:**
- Added standard desktop mouse/touch drag fallback inside `LineCorridorScreen.kt` so the game is testable directly on macOS without an emulator.
- Built a 15-second timer per session.
- Programmed real-time scoring metrics:
- **Containment:** % of drawn points staying within the boundaries.
- **Fill:** Shading coverage between boundaries (calculated vertically in bins, normalized by the dynamic width of each bin).
- **Overall:** Weighted combination.
- Added end-game screens displaying scores and a restart prompt (SPACE/TAP to replay).
---
## 🛠️ Current State
* The desktop application compiles and runs successfully using:
```bash
export JAVA_HOME="$(brew --prefix openjdk@17)/libexec/openjdk.jdk/Contents/Home"
./gradlew :desktop:run
```
* Gameplay is interactive, responsive, and wiggles/pinches behave as expected.
---
## 📋 Next Steps & Feature Backlog
1. **Pretentious Art Critique Commentary ("The Gallery Critique"):**
- We drafted a feature proposal in `proposal_commentary.md`.
- Next session can implement `ArtArchetype` in the `:shared` module and load corresponding art snob quotes (e.g., from *Dr. Alistair Vance* or *Madame Genevieve*) depending on whether the player was too safe (high containment, low fill) or too messy (low containment, high fill).
2. **Android & Stylus Integration:**
- Test the Android target and hook up actual S-Pen data (pressure/tilt) via `MotionEvent` APIs to make sure it handles S-Pen pressure.
3. **Additional Modules:**
- Begin development of Phase 2 modules like the **Pressure Ramp** (matching target pressure curves).