All checks were successful
release / build-release (push) Successful in 1m42s
- level.Schedule.Phase: away/approaching/arriving/dwelling/closing/leaving ur tidtabellen med progress; Boardable (öppna dörrar) och Present; validering av minsta uppehåll/borta-tid; TrackTile för rälsen - sim.Run: ombordstigning bara med öppna dörrar, TrainVisible via Present, PlatformPhase och NearTrack (närmaste perrong inom två rutor) - game/trains.go: rälsrutor längs kantraden (roterade för vertikala spår), tre vagnar som bromsar in och accelererar ut längs rälsen, strålkastare under inrullningen, blinkande lampor vid kanten för den som står nära, dammpartiklar längs perrongen; kameran får en rutas marginal så att kanträlsen syns - game/audio.go: ebiten/v2/audio med avgångsmelodi (approaching) och dörrsignal (closing), volym efter avstånd, -mute; tools/gensound syntetiserar placeholder-WAV:ar - HUD: fasberoende perrongtext och "tåg på väg in" nära rälsen; skriptkommandot waitphase; skärmdump av ankomsten - plan (Björn 2026-10-24): räls/väg-grafik och melodierna i M7b; folk/NPC:er, vänster-/högertrafik, bredare gångar, reklam- och ljudröra som nytt steg M9b – i spelbeskrivning, roadmap, testplan - docs/README/wiki uppdaterade Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
67 lines
3.3 KiB
Markdown
67 lines
3.3 KiB
Markdown
# metro-puzzle-jp – plan
|
||
|
||
Navet för projektets dokumentation. Detaljerna ligger i de länkade filerna.
|
||
|
||
## Mål
|
||
|
||
Ett pixel art-pusselspel där ett sällskap ska hitta rätt tåg genom japanska
|
||
stationer byggda som labyrinter, med skyltar på japanska som spelaren lär sig
|
||
läsa. Spelet ska vara en enda binär med en resursmapp bredvid, lika lätt att
|
||
bygga på Linux som på Windows, utan andra byggverktyg än Go.
|
||
Hela spelidén: [spelbeskrivning.md](spelbeskrivning.md).
|
||
|
||
## Stack
|
||
|
||
Go 1.27 + Ebitengine v2.10, JSON-data, standardbibliotekets tester,
|
||
byggverktyg i Go (`go run ./tools/build`), VS Code med `golang.go`.
|
||
Motivering och alternativ som valts bort: [roadmap.md › Teknikval](roadmap.md#teknikval).
|
||
|
||
## Målplattformar
|
||
|
||
Linux x64 först. Windows x64 byggs från dag 1 (korsbygge utan C-verktyg)
|
||
men speltestas på riktig Windows först i M12. Linux arm64 (Pi5) är inte ett
|
||
mål för spelet, men Gitea-CI kan byggas på Pi5-runnern senare.
|
||
|
||
## Leverans
|
||
|
||
Mönster A enligt playbooken (nedladdningsbar binär). Repot ligger på Gitea
|
||
(`brasse/metro-puzzle-jp`, sedan 2026-10-23) och CI bygger release-zippar
|
||
för Linux och Windows till den rullande releasen `latest` vid varje push
|
||
till master; en tagg `vX.Y.Z` ger en versionerad release. Byggs på
|
||
brasse-linux01-runnern, inte Pi5:n.
|
||
|
||
## Milstolpar
|
||
|
||
M0 skelett ✓ → M1 rörelse/kamera ✓ → M2 tåg/spärrar/vinst ✓ → M3 japanska/skyltar ✓
|
||
→ M4 lämmeltåget ✓ → M5 minikarta ✓ → M6 kort/biljetter/minispel ✓ → M7
|
||
svårighet/poäng/debuffar ✓ → M7b tåg som kommer och går ✓ → M8 progression/sparfiler → M9a flera våningar → M9b folk/reklam/ljudröra → M9 navigeringslägen →
|
||
M10 story-innehåll → M11 oändligt läge/NG+ → M12 ljud/polish/release.
|
||
Innehåll per milstolpe: [roadmap.md › Milstolpar](roadmap.md#milstolpar).
|
||
Vad som ska vara testat per milstolpe: [mal-och-tester.md](mal-och-tester.md).
|
||
|
||
## Idéer till expansioner (ej beslutade)
|
||
|
||
- **Baneditor i spelet** eller ett `tools/levelcheck` som ritar banor som
|
||
PNG och rapporterar onåbara rutor – blir troligen nödvändigt i M10.
|
||
- **Daglig utmaning:** oändligt läge med dagens datum som seed och en lokal
|
||
topplista.
|
||
- **Lärande-läge:** en ordlista i menyn över tecken man mött, med
|
||
repetition – går hand i hand med skyltsystemet.
|
||
- **Lokalt samarbete:** en andra spelare styr en av polarna (delad skärm på
|
||
samma tangentbord/gamepad).
|
||
- **Steam Deck:** Linux-binären bör fungera som den är; gamepad-stöd från M1
|
||
gör det gratis.
|
||
- **Modbara banor:** eftersom banor är JSON i `resources/data/levels` kan
|
||
spelare lägga till egna – kräver bara att banväljaren läser mappen.
|
||
|
||
## Öppna frågor
|
||
|
||
- ~~Repo-namn~~ – beslutat: `metro-puzzle-jp` (Gitea 2026-10-23). Visningsnamnet "Metro Puzzle JP" är bara text i `resources/text/`.
|
||
- "Game box-liknande" banval: tolkat som spelbräde/världskarta – stämmer det?
|
||
- ~~Font~~ – beslutat: PixelMplus 10/12 px (M3).
|
||
- ~~Hur lär man sig ord utöver hjälp?~~ – beslutat av Björn 2026-10-23:
|
||
bra resultat lär resmålet, läsning ger seedade framsteg, språkpoäng på
|
||
valfria ord i ordlistan. Implementerat; trädet (M8) bygger vidare på listan.
|
||
- Ska Oändligt läge dela sparfil med story eller ha egen?
|
||
- Hur många huvudbanor siktar vi på i storyn? (Påverkar M10:s omfattning.)
|