laatste versie

This commit is contained in:
martijn.diersmann@pm.me
2026-09-26 23:25:04 +02:00
parent 32c7696bda
commit 4bdac1e6e8
9 changed files with 267 additions and 84 deletions
+11 -7
View File
@@ -7,10 +7,12 @@ deploybaar op je eigen Kubernetes-node.
## Features
- Verticale scrollende weg, portretmodus, **eenhandig besturen**
(linkerhelft / rechterhelft van het scherm vasthouden).
(zet je vinger op de baan; de auto rijdt direct naar die plek en blijft staan).
- Keyboard-up / pijltjes op desktop.
- **Host** opent de kamer met `?host=<token>` en start heimelijk met de `S`-toets
(30-seconden countdown, nieuwe aanmelders blijven welkom).
De host **rijdt niet mee**, maar volgt als toeschouwer de **koploper (#1)**
en ziet live de top 5 in het koploperspaneel.
- Obstakels: **pylonen** (vertragen) en **olievlekken** (wegslijden).
- Power-ups: **⚡ boost** en **🛡 schild** (respawnen na 4,5s).
- Live positie, snelheid, afstand, leaderboard en minimap.
@@ -28,18 +30,20 @@ npm start # → http://localhost:8080
Open `http://localhost:8080` op je laptop én op je telefoon (zelfde wifi).
Vul een naam in, klik aanmelden, en stuur met je vingers.
> 🎮 **De host is ook gewoon een speler.** Open als host:
> 🎮 **De host is toeschouwer en rijdt niet zelf mee.** Open als host:
> `http://localhost:8080/?host=dev-host`
> en druk op de **S**-toets om de start-telling in gang te zetten
> (pas als de kamer vol is of iedereen klaar is 😉).
> (pas als de kamer vol is of iedereen klaar is 😉). Tijdens de race volgt de
> **camera de nummer 1** (ook bij wisselende koppositie) en zie je live de
> **top 5 koplopers**; na afloop de volledige uitslag.
### Besturing
| Apparaat | Actie |
| --- | --- |
| Telefoon | Linkerhelft vasthouden = links, rechterhelft = rechts |
| Telefoon | Zet je vinger op de baan; de auto rijdt direct naar die plek en blijft staan tot je beweegt |
| Toetsenbord | `←` / `A` en `→` / `D` |
| Host | `S` in lobby of uitslag = race (laten) starten |
| Host | `S` in lobby of uitslag = race (laten) starten · camera volgt de koploper (#1), rijdt niet mee |
## Configuratie (omgevingsvariabelen)
@@ -130,8 +134,8 @@ test/simulate.js headless test (fluweel: 20 clients ipv 1)
- Engine loop 40 Hz; **snapshots op ~16 Hz**; clients **interpoleren** de rendering.
- Baan is **deterministisch** opgebouwd uit één random seed → eerlijk & identiek
voor elke speler.
- De host is een normale speler; de `host_start`-melding wordt alleen geaccepteerd
van sockets die met het juiste token zijn aangemeld.
- De host is een **toeschouwer** (neemt geen spelerslot in); de `host_start`-melding
wordt alleen geaccepteerd van sockets die met het juiste token zijn aangemeld.
## Flow & regels