← Zurück zu den Projekten

Quantenficus

Incremental-/Idle-Game: ein Quanten-Ficus mit Prestige-System, eigenem Big-Number-Formatter und Cloud-Save.

Quantenficus

Quantenficus ist ein browserbasiertes Idle-/Incremental-Game: Spieler:innen züchten einen „Quanten-Ficus“, Klicken erzeugt Blätter, Upgrades erzeugen passives Einkommen, ein zweistufiges Prestige-System schaltet Meta-Progression frei. Ein klassisches Genre-Muster, mit eigenem Feature-Set aus Bosskämpfen, Sporenbörse, Symbionten, Gewächshaus und Artefakten.

Galerie

Case Study

Ausgangslage

Ein Idle-Game als Nebenprojekt — mit dem Ziel, das Genre nicht nur zu kopieren, sondern die üblichen technischen Fallstricke sauber zu lösen.

Herausforderung

Zahlen wachsen in einem Idle-Game exponentiell über den sicheren Bereich von IEEE-754-Doubles hinaus. Gelöst über eine eigene 33-stufige Suffix-Tabelle mit Fallback auf wissenschaftliche Notation, NaN-/Infinity-Schutz und einem eigenen JSON-Replacer/Reviver, der Zahlen jenseits von Number.MAX_SAFE_INTEGER als getaggte Strings serialisiert, um Präzisionsverlust beim Speichern in localStorage und Supabase zu vermeiden. Zweites Problem: die Offline-Fortschrittsberechnung — Zeitstempel-Delta seit dem letzten Speichern, gekappt, mit Multiplikatoren durch freigeschaltete Forschungen und einer Mindestschwelle, unter der sie gar nicht erst greift.

Vorgehen

React 18.3 mit TypeScript 5.5, Vite als Build-Tool, Vite-PWA-Plugin für Offline-Fähigkeit. Kein externes State-Management — der gesamte Spielzustand lebt in einem einzigen Custom Hook. Persistenz zweistufig: synchron in localStorage bei jeder Zustandsänderung, optional zusätzlich über Supabase mit periodischem Cloud-Sync.

Entscheidungen

Eigener Big-Number-Formatter statt Library

Volle Kontrolle über deutsches Zahlenformat und eine eigene Suffix-Tabelle statt einer fertigen Bibliothek.

Ein Hook statt Reducer-Bibliothek

Der gesamte Spielzustand lebt in einem einzigen Custom Hook — bewusster Verzicht auf Redux/Zustand bei diesem Umfang.

Cloud-Sync als Fortschrittsvergleich statt Last-Write-Wins

Konflikte werden nach dem höheren Gesamtfortschritt aufgelöst, um Datenverlust bei Multi-Device-Nutzung zu vermeiden.

Getrennte Speicher-Schlüssel für Zustand und Zeitstempel

Die Offline-Berechnung bleibt unabhängig vom Parsen des restlichen Spielzustands.

Defensive Feld-Fallbacks statt Schema-Version

Alte Spielstände laden robust weiter, auch ohne explizites Versionsfeld.

Eigenanteil

Vollständige Spiellogik, das Big-Number-System, die Offline-Fortschrittsberechnung, den Cloud-Sync-Hook, die PWA-Konfiguration, das Supabase-Schema sowie Deploy-Pipeline und Fehler-Monitoring.

Ergebnisse

Commits
64
Kernmodul
eigener Big-Number-Formatter mit 33 Suffix-Stufen statt einer externen Library
Status
live, als PWA installierbar

Suche & Navigation

Navigieren Öffnen Esc Schließen