Seed: Home.md med arkitektur, designbeslut och länkar till doc/
58
Home.md
Normal file
58
Home.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# Metro Puzzle JP – wiki
|
||||||
|
|
||||||
|
Pixel art-pusselspel: led *lämmeltåget* (ditt sällskap) genom japanska
|
||||||
|
tågstationer byggda som labyrinter, läs skyltarna, hitta rätt tåg och kom fram
|
||||||
|
till rätt resmål.
|
||||||
|
|
||||||
|
**Den detaljerade dokumentationen ligger i repot** och är alltid sanningen:
|
||||||
|
|
||||||
|
| Fil i repot | Innehåll |
|
||||||
|
|-------------|----------|
|
||||||
|
| [`README.md`](../src/branch/master/README.md) | Bygga, köra, testa, beroenden per OS |
|
||||||
|
| [`doc/plan.md`](../src/branch/master/doc/plan.md) | Navet: mål, stack, milstolpar, öppna frågor |
|
||||||
|
| [`doc/spelbeskrivning.md`](../src/branch/master/doc/spelbeskrivning.md) | Hela speldesignen, renskriven |
|
||||||
|
| [`doc/roadmap.md`](../src/branch/master/doc/roadmap.md) | Teknikval, katalogstruktur, milstolpar M0–M12 |
|
||||||
|
| [`doc/mal-och-tester.md`](../src/branch/master/doc/mal-och-tester.md) | Projektmål, teststrategi, checklistor |
|
||||||
|
|
||||||
|
## Arkitektur i korthet
|
||||||
|
|
||||||
|
```
|
||||||
|
cmd/metro-puzzle-jp programstart, flaggor
|
||||||
|
internal/game Ebitengine: scener (meny → bana → resultat), rendering, input
|
||||||
|
internal/sim ren spellogik: rutbaserad rörelse, kollision, kamera
|
||||||
|
internal/level banformat (JSON), validering, BFS-lösbarhet
|
||||||
|
internal/res hittar resources/ (env → bredvid binären → uppåt från cwd)
|
||||||
|
internal/rng seedad slump (PCG), del-seeds per kontext
|
||||||
|
internal/archtest beroenderegel: bara game/ui/audio + cmd får röra Ebitengine
|
||||||
|
tools/build byggverktyg i Go: debug/release, Linux/Windows, kopierar resources/
|
||||||
|
tools/genart genererar placeholder-grafik (tileset, spelare) tills riktig pixel art finns
|
||||||
|
resources/ sprites/ sound/ text/ data/ – skeppas bredvid binären
|
||||||
|
```
|
||||||
|
|
||||||
|
## Designbeslut
|
||||||
|
|
||||||
|
- **Go + Ebitengine** för att Go är enda byggverktyget och Windows-binären
|
||||||
|
korsbyggs från Linux utan C-kompilator (`CGO_ENABLED=0`). Alternativen
|
||||||
|
(Godot, Rust, C++/raylib, Love2D) och skälen står i roadmapen.
|
||||||
|
- **Rutbaserad rörelse** (en ruta i taget, mjukt interpolerad). Gör
|
||||||
|
labyrintkollision trivial och gör att sällskapet senare kan följa ledarens
|
||||||
|
spår exakt.
|
||||||
|
- **Intern upplösning 320×180, 16 px-rutor**, heltalsskalning till fönstret.
|
||||||
|
- **All slump via seed.** Minispel och oändligt läge ska gå att återskapa
|
||||||
|
från sparfilen.
|
||||||
|
- **Data i JSON under `resources/`**, validerad av tester: en bana som inte
|
||||||
|
går att klara stoppar `go test`.
|
||||||
|
- **En binär + `resources/`** per plattform i `build/release/<os>-<arch>/`.
|
||||||
|
Att distribuera = zippa mappen.
|
||||||
|
|
||||||
|
## Bygg och release
|
||||||
|
|
||||||
|
- Lokalt: `go run ./tools/build [-mode release] [-os windows]`, se README.
|
||||||
|
- CI: `.gitea/workflows/release.yaml` kör tester och bygger Linux- och
|
||||||
|
Windows-zippar på **brasse-linux01-runnern** (label `linux-amd64`, aldrig
|
||||||
|
Pi5:n) och lägger dem på den rullande releasen `latest`; en tagg `vX.Y.Z`
|
||||||
|
ger en versionerad release.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
Se "Status" i README och milstolparna i `doc/roadmap.md`.
|
||||||
Reference in New Issue
Block a user