Some checks failed
release / build-release (push) Failing after 27s
- internal/sim: rutbaserad Mover (4 riktningar, riktningsbyte vid rutgräns, bildrute-exakt ankomst) och Camera (följer, klampar, centrerar små kartor), med tester - internal/game: scener meny -> bana -> resultat, tangentbord + gamepad, tileset och spelaranimation, HUD, skriptläge (-script) för deterministiska skärmdumpar och tester - tools/genart genererar placeholder-grafik (tiles.png, player.png); tools/shots tar doc/img/*.png som README och wiki visar - bana 002-shinjuku (33x21) för kamerascroll; level.List/LoadFile/TrainAt - .gitea/workflows/release.yaml: vet + test + linux/windows-zippar till rullande latest på brasse-linux01-runnern (linux-amd64) - docs: roadmap M1 klar, tester, plan, README med bilder och styrning Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
65 lines
3.0 KiB
Markdown
65 lines
3.0 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 första spelbara banan → M3 japanska/skyltar
|
||
→ M4 lämmeltåget → M5 minikarta → M6 kort/biljetter/minispel → M7
|
||
svårighet/poäng/debuffar → M8 progression/sparfiler → 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: PixelMplus (fler kanji, 10/12 px) eller Misaki (8 px, tajtare)?
|
||
Avgörs i M3 när skyltar renderas på riktigt.
|
||
- 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.)
|