
# Retro Asteroids Game
Retro-Arcade-Vektorgrafik-Spiel im Stil des Atari-Klassikers von 1979. Per Shortcode auf jeder Seite/jedem Beitrag einbindbar.
## Shortcode
„`
GAME HIER TESTEN
[retro_asteroids width=“900″ height=“650″]
„`
## Steuerung
– **Pfeiltaste links/rechts** – Raumschiff drehen
– **Strg (Ctrl)** – Schub/Beschleunigen
– **Leertaste** – Feuern
– **Touch (Mobilgeräte)** – On-Screen-Buttons unten am Spielfeld (Drehen, Schub, Feuer), erscheinen automatisch auf Touch-Geräten
## Features
– Vektorgrafik-Rendering per Canvas (Linien statt Sprites/Bilder), Glow-Effekt
– Asteroiden splitten beim Treffer (groß → mittel → klein), UFO-Gegner erscheint gelegentlich
– Leben-System (3 Leben), Level-Progression mit steigender Asteroiden-Zahl
– Globale Bestenliste (Top 10), direkt im Widget sichtbar
– Mehrere Instanzen auf einer Seite möglich (keine doppelten IDs)
– Responsive: Canvas skaliert automatisch auf Containerbreite
## DSGVO-Konformität
– Name + Score werden **nur** gespeichert, wenn der Spieler nach Spielende aktiv einen Namen einträgt **und** die Einwilligungs-Checkbox aktiv bestätigt (Art. 6 Abs. 1 lit. a DSGVO)
– Verlinkung zur Datenschutzerklärung erscheint automatisch neben der Checkbox, sofern in WordPress eine Datenschutz-Seite hinterlegt ist
– Gespeicherte IP-Adressen werden ausschließlich als SHA-256-Hash (mit AUTH_SALT) zur Missbrauchs-/Spam-Erkennung abgelegt, nie im Klartext, nie öffentlich angezeigt
– Automatische Löschung alter Einträge per WP-Cron (Standard: 730 Tage, konfigurierbar im Admin-Menü „Retro Asteroids“, 0 = deaktiviert)
– Vollständige Datenlöschung (Tabelle + Einstellungen + Cron-Job) beim Deinstallieren des Plugins
## Bot-/Spam-Schutz
– Honeypot-Feld (unsichtbar für Menschen, Bots füllen es meist aus)
– Rate-Limit: max. 3 Highscore-Einsendungen pro Stunde und IP-Hash
– Namensfilter gegen URLs, HTML-Tags, SQL-/Script-Injection-Muster
– Nur erlaubte Zeichen (Buchstaben, Zahlen, Leerzeichen, wenige Sonderzeichen), max. 20 Zeichen
– Admin kann verdächtige Einträge im Backend als „Bot“ markieren und einzeln oder gesammelt löschen
## Admin-Bereich
Menüpunkt **„Retro Asteroids“** im WordPress-Backend:
– Liste der letzten 200 Highscore-Einträge (Name, Score, Level, IP-Hash gekürzt, Datum)
– Einzelne Einträge löschen
– Einträge als „Bot“ markieren/entmarken, gesammelt löschen
– Aufbewahrungsdauer (Tage) für automatische Löschung einstellbar
## Self-Healing Datenbank
Da Updates bei dir immer per „Installiertes durch Hochgeladenes ersetzen“ erfolgen (Aktivierungs-Hook feuert dabei nicht), prüft das Plugin bei jedem Admin-Seitenaufruf automatisch per `SHOW TABLES`, ob die Tabelle existiert und die DB-Versionsnummer stimmt. Fehlt die Tabelle oder eine Spalte, wird sie automatisch neu angelegt/ergänzt (dbDelta + ALTER-TABLE-Fallback).
## Technische Hinweise
– Kein externes Branding, generisch und verkaufsfertig
– `display:none` ausschließlich per Inline-Style, niemals per CSS-Regel (Blogarise-Kompatibilität)
– Doppelte Wrapper-Selektoren + `!important` gegen Blogarise-Theme-Überschreibungen
– WordPress.org-Standards: Slug = Ordner = Hauptdatei = Textdomain, Author URI ≠ Plugin URI
– PHPCS-konform: `wp_unslash()`, `esc_html/esc_attr/esc_url`, `gmdate()`, Nonces auf allen AJAX-Routen
## Version
1.0.1 – Bugfix: Overlay-Sichtbarkeit (CSS-!important-Konflikt) und doppelte Render-Loops behoben