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