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

JP Subway Pussel

Pixel art-pusselspel: leda ett sällskap – lämmeltåget – genom japanska tågstationer byggda som labyrinter, hitta rätt tåg och komma fram till rätt resmål. Nästan alla skyltar är på japanska; ju mer du lär dig, desto mer kan du läsa. Sällskapet behöver mat, dryck och toapauser, tågkortet måste ha saldo, telefonen batteri, och på svåra banor tickar klockan.

Storyn följer några polare på semester i Japan, från landningen på flygplatsen till avresan. Efter storyn låses ett oändligt läge och New Game+ upp. Hela speldesignen finns i doc/spelbeskrivning.md.

Status: M0 – skelett och byggkedja klara (2026-10-23). Se doc/roadmap.md för vad som byggs härnäst.

Bygga

Enda kravet är Go ≥ 1.27. Linux behöver dessutom en C-kompilator och X11/GL-headers för fönsterhanteringen (Ebitengine/GLFW). Windows-bygget är ren Go och kan korsbyggas från Linux.

Linux

# Arch / Garuda
sudo pacman -S --needed go gcc pkgconf mesa libx11 libxrandr libxcursor libxinerama libxi libxxf86vm alsa-lib

# Debian / Ubuntu
sudo apt install golang gcc libc6-dev pkg-config libgl1-mesa-dev libx11-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxxf86vm-dev libasound2-dev
git clone <remote>/jp-subway-pussel.git && cd jp-subway-pussel
go run ./tools/build                                   # debug  → build/debug/
go run ./tools/build -mode release -os linux            # release → build/release/linux-amd64/
go run ./tools/build -mode release -os windows          # korsbygge → build/release/windows-amd64/
./build/debug/jp-subway-pussel                          # kör
go test ./...                                          # tester

Windows (bygga på Windows)

Installera Go från https://go.dev/dl/. Ingen C-kompilator behövs.

go run ./tools/build -mode release        # → build\release\windows-amd64\jp-subway-pussel.exe

VS Code

Öppna mappen med tillägget Go (golang.go, föreslås automatiskt).

Vad Hur
Bygga debug Ctrl+Shift+B (tasken build)
Debugga F5 – "Debug (dlv)". Tillägget erbjuder att installera delve första gången.
Bygga release Terminal › Run Task › build: release (linux-amd64) / (windows-amd64) / (alla plattformar)
Köra tester Terminal › Run Task › test, eller testknapparna i editorn

Resultatet av ett bygge

build/
├── debug/                       debug-bygge för den här datorn
│   ├── jp-subway-pussel
│   └── resources/
└── release/
    ├── linux-amd64/
    │   ├── jp-subway-pussel     en strippad binär
    │   └── resources/           sprites/  sound/  text/  data/
    └── windows-amd64/
        ├── jp-subway-pussel.exe
        └── resources/

Spelet letar efter resources/ bredvid binären, annars uppåt från arbetskatalogen (så go run och F5 fungerar), och JP_RESOURCES=/sökväg överstyr allt. Att distribuera spelet = zippa en plattformsmapp.

Flaggor

jp-subway-pussel -level 001-flygplatsen   # starta en viss bana
jp-subway-pussel -scale 3                 # fönsterstorlek (320x180 × skala)
jp-subway-pussel -smoke 90                # öppna fönster, avsluta efter 90 bildrutor (smoke-test)
jp-subway-pussel -version

Beroenden

Linux Windows
Bygga Go ≥ 1.27, gcc, pkgconf, mesa (GL-headers), libx11/libxrandr/libxcursor/libxinerama/libxi/libxxf86vm, alsa-lib Go ≥ 1.27
Köra libc, samt ett skrivbord med OpenGL (mesa) och X11 eller Wayland (XWayland), ALSA/PipeWire för ljud – laddas dynamiskt vid start Windows 10+ med DirectX 11 eller OpenGL
Go-moduler github.com/hajimehoshi/ebiten/v2 (spelbibliotek) + dess indirekta beroenden (purego, gomobile, x/sys, x/sync, x/image) samma

Release-binären för Linux är dynamiskt länkad bara mot libc; GL/X11 laddas vid körning, så den fungerar på alla vanliga distributioner.

Dokumentation

Struktur i korthet

cmd/jp-subway-pussel/   programstart
internal/game/          Ebitengine-loop och rendering (enda paketet som får känna till Ebitengine)
internal/level/         banformat, validering, framkomlighet
internal/res/           hittar och läser resources/
internal/rng/           seedad slump
tools/build/            byggverktyget
resources/              sprites/ sound/ text/ data/ – kopieras bredvid binären
doc/                    dokumentation
Description
- Några polare är på semester i Japan. - Spelet **börjar på flygplatsen** när man landar och **slutar när man ska tillbaka till flygplatsen**.
Readme 8.5 MiB
v0.1.0 Latest
2026-10-25 08:33:47 +01:00
Languages
Go 100%