// TECH //

Wie Offline-Einnahmen ganz ohne Server funktionieren

Der Zeitstempel-Trick, und warum er eine Decke braucht

Schließ Cozy Fishing, komm am nächsten Morgen zurück, und das Spiel sagt dir, dass die Crew weitergefischt hat, während du weg warst, und drückt dir einen Haufen Geld in die Hand. Nichts lief. Der Tab war zu. Es gibt nirgends in diesem Spiel einen Server, der hätte mitzählen können.

Das Ganze ist eine einzige Subtraktion.

Eine Zahl, beim Rausgehen notiert

Jedes Mal, wenn Cozy Fishing deinen Fortschritt speichert, notiert es auch, wie spät es ist. Nicht die Zeit auf einem Zifferblatt, sondern einen Zeitstempel: eine Zählung der Millisekunden seit Anfang 1970, dem Moment, ab dem Computer sich geeinigt haben zu zählen.

Das Spiel legt das unter dem Namen lastSeen im Speicher deines Browsers ab, neben deinen Upgrades und deiner besten Tiefe. Es wird geschrieben, wann immer etwas passiert, das sich zu speichern lohnt, und noch einmal in dem Moment, in dem du den Tab wechselst, sodass die notierte Zeit wirklich das letzte Mal ist, das du hingeschaut hast.

Die Rechnung auf dem Rückweg

Wenn das Spiel lädt, liest es lastSeen, fragt den Browser, wie spät es jetzt ist, und subtrahiert. Diese Differenz ist die gesamte Eingabe. Daraus rechnet das Spiel eine Auszahlung aus, zeigt dir einen Bildschirm, und du tippst zum Einsammeln.

Die Rate kommt aus genau einem Upgrade: Sonar. Nichts anderes fließt ein. Deine Leine, deine Haken und deine Rolle ändern, was passiert, während du spielst, und haben keinerlei Einfluss auf die Zeit, in der du weg bist.

Jede Sonar-Stufe ist mehr wert als die vorige, und der Abstand zwischen den Stufen wächst, je höher du steigst. Jede neue Stufe lässt die davor klein aussehen, und das ist die Form, die jedes Idle-Upgrade haben will.

Warum es eine Decke geben muss

Leute für verstrichene Zeit zu bezahlen hat ein offensichtliches Loch. Die Uhr, die das Spiel liest, ist die Uhr auf deinem Gerät, und diese Uhr gehört dir. Du kannst sie verstellen. Dreh sie ein Jahr vor, und die Subtraktion meldet brav ein Jahr Abwesenheit.

Ohne Server gibt es keine zweite Meinung. Nichts sonst auf der Welt weiß, wie spät es wirklich ist, also gibt es nichts zum Gegenprüfen. Idle-Mathematik muss unter der Annahme geschrieben werden, dass die Zahl, die sie bekommt, Unsinn sein kann.

Cozy Fishing löst das auf die grobe Art. Bevor es irgendetwas anderes tut, klemmt es die verstrichene Zeit auf höchstens acht Stunden. Neun Stunden weg, du wirst für acht bezahlt. Ein Jahr weg, du wirst für acht bezahlt. Was auch immer deine Sonar-Stufe ist, es gibt eine größte Auszahlung, die Abwesenheit je erzeugen kann, und keine Uhr auf der Welt kann sie höher reden. Ein Prestige-Bonus wird hinterher beim Einsammeln draufmultipliziert, aber der Teil, der von der verstrichenen Zeit abhängt, ist festgenagelt, bevor der Multiplikator ihn je sieht.

Die Decke ist nicht da, um jemanden fürs Ausschlafen zu bestrafen. Sie existiert, weil sie aus einer unbegrenzten Zahl eine begrenzte macht, und eine begrenzte Zahl kann die Wirtschaft nicht kaputtmachen, egal, was man ihr füttert.

Rückwärts laufende Uhren und winzige Lücken

Zwei kleinere Wächter sitzen neben der Decke. Kommt die verstrichene Zeit negativ heraus, was passiert, wenn eine Uhr zurückgedreht wurde, ist die Auszahlung null. Die Prüfung fragt schlicht, ob die Lücke mindestens eine Minute beträgt, und eine negative Zahl fällt dabei so sauber durch wie eine von fünf Sekunden, sodass ein verdrehter Zeitstempel ins Nichts läuft, statt etwas Wildes zu erzeugen.

Die Untergrenze von einer Minute erledigt das andere Ende. Die Seite neu zu laden oder kurz eine Nachricht zu checken sollte keinen Belohnungsbildschirm auslösen. Unter einer Minute Abwesenheit sagt das Spiel nichts.

Warum es dieses System überhaupt geben muss

Es gibt ein Detail in der Hauptschleife des Spiels, das das Ganze notwendig macht. Cozy Fishing misst, wie viel Zeit seit dem letzten Frame vergangen ist, und weigert sich, eine Messung über einem Bruchteil einer Sekunde zu glauben. Die meisten Spiele tun das, weil es verhindert, dass ein Spiel, das zwei Minuten pausiert war, zwei Minuten Physik in einem einzigen katastrophalen Schritt nachholt.

Der Nebeneffekt: Ein Tab im Hintergrund verdient wirklich nichts. Die Frames bleiben aus, und die wenigen, die ankommen, können die Differenz nicht ausgleichen. Aktives Spielen und Abwesenheit sind zwei getrennte Systeme, weil das Spiel sich weigert, das eine für das andere ausgeben zu lassen.

Auf CrazyGames spielen Über Cozy Fishing