Pocket Planet Wiki

Benachrichtigungen

Lokale, entfernte und Spiel-Benachrichtigungen – ehrlich und ohne Spam.

Konzeptphase. Interne Planungsfassung, Stand 04.11.2026. Pocket Planet ist noch in Entwicklung – Inhalte, Zahlen und Abläufe können sich ändern.

13.1 Drei Arten im Vergleich

Im SpielLokalRemote Push
WasToasts, Rückkehr-Karte, Chronik-Zählervom Gerät selbst geplantvom Server (FCM/APNs)
InfrastrukturkeinePlugin, keine ServerFirebase Cloud Messaging, Server/Konsole, Token-Verwaltung
Datenschutzunkritischunkritisch (keine Daten verlassen das Gerät)Geräte-Token = personenbezogenes Datum → Datenschutzerklärung, Data-Safety
Wahrheitsgehaltexaktexakt, wenn aus der VorausberechnungServer kennt den Spielstand nicht → nur allgemeine Botschaften
MVP✅✅❌ (frühestens Phase 3, nur für Live-Events)

[Vorschlag] MVP = im Spiel + lokal. Remote Push bringt für ein Offline-Spiel ohne Server keinen Inhalt, den lokale Benachrichtigungen nicht ehrlicher liefern könnten.

13.2 Technik

  • Android: Plugin „Android Notification Scheduler“ (MIT, ursprünglich cengiz-pz, jetzt godot-mobile-plugins) – [Fakt] letzte gefundene Listung für Godot 4.3 (README). [Annahme] Kompatibilität mit 4.7 ungeprüft → Ticket T-24 testet sie zuerst. Fallback: eigenes kleines Android-Plugin v2 (Kotlin, AlarmManager + NotificationCompat, ~150 Zeilen) nach dem Muster von Bellmoors Analytics-Plugin.
  • iOS (später): „iOS Notification Scheduler“ aus godot-sdk-integrations (Listung für Godot 4.5/4.6) (Asset Library).
  • Berechtigung: Android 13+ verlangt POST_NOTIFICATIONS zur Laufzeit. Wir fragen nicht beim Start, sondern am Ende der ersten Sitzung, mit Begründung im Spiel („Soll dein Planet dir Bescheid geben, wenn etwas Besonderes passiert? Höchstens einmal am Tag.“). Ablehnung wird respektiert. Ein erneutes Angebot kommt höchstens einmal, nach 7 Tagen, aus den Einstellungen heraus.
  • Kanäle (Android): planet_events (Standard), energy (niedrige Wichtigkeit). Der Spieler kann sie im System einzeln abschalten.

13.3 Nur wahre Benachrichtigungen – das Verfahren

  1. Beim Pausieren rechnet offline.forecast(state, 72) die nächsten 12 h in denselben Makroschritten voraus, die später beim Öffnen gerechnet werden (03 §3.7). Laufzeit ≤ 1,5 s im Worker-Thread. Android gibt beim Pausieren genug Zeit; bricht die Berechnung ab, wird nur „Energie voll“ geplant.
  2. Ergebnis: Liste von ForecastHit {step, kind, weight, text_key, params}.
  3. notify.schedule_from_forecast() wählt höchstens einen Treffer mit dem höchsten Gewicht ≥ Schwelle und plant ihn zum Zeitpunkt pause_time + step × 10 min.
  4. Beim Öffnen werden alle geplanten Benachrichtigungen gelöscht und beim nächsten Pausieren neu geplant.
  5. Weil das Nachrechnen deterministisch dieselben Schritte durchläuft, ist das gemeldete Ereignis wirklich passiert, wenn der Spieler öffnet. Test tests/test_offline.gd sichert das ab.

Ausnahme: Ereignisse unter die Offline-Schutzregel (02 §2.8) werden als „steht bevor – deine Entscheidung“ formuliert, nie als „ist passiert“.

13.4 Ereignisse und Texte

AuslöserGewichtBeispieltext (de)Kanal
Neue Art durch Evolutionssprung (Karte wartet)70„Die Glimmerflosser stehen an der Küste. Wie geht ihre Geschichte weiter?“planet_events
Erster Stamm / Dorf / Stadt90„Am Fluss von Ilva brennt das erste Dorffeuer.“planet_events
Epochenziel erfüllt85„Dein Planet hat ein neues Zeitalter erreicht.“planet_events
Ereignis steht bevor (Schutzregel)80„Am Nordpol wächst das Eis. Eine Eiszeit kündigt sich an.“planet_events
Legende entdeckt95„Etwas Seltenes ist in den Kristallbergen erwacht.“planet_events
Tagesziele neu30„Drei neue Aufgaben für deinen Planeten.“energy
Energie voll20„Deine Schöpfungsenergie ist wieder voll.“energy

Texte stammen aus Vorlagen mit Namen aus dem Spielstand. Keine Ausrufezeichen-Ketten, keine Dringlichkeit („Jetzt!“), keine Verlustdrohung („Deine Art stirbt!“).

13.5 Spam-Schutz

  • Höchstens 1 Benachrichtigung pro Tag, höchstens 4 pro Woche.
  • Ruhezeiten 21:00–09:00 Ortszeit (einstellbar): Fällt ein Treffer hinein, wird er auf 09:00 verschoben, aber nur, wenn das Ereignis bis dahin noch gilt (sonst verworfen).
  • Keine Benachrichtigung innerhalb von 2 h nach dem letzten Öffnen.
  • Nach 3 ignorierten Benachrichtigungen in Folge: Frequenz halbiert. Nach 14 Tagen ohne Öffnen: gar keine mehr (kein Werben um Abgewanderte).
  • „Energie voll“ nur, wenn die Energie beim letzten Pausieren unter 30 % lag.

13.6 Einstellungen

Einstellungen → Benachrichtigungen: Hauptschalter · „Besondere Ereignisse“ · „Energie & Aufgaben“ · Ruhezeiten von/bis. Standard nach Zustimmung: Ereignisse an, Energie aus.

13.7 Datenschutz

Lokale Benachrichtigungen verarbeiten keine Daten außerhalb des Geräts. In der Datenschutzerklärung kurz erwähnen; im Play-Formular „Datensicherheit“ entsteht dadurch kein neuer Datentyp. Remote Push (Phase 3) würde Geräte-Token erzeugen → dann Datenschutzerklärung und Data-Safety-Angaben anpassen.