All checks were successful
release / build-release (push) Successful in 1m34s
- level: Point har Z; banor kan ha floors (lika stora rutnät med namn), gamla grid-banor läses som en våning; trappor U/D på samma x,y en våning upp/ner valideras parvis; Neighbors ger grannar över våningar så att Path, lösbarhet, spärregel och Unreachable fungerar; skyltar har z - sim: att kliva på en trappa flyttar spelaren till andra änden (FloorChanges); dimman är per våning och avslöjar trappans andra ände; tåg hörs/syns bara på egen våning - game: bara spelarens våning ritas (följare på andra våningar döljs), HUD och minikarta visar våningens namn, trappgrafik i genart och färg på minikartan - bana 004 Tokyo (svårighet 3, tre i sällskapet): start under mark på B1, trappa upp till 1F med perronger; generatorn gör våningar med trappor som flaskhalsar; ordboken utökad - testbotar och tools/shots förstår trappor; två våningsbilder - docs/README/wiki uppdaterade Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
69 lines
3.4 KiB
Markdown
69 lines
3.4 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? (Sparfilen har
|
||
nu ett versionsfält och `Current`-referens; oändligt läge kan få en egen
|
||
sektion i samma fil.)
|
||
- Hur många huvudbanor siktar vi på i storyn? (Påverkar M10:s omfattning.)
|