Ein Spiel mit JumPHP erstellen
JumPHP ist ein Framework, mit dem du 2D-Retro-Spiele in PHP schreibst. Derselbe Code läuft auf dem Desktop (PHP + SDL2, in einem echten Fenster) und im Browser (PHP, kompiliert zu WebAssembly): So funktionieren alle Spiele auf dieser Website. Es gibt mehrere Wege, einzusteigen, vom schnellsten bis zum umfassendsten.
| Weg | Konto | Was du brauchst | Für wen |
|---|---|---|---|
| Sandbox | nein | einen Browser | in 1 Minute ausprobieren: ein Hello World ändern und starten |
| Mit deinem Claude | GitHub | Claude Code + Docker | dein Spiel beschreiben und es schreiben, testen und veröffentlichen lassen |
| Online-Editor | GitHub | einen Browser | ein veröffentlichtes Spiel anpassen oder das Spiel eines anderen forken |
| Auf deinem Computer | nein (GitHub zum Veröffentlichen) | Docker | wie ein Profi entwickeln: Tests, Screenshots, Browser-Build. In einer Zeile: curl -fsSL https://jumphp.net/install.sh | sh |
| Ein Repository importieren | GitHub | ein JumPHP-Repository | ein bereits vorhandenes Spiel hier veröffentlichen |
| Amstrad-CPC-Remake | GitHub | die .dsk-Diskette des Spiels |
ein CPC-Spiel mit seiner Originalgrafik und -musik neu bauen |
| Portierung eines bestehenden Spiels | GitHub | sein Quellcode | ein altes Spiel (C, Pascal, BASIC …) nach PHP übersetzen |
Danach bauen die Tutorials Schritt für Schritt ein Spiel auf:
- Hello World: ein Menü, ein Text, ein Sound
- Eine Spielfigur, die sich bewegt und animiert wird
- Ein Jump 'n' Run: Level, Kollisionen, Kamera
- Sound und Musik
- Menüs, Optionen, Pause und Sprachen
- Punktestände und Optionen speichern
- Online-Multiplayer
- Die Startseite des Spiels und ihre Veröffentlichung
Ist das Spiel fertig: bring es auf Google Play (eine Android-App, erstellt mit bin/jumphp twa).
Und für Programme, die das Verzeichnis auslesen wollen: die öffentliche API.
So funktioniert ein JumPHP-Spiel
Ein Spiel ist ein Ordner games/<id>/ in einem JumPHP-Projekt:
games/mon-jeu/
config/game.yaml der Titel, die Auflösung (320 × 180 …), die erste Szene
config/input.yaml die Aktionen (springen, schießen …) und ihre Tasten, Gamepad, Touchscreen
src/Scene/*.php die Bildschirme: Titel, Spiel, Pause …
src/Entity/*.php alles, was sich bewegt: der Held, die Gegner …
assets/ Bilder, Sounds, Musik, Level (optional: alles lässt sich auch in PHP zeichnen)
site/ (optional) die Startseite des Spiels
In jedem Frame (60-mal pro Sekunde) ruft die Engine update($dt) der angezeigten Szene auf (hier änderst du den Zustand des
Spiels) und danach render($r) (hier zeichnest du). Die Koordinaten sind „virtuelle“ Pixel (die Auflösung des Spiels):
Die Engine skaliert das Bild auf die Größe des Bildschirms.
Der vollständige Vertrag des Frameworks, für Menschen wie für KIs, ist die Datei AGENTS.md im JumPHP-Repository.