Neuigkeiten
Aktuelle Version: 0.15.0-beta.1 (beta, 2026-11-07).
v0.15.0-beta.1 – 2026-11-07 (Demo-Release rackrun.app)
- Versionierung (version.json, Anzeige im Spiel, Update-Hinweis), Beta-Kennzeichnung.
- Demo ohne Konto und Backend; Spielstand nur im Browser. Impressum/Datenschutz verweisen auf wirebit-studio.de.
- Webspace-Paket für Plesk (rackrun-webspace): Landingpage, Anleitung, FAQ, Support, Neuigkeiten, .htaccess mit CSP/Caching, robots/sitemap.
- Hilfe im Spiel: Support-Mail mit Systeminfo, Links zu Anleitung/FAQ.
v0.11 – 2026-11-06
- Doku finalisiert: docs/konzept-v0.11.md (Technikentscheidungen, Roadmap Kap. 2–5, Monetarisierungs-Hooks, Entscheidungsfragen). Doppelten v0.10-Block entfernt.
v0.10 – 2026-11-06
- Capacitor 7 (native/): iOS- und Android-Projekt angelegt, capacitor.config.json (webDir ../web/dist, appId-Platzhalter), `cap sync` läuft. Capacitor 7 statt 8 wegen Node 20. Nativer Build (Xcode/Android SDK) nicht möglich.
v0.9 – 2026-11-06
- Performance-Pass: Qualitätsstufen low/medium/high (web/src/quality.ts; URL `?q=`, gespeichert `rackrun.quality`, sonst Auto-Erkennung). Low: keine Schatten, kein MSAA, Pixelratio 1; Schatten nur auf high. Material je Farbe und Box-Geometrie je Maß geteilt (Flat-Color-Palette statt Textur, daher kein Atlas nötig). Kapitel per dynamic import (core/chapters.ts, eigener Chunk). Test web/test/perf.test.ts (Budget 50k Dreiecke).
v0.8 – 2026-11-06
- Deploy: infra/deploy.sh (Build + Typecheck + Backend :3000 + Demo :4173 ohne Root, `--check` nur prüfen), nginx-Vorlage (HTTPS, /api-Proxy, SW no-cache) und systemd-Unit für das Backend (Vorlagen, Root nötig), infra/make-selfsigned.sh (self-signed Zertifikat, Ausgabe gitignored). `vite preview` proxyt /api → Backend, damit Handy im Heimnetz die API über :4173 erreicht. demo.sh beendet alte Preview-Prozesse jetzt zuverlässig per Port.
v0.7 – 2026-11-06
- Backend (server/): Fastify-API mit Token-Accounts (Token nur als SHA-256-Hash gespeichert), Save-Sync mit optimistischer Revision (409 bei Konflikt, 512-kB-Limit), Web Push (VAPID-Key-Endpoint, Abo/Abmeldung, Test-Push für rack_full/power_outage/job_done, tote Abos werden entfernt). Speicher: SQLite via sql.js (WASM; better-sqlite3 scheiterte unter Node 20 / pnpm-Build-Skript-Sperre). VAPID-Keys lokal per server/scripts/gen-vapid.mjs nur in .env. 11 API-Tests.
v0.6 – 2026-11-06
- PWA: manifest.webmanifest, Icons (192/512/maskable/apple-touch, generiert via web/scripts/make-icons.mjs), Service Worker mit Build-Precache (Vite-Plugin rackrun-sw, versionierter Cache) für Offline-Start, SW-Registrierung nur im Prod-Build, relative Basis './'. Tests: web/test/pwa.test.ts, Playwright infra/browsertest/pwa.mjs (Offline-Reload).
v0.5 – 2026-11-06
- Items (7), Forschung (6, mit Voraussetzungen) und 4 Ereignisse (Stromausfall, Hitzewelle, DDoS, Konkurrent wirbt ab) als JSON in shared/{items,research,events}.json. Effekte (Einnahmen, Verbrauch, Kreis-Limit, Kühlung, Umgebungstemp., Immunität) werden in core/modifiers.ts aggregiert und in economy.step angewendet; Ereignisse deterministisch (seeded) mit Cooldown. Schema-/Hardcode-Tests in web/test/content.test.ts.
v0.4 – 2026-11-06
- Rack- + Stromkreis-System im Core: B16-Kreise (3680 W), Sicherung fliegt bei Überlast (manueller Reset), Geräte umsteckbar, Rack-Slots + Upgrade, Lüftereinschübe kühlen. Neue Geräte server/gpu/fan in shared/balancing.json, Tests in web/test/rack.test.ts.
v0.3 – 2026-11-06
- Kapitel 1 spielbar: Pi aufstellen, Steckdosenleiste, Bäcker-Auftrag (Telefon), Netzwerkkabel, Einnahmen, zweiter Pi kaufen. Schritte/Auftrag in shared/chapter1.json, Logik in web/src/core/chapter1.ts, HUD mit Questanzeige, Tap-zu-Objekt-Interaktion. Playwright-Durchspiel infra/browsertest/chapter1.mjs.
v0.2 – 2026-11-06
- Game-Core: Tick-System, Ressourcen Geld/Strom/Hitze, Offline-Progress (Cap 8 h), Save/Load via IndexedDB, Balancing in shared/balancing.json, Vitest-Tests.
v0.1 – 2026-11-05
- Repo + Ordnerstruktur, README, Regeln, Queue, Autopilot.
- Web-Grundgerüst: Vite + TS + Three.js, Keller-Szene (Low-Poly), Figur, Touch-/Maus-Kamera, Joystick, Tap-to-walk.
v0.12 – 2026-11-06 (Werkstatt, Karte, Kundenaufträge)
- Joystick repariert (Overlay schluckte Events) und einzige Laufsteuerung (+WASD); Tap-to-walk entfernt. Aktionsknopf „E" für Objekte in Reichweite.
- Neue Welt: Keller-Werkstatt (Werkbank, Lager, Telefon, Server-Ecke, Tür), Baumarkt (Elektro-Regal, Server & IT-Regal, Kasse), Kundenräume je Auftrag. Draußen kein Laufen – Ortswechsel über Karte.
- Perspektiven: Isometrisch / Von oben / Hinter der Figur (👁), automatische Nahansicht an Werkbank/Lager/Server.
- Aufträge: Nachricht alle ~40 s, 15 min gültig (max. 3), annehmen → Kundenraum → Fehler prüfen → „Kabel reparieren / verlegen / Bauteil tauschen" mit Material (Leitung klein 3x1,5, Leitung groß 3x2,5, Steckdose, Schalter, Sicherung) → Lohn. 6 Aufträge in shared/world.json.
- Werkbank: Verlängerungskabel, Kabeltrommel herstellen; Kasse verkauft Material. Startinventar im Lager.
- Server-Ecke: Geräte, Last, Temperatur, Sicherungen zurücksetzen; Server/Upgrades im Baumarkt.
- Tests: core/world (+7), E2E infra/browsertest/play.mjs. Kapitel-1-Tap-Story ist in der UI abgelöst (Code/Tests bleiben).
- Kamera vom Laufen entkoppelt: Yaw nur per Ziehen bzw. Q/R, nie automatisch; 3rd-Person nur Nah-Ansicht (Test infra/browsertest/camera.mjs).
v0.13 – 2026-11-06 (Rack-System, Sicherungskasten, Pause/Offline, Musik, Menü)
- Pause beim Verlassen des Tabs (visibilitychange): Tick stoppt, Stand wird gespeichert; Rückkehr zeigt „Willkommen zurück" mit Offline-Einnahmen (Dauer, Betrag, Sicherungsfälle). Auch beim Laden. Manuelle Pause im Menü.
- Session: Spielstand primär lokal (IndexedDB, persist angefragt), Auto-Konto per Token + optionaler Cloud-Sync (Konflikt-Dialog, Geräte-Code, Export/Import), Web-Lock gegen zwei Tabs.
- Sicherungskasten dynamisch (6 Plätze): B16-Sicherungen = Stromkreise, FI-Schalter (+10 % Toleranz); Teile aus dem Lager einbauen/ausbauen (zeitgesteuert).
- Rack: Hardware (Server, GPU, Netzteil, Router, Switch, Lüfter) wird im Baumarkt ins Lager gekauft, mitgenommen (tragen), auf einen Rack-Slot gebaut. Betrieb nur mit Stromzuleitung (Leitung groß ×2) + Netzteil (Kapazität) + Router + Switch + Patchkabel; Status je Gerät sichtbar; 3D-Rack und Zuleitungskabel dynamisch.
- Zeit statt Rushen: Reisen 5 s mit Fortschrittsanzeige, Prüfen/Reparieren/Einbauen/Herstellen mit Fortschrittsbalken und Arbeitsanimation. Kunde (NPC) begrüßt und nimmt die Arbeit ab (Abnahme 3 s) → Lohn.
- Menü ☰: Statistik (Geld, Einnahmen/h, Strom, Rack, Aufträge, Reparaturen, Offline, FPS/Dreiecke), Optionen (Musik, Effekte, Textgröße, Ansicht, Grafik), Konto/Sync, Hilfe.
- Audio: KI-Musik (ElevenLabs eleven_music_v2_5, assets in web/public/audio, CREDITS.md) + WebAudio-Effekte, startet nach erster Geste.
- Balancing: Server 0,15 €/s, GPU 0,55 €/s (vorher 0,6/2,4). Tests: +5 (Rack/Sicherungskasten), E2E infra/browsertest/play2.mjs (?fast=1 beschleunigt Zeitaktionen).
v0.14 – 2026-11-06 (Abwesenheit, Zeitschutz, Grafikstufen, Skins)
- Abwesenheit: separater Pause-Screen entfällt – beim Zurückkehren öffnet sich das normale Menü als „Pausiert" mit Offline-Einnahmen. Währenddessen nur Server-Einnahmen; keine neuen Aufträge, Angebote laufen nicht ab.
- Zeitschutz: Serverzeit (/api/time) + monotone Uhr; Uhr vorstellen bringt nichts; unverifiziert max. 1 h (docs/anticheat.md). Tests clock.test.ts + Server-Test.
- Grafik: Stufen Niedrig/Mittel/Hoch/Auto + Renderauflösung 60–125 %. Hoch = detaillierte Räume, Schatten, Standard-Materialien (~8k Dreiecke); Niedrig = abgespeckt (~0,5k). Auto senkt bei Ruckeln (<38 FPS) automatisch.
- Neue Figur: Elektriker/Cloud-Engineer (Schutzhelm mit Stirnlampe, Schutzbrille, Warnweste, Werkzeuggürtel, Laptop-Rucksack mit Wolken-Emblem, animierte Arme) + 3 Skins (Cloud, Neon, Dark).
- Ausbau: Ereignis-Anzeige (Stromausfall, Hitzewelle, DDoS …), Forschung im Menü, Rack-Erweiterung (+8 HE), 4 neue Aufträge mit Freischaltung nach erledigten Jobs, Panels aktualisieren ohne Klicks zu verlieren.
v0.15 – 2026-11-06 (Rebranding, neue UI, Shop, Level, Garage, Demo)
- Rebranding: neues Farb-/Komponentensystem (Navy/Amber/Cyan), eigene Icon-Mediathek (73 SVG, kein Emoji mehr irgendwo), Logo-Marke, Ladebildschirm.
- Ladebildschirm: das Spiel „entpixelt" sich live hinter dem Logo; „Spielen" startet die Musik (nahtlos aus dem Ladevorgang). Ortswechsel: Szene pixelt aus, Szenenwechsel, pixelt wieder ein.
- Menüs komplett neu: Dialogkarten mit Icons; Hauptmenü mit Seitenleiste (mobil: untere Leiste): Übersicht, Shop, Konto, Optionen, Hilfe, Debug (nur ?dev=1). Forschung ist ausgeblendet (nach hinten verschoben).
- Level/XP (Aufträge, Reparaturen, Einbauten), Belohnung Goldbarren; Freischaltungen (Hardware, Aufträge, Garage). Neuer Ort: Garage (Level 4, Miete 600 EUR) mit eigenem Rack (Mehrfach-Rack-System).
- Zweite Währung: Goldbarren. Shop: Goldpakete (Zahlung erst nach serverseitiger Konfiguration, in der Demo gesperrt), Kosmetik (Skins), Booster, Dauerhaftes, Komfort. Keine Zufallskisten.
- Konto: Anbieter-Status vom Server; ohne Konfiguration nur serverseitige Fehlermeldung. Supabase-Vorbereitung (Auth-/Store-Abstraktion, Migration, RLS, Wallet/Ledger-API) siehe docs/backend.md.
- Debug: Charakter-Ansicht (Turntable), Skin-Wechsel, Cheats. Eigene Renders der Skins (tools/render-art.mjs).
- Demo-Build (`pnpm build:demo`): rein browserbasiert, ohne Server/Konto, noindex; Impressum und vorläufige Datenschutzerklärung (Entwürfe).
- Builder-Studio (studio/): Raum-/Inhalts-Editor als zweiter Webstack; Raumformat shared/rooms/*.json.
- Native: iOS/iPadOS/Android vervollständigt (docs/native.md), NativeClock/NativeIap-Plugins.