All checks were successful
release / build-release (push) Successful in 1m41s
- sim.Wallet: IC-kort, kontanter, pappersbiljett, telefon med batteri, spenderat; följer med mellan banor (Game.Wallet) - internal/minigame: gemensamt Game-gränssnitt (Update/Done/Success), all slump från del-seeds: TopUp (hitta チャージ, belopp, mata sedlar), Ticket (taxetavla med resmål på japanska), Crowd (tidsfönster, två försök), Ride (stationerna passerar, kliv av vid resmålet) - sim.Run: spärren kräver biljett på biljettbanor annars användbart kort; telefonen ger ×1,1 fart men 15 % seedad omskanning (frysning 1,5 s), dött batteri gör kortet oanvändbart; automaten startar påfyllning eller biljettköp; tåget kontrollerar biljetten; fulla tåg kräver trängsel; resan avgör vinst/förlust (fel station, åkte förbi, fel tåg); StepMini låter klockan och sällskapet ticka medan rörelsen pausar - level: ticketRequired, rideStops, Train.Crowded; 002 är biljettbana med fullt tåg och fyra stopp; ordboken har stationer (kind) + sju nya namn - game: vyer för minispelen, plånbok i HUD, P i menyn = kort i telefonen, förlustorsaker och spenderat på resultatet, flaggor -phone/-card, skriptkommandon hold/waitstop; inforuta/minikarta döljs under minispel - plan: M7b (Björn) – tågvind, ankomstindikator nära rälsen, in-/utkörningsanimation för tåg och bussar – i spelbeskrivning, roadmap, testplan - docs/README/wiki med tre nya bilder (automat, biljettavla, tågresa) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
68 lines
3.2 KiB
Markdown
68 lines
3.2 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 (vind, indikator,
|
||
animation) → 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~~ – 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.)
|