Jump-n-Run by ADKRU self-updates
Jump-and-Run WordPress-Plugin — White-Label Showcase fuer ADKRU (Robin Herbeck)
by Robin Herbeck · github.com/herbeckrobin/adkru-jumpnrun · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/herbeckrobin/adkru-jumpnrun/archive/refs/heads/main.zipShips its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.
Jump-and-Run WordPress-Plugin als White-Label-Showcase fuer ADKRU.
Status: v0.5.0 — feature-komplett und produktiv einsetzbar.
Was das hier ist
Das Repo IST das WordPress-Plugin. Einmal klonen oder eine Release-ZIP laden und installieren. Siehe ADR-002 zur Struktur-Entscheidung.
Das Plugin liefert zwei Shortcodes:
[jumpnrun]— das Spiel-Fenster (Canvas + UI-Overlay)[jumpnrun_scoreboard]— Top-N Highscore-Tabelle als eigenstaendiger Block
Werbung, Text und Layout drumherum baut der WordPress-Nutzer (Gutenberg, Elementor o.a.) selbst.
Features
- Spielbare Endless-Runner-Engine in TypeScript mit fixed Timestep (ADR-001), pixel-praezisen Hitboxen und Contain-Fit-Rendering
- Persistente Highscores in eigener DB-Tabelle, REST-Endpoints fuer Session-Start, Score-Submit, Top-N und Namens-Lookup
- Pre-Flight-Namenscheck im Game-Over-Overlay (keine Ueberschreibung fremder Scores)
- Asset-Pools als Custom Post Types (Hintergruende, Hindernisse, Plattformen) mit gewichteter Zufallsauswahl und Min-Level-Filter
- Zentrale Admin-Seite "Spiel-Assets" mit vier Tabs auf
WP_List_Table-Basis (Bulk-Actions, Trash/Restore, Suche, Pagination) - Sprite-Settings (Spielfigur, Coin) per Media-Picker, mit Seed-Button fuer die mitgelieferten Defaults
- Schema-driven Settings-Page mit Tabs nach Kategorie (Branding, Engine-Tuning, AntiCheat) — siehe ADR-005
- Rabattcode-Popup bei konfigurierbarem Level + 3-Sek-Countdown vor dem Weiterspielen
- Slim-AntiCheat ohne HMAC: Session-Validierung, Rate-Limiting per IP, Plausibilitaetspruefung der Scores — siehe ADR-004
- GitHub-Updater: Tag-Pushes werden automatisch als 1-Klick-Update im WP-Admin erkannt — siehe ADR-006
- PHPUnit-Tests fuer Config, Sanitizer, RateLimiter, ConfigSchema und Merge-Verhalten
Repo-Struktur
jumpnrun.php— Plugin-Entrysrc-php/— PHP-Code (PSR-4Jumpnrun\)Admin/— Admin-Menu, Settings, Scoreboard, Assets-Page, MetaBoxesApi/— REST-Controller + Endpoints (Session, Score, Highscore, Lookup)AntiCheat/— RateLimiter, Sanitizer, ValidatorAssets/— Asset-Pool-CPTs und Sprite-SettingsConfig/— ConfigService + ConfigSchema (Single-Source-of-Truth)Db/— Schema, Repositories, MigrationenShortcode/—[jumpnrun]und[jumpnrun_scoreboard]
src-js/engine/— framework-unabhaengige Spiel-Engine (TypeScript, DOM-frei)src-js/renderer/— Canvas-Renderer mit Sprite-Loadingsrc-js/client.ts— Vite-Entry, buendelt nachassets/game/client.jssrc-js/api-client.ts— REST-Client fuer Save-Flowdemo/— Standalone-Browser-Demo ohne WordPressdocs/adr/— Architecture Decision Records (001-006)legacy/— alter Vanilla-JS-Prototyp (Referenz, nicht ausfuehrbar)
Schnelleinstieg
- Installation im WordPress: siehe docs/install-guide.md
- Shortcode-Nutzung: siehe docs/integration-wordpress.md
- Gameplay anpassen: siehe docs/tuning-guide.md
- Architektur: siehe docs/architecture.md
- REST-API: siehe docs/api.md
- Release-Workflow: siehe docs/release-workflow.md
Entwicklung
bun install
composer install
bun run dev # Standalone-Demo ohne WordPress (Port 5173)
bun run test # Vitest
bun run build # Baut src-js/client.ts → assets/game/client.js
bun run typecheck # tsc --noEmit
bun run lint # Biome
bun run package-plugin # Erstellt release/jumpnrun-<version>.zip
Vollstaendiges WP-Plugin-Testing im DDEV (im Projekt-Root, nicht im Repo):
ddev start
ddev setup-wp # laedt WordPress, legt Plugin-Symlink an, aktiviert
# → https://adkru-jumpnrun.ddev.site
Requirements
- WordPress 6.5+
- PHP 8.2+
- Node 22+ / Bun 1.3+ (nur fuer Development)
Lizenz
GPL-2.0-or-later (WordPress-Standard).