PL

Twoja gra jako natywna aplikacja na Androida

JumPHP robi z twojej gry prawdziwą aplikację na Androida, bez przeglądarki: PHP 8.5, SDL, OpenGL ES i OpenAL działają w aplikacji, jak na komputerze. Działa offline, na telefonach (ARM) i tabletach, z Androidem 8.0 lub nowszym.

Potrzebne są: projekt JumPHP na twoim komputerze (na twoim komputerze), Docker, a do Sklepu Play konto deweloperskie Google Play (25 $ jednorazowo). Twój Claude może zrobić wszystko za ciebie: poproś go „zrób natywną aplikację na Androida z mojej gry”.

Drugi sposób, Trusted Web Activity, umieszcza stronę gry w Chrome: lżejszy, ale wymaga sieci i serwisu. Z tym samym pakietem i tym samym kluczem aplikacja natywna zastępuje TWA w Sklepie Play, jak nowa wersja.

Jedno polecenie

bin/jumphp android mon-jeu
  1. Za pierwszym razem pyta o nazwę pakietu aplikacji (io.github.ty.mon_jeu: po publikacji już się nie zmienia) i tworzy twój klucz wysyłania w ~/.jumphp/android/keys/ (ten z TWA, jeśli gra go ma). Zrób jego kopię zapasową, nigdy nie trafia do git.
  2. Umieszcza workflow .github/workflows/android.yml w twoim projekcie i, po twoim „tak”, wysyła klucz do sekretów twojego repozytorium GitHub (zaszyfrowanych, odczytywanych tylko przez workflow).
  3. Zapisuje wersję w games/mon-jeu/android/app.json, robi commit i, po twoim „tak”, wysyła zmiany.
  4. GitHub buduje aplikację (za pierwszym razem ~25 minut, potem ~8: PHP i biblioteki są w pamięci podręcznej) i publikuje release twojego repozytorium z .apk (na telefon) i .aab (do Google Play), podpisanymi twoim kluczem. Polecenie pobiera je do games/mon-jeu/dist/android-native/.

Kolejne wersje: bin/jumphp android mon-jeu --version-name 1.1 (numer wersji rośnie za każdym razem o jeden). Bez GitHuba: --local buduje aplikację na twoim komputerze, w Dockerze.

Aby wypróbować ją na telefonie: wyślij mu .apk i otwórz go (zezwól na „instalowanie nieznanych aplikacji”) albo adb install mon-jeu-1.0.apk.

Sterowanie dotykowe

Silnik sam rysuje sterowanie na ekranie, jak w przeglądarce: krzyżak (lub joystick), A, B i START, w czarnych pasach po bokach, gdy takie są. Ustawia się je w game.yaml, tak jak dla przeglądarki:

game:
  touch: { pad: stick, a: Space, b: Escape, labels: { a: SAUT } }   # pad: stick = joystick, w przeciwnym razie krzyżak

Przycisk wstecz w Androidzie odpowiada Esc. Aby zobaczyć je na komputerze: JUMPHP_TOUCH_CONTROLS=1 bin/jumphp run mon-jeu (myszą).

W aplikacji

  • PHP 8.5 skompilowane dla Androida z rozszerzeniami JumPHP (SDL i jego moduły obrazu, dźwięku i czcionek, OpenGL, OpenAL, gd, openssl, mbstring…), SDL2 i OpenAL Soft: to, co uruchamia grę na komputerze.
  • Twoja gra, rozpakowywana przy pierwszym uruchomieniu każdej wersji (sekunda lub dwie), w prywatnej pamięci aplikacji. Zapisy i opcje zostają tam między aktualizacjami.
  • Nazwa, ikona (ta z PWA: assets/icon.png) i orientacja (zależna od kształtu gry) pochodzą z game.yaml.

W Sklepie Play

Wszystkie szczegóły (klucze, próby na telefonie, każda deklaracja w Play Console, weryfikacja, kolejne wersje, pułapki): Publikacja w Play Store krok po kroku. W skrócie:

  1. W Play Console utwórz aplikację (nazwa, język, „Gra”, bezpłatna) i wypełnij deklaracje: polityka prywatności (strona mówiąca, że gra niczego nie zbiera), klasyfikacja treści, grupa docelowa, brak reklam.
  2. Podpisywanie aplikacji przez Google Play: Google przechowuje klucz, który podpisuje aplikację dla telefonów; twój dowodzi tylko, że wysyłki pochodzą od ciebie (jeśli go zgubisz, Google może go wymienić).
  3. Test wewnętrzny: Testuj i publikuj > Testy wewnętrzne > Utwórz wersję > wyślij .aab > Zapisz > Sprawdź > Wdróż. Dodaj testerów, instalują z linku Google.
  4. Wizytówka: opisy, ikona 512 × 512 (bin/jumphp build ją tworzy: dist/web/icon-512.png), obraz 1024 × 500, co najmniej 2 zrzuty ekranu (bin/jumphp shot mon-jeu lub z telefonu).
  5. Produkcja: gdy testy są dobre, awansuj wersję. Google ją sprawdza (od kilku godzin do kilku dni). Nowe konto osobiste musi najpierw mieć 12 testerów przez 14 dni.

Warto wiedzieć

  • HTTPS działa ($engine->http(), gra online przez wss://): certyfikaty są dołączone do gry.
  • Aplikacja waży 30 do 40 MB (PHP i biblioteki dla dwóch procesorów).

Szczegóły techniczne: docs/android-native.md w twoim projekcie.