- 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>
3.2 KiB
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.
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.
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. Vad som ska vara testat per milstolpe: mal-och-tester.md.
Idéer till expansioner (ej beslutade)
- Baneditor i spelet eller ett
tools/levelchecksom 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/levelskan 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 iresources/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.)