Files
metro-puzzle-jp/doc/plan.md
claude c1f9546af6 M0: skelett, byggkedja och dokumentation för JP Subway Pussel
- Go 1.27 + Ebitengine v2.10, intern upplösning 320x180 med heltalsskalning
- internal/res (resursuppslag), internal/rng (seedad slump), internal/level
  (banformat, validering, BFS-lösbarhet) med tester; internal/archtest
  kontrollerar att bara presentationslagret beror på Ebitengine
- tools/build: debug -> build/debug/, release -> build/release/<os>-<arch>/
  med resources/ bredvid binären; Windows korsbyggs utan C-verktyg
- VS Code tasks (build/test/release) och launch (dlv)
- Första banan 001-flygplatsen, sv/en-texter, skyltordbok, placeholder-sprite
- doc/: spelbeskrivning (renskriven), mål och tester, roadmap med teknikval
  (M0–M12), plan.md; README med bygg- och beroendeinformation

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-23 18:52:10 +02:00

2.9 KiB
Raw Blame History

jp-subway-pussel – 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), när projektet ska delas: build/release/<os>-<arch>/ är redan formen som en release-zip ska ha. Repot är lokalt nu och synkas till Gitea senare (Björn skapar repot och lägger till claude som medlem, därefter git remote add origin gitea-claude:brasse/jp-subway-pussel.git).

Milstolpar

M0 skelett ✓ → M1 rörelse → 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. Vad som ska vara testat per milstolpe: 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: behålla pussel (svenska) eller byta till puzzle?
  • "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.)