Dein Spiel als native Android-App
JumPHP macht aus deinem Spiel eine echte Android-App, ganz ohne Browser: PHP 8.5, SDL, OpenGL ES und OpenAL laufen in der App, wie auf einem Computer. Sie funktioniert offline, auf Smartphones (ARM) und Tablets, ab Android 8.0.
Du brauchst ein JumPHP-Projekt auf deinem Computer (auf deinem Computer), Docker und für den Play Store ein Google-Play-Entwicklerkonto (einmalig 25 $). Dein Claude kann alles für dich erledigen: Sag ihm einfach „mach eine native Android-App aus meinem Spiel“.
Der andere Weg, die Trusted Web Activity, packt die Spielseite in Chrome: leichter, aber sie braucht das Netz und die Website. Mit demselben Paket und demselben Schlüssel ersetzt die native App die TWA im Play Store, wie eine neue Version.
Ein Befehl
bin/jumphp android mon-jeu
- Beim ersten Mal fragt er nach dem Paketnamen der App (
io.github.du.mon_jeu: Er ändert sich nicht mehr, sobald die App veröffentlicht ist) und erstellt deinen Upload-Schlüssel in~/.jumphp/android/keys/(den der TWA, falls das Spiel eine hat). Sichere ihn, er liegt nie in Git. - Er legt den Workflow
.github/workflows/android.ymlin deinem Projekt ab und schickt nach deinem Ja den Schlüssel in die Secrets deines GitHub-Repositorys (verschlüsselt, nur vom Workflow lesbar). - Er trägt die Version in
games/mon-jeu/android/app.jsonein, committet sie und pusht nach deinem Ja. - GitHub baut die App (beim ersten Mal ~25 Minuten, danach ~8: PHP und die Bibliotheken werden
zwischengespeichert) und veröffentlicht ein Release deines Repositorys mit der
.apk(für ein Smartphone) und der.aab(für Google Play), signiert mit deinem Schlüssel. Der Befehl lädt sie nachgames/mon-jeu/dist/android-native/herunter.
Die Folgeversionen: bin/jumphp android mon-jeu --version-name 1.1 (die Versionsnummer steigt jedes Mal um eins). Ohne GitHub: --local baut die App auf deinem Computer, in Docker.
Zum Ausprobieren auf deinem Smartphone: Schick ihm die .apk und öffne sie (erlaube „Installation unbekannter Apps“),
oder nutze adb install mon-jeu-1.0.apk.
Die Touch-Steuerung
Die Engine zeichnet die Bildschirmsteuerung selbst, wie im Browser: das Steuerkreuz (oder einen Joystick), A,
B und START, in den schwarzen Streifen an den Seiten, wenn es welche gibt. Sie wird in game.yaml eingestellt, wie für
den Browser:
game:
touch: { pad: stick, a: Space, b: Escape, labels: { a: SAUT } } # pad: stick = Joystick, sonst das Steuerkreuz
Die Zurück-Taste von Android entspricht Esc. Um sie auf deinem Computer zu sehen:
JUMPHP_TOUCH_CONTROLS=1 bin/jumphp run mon-jeu (mit der Maus).
In der App
- PHP 8.5, für Android kompiliert mit den Erweiterungen von JumPHP (SDL und seine Module für Bild, Sound und Schrift, OpenGL, OpenAL, gd, openssl, mbstring …), SDL2 und OpenAL Soft: alles, was das Spiel auf einem Computer zum Laufen bringt.
- Dein Spiel, beim ersten Start jeder Version entpackt (ein bis zwei Sekunden), im privaten Speicher der App. Spielstände und Optionen bleiben dort von einem Update zum nächsten erhalten.
- Der Name, das Symbol (das der PWA:
assets/icon.png) und die Ausrichtung (die des Spielformats) stammen ausgame.yaml.
Im Play Store
Alle Details (Schlüssel, Tests auf dem Smartphone, jede Erklärung der Play Console, Prüfung, Folgeversionen, Stolperfallen): Im Play Store veröffentlichen, Schritt für Schritt. Kurz gefasst:
- Erstelle die App in der Play Console (Name, Sprache, „Spiel“, kostenlos) und fülle die Erklärungen aus: Datenschutzerklärung (eine Seite, die sagt, dass das Spiel nichts erfasst), Inhaltseinstufung, Zielgruppe, keine Werbung.
- Play App-Signatur durch Google: Google behält den Schlüssel, der die App für die Smartphones signiert; deiner belegt nur, dass die Uploads von dir stammen (geht er verloren, kann Google ihn ersetzen).
- Interner Test: Testen und veröffentlichen > Interne Tests > Release erstellen > lade die
.aabhoch > Speichern > Prüfen > Einführen. Füge deine Tester hinzu, sie installieren über den Link von Google. - Der Store-Eintrag: Beschreibungen, Symbol 512 × 512 (
bin/jumphp builderzeugt es:dist/web/icon-512.png), ein Bild 1024 × 500, mindestens 2 Screenshots (bin/jumphp shot mon-jeu, oder auf einem Smartphone). - Produktion: Wenn die Tests gut sind, befördere die Version. Google prüft sie (einige Stunden bis einige Tage). Ein neues privates Konto muss zuerst 14 Tage lang 12 Tester haben.
Gut zu wissen
- HTTPS funktioniert (
$engine->http(), das Online-Spiel überwss://): Die Zertifikate werden mit dem Spiel ausgeliefert. - Die App wiegt 30 bis 40 MB (PHP und die Bibliotheken für zwei Prozessorarchitekturen).
Die technischen Details: docs/android-native.md in deinem Projekt.