TR

Oyununuz yerel bir Android uygulaması olarak

JumPHP oyununuzu tarayıcısız, gerçek bir Android uygulamasına dönüştürür: PHP 8.5, SDL, OpenGL ES ve OpenAL, bir bilgisayardaki gibi uygulamanın içinde çalışır. Çevrimdışı çalışır; telefonlarda (ARM) ve tabletlerde, Android 8.0 ya da daha yenisinde.

Bilgisayarınızda bir JumPHP projesi (bilgisayarınızda), Docker ve Play Store için bir Google Play geliştirici hesabı (bir kez 25 $) gerekir. Claude'unuz her şeyi sizin yerinize yapabilir: ona “oyunumun yerel bir Android uygulamasını yap” deyin.

Diğer yöntem, Trusted Web Activity, oyunun sayfasını Chrome'a koyar: daha hafiftir ama ağ ve site gerekir. Aynı paket ve aynı anahtarla yerel uygulama, Play Store'da TWA'nın yerini yeni bir sürüm gibi alır.

Tek bir komut

bin/jumphp android mon-jeu
  1. İlk seferde uygulamanın paket adını sorar (io.github.siz.mon_jeu: yayınlandıktan sonra bir daha değişmez) ve ~/.jumphp/android/keys/ içinde yükleme anahtarınızı üretir (oyunun TWA'sı varsa onunkini kullanır). Yedekleyin, asla git'te değildir.
  2. Projenize .github/workflows/android.yml workflow'unu koyar ve evet dedikten sonra anahtarı GitHub deponuzun secret'larına gönderir (şifreli, yalnızca workflow okur).
  3. Sürümü games/mon-jeu/android/app.json dosyasına yazar, commit'ler ve evet dedikten sonra push'lar.
  4. GitHub uygulamayı üretir (ilk seferde ~25 dakika, sonra ~8: PHP ve kütüphaneler önbellekte tutulur) ve deponuzda, anahtarınızla imzalanmış .apk (telefon için) ve .aab (Google Play için) dosyalarını içeren bir release yayınlar. Komut bunları games/mon-jeu/dist/android-native/ içine indirir.

Sonraki sürümler: bin/jumphp android mon-jeu --version-name 1.1 (sürüm numarası her seferinde bir artar). GitHub olmadan: --local uygulamayı bilgisayarınızda, Docker içinde üretir.

Telefonunuzda denemek için: .apk dosyasını telefona gönderip açın (“bilinmeyen uygulamaları yüklemeye” izin verin) ya da adb install mon-jeu-1.0.apk.

Dokunmatik kontroller

Motor, tarayıcıdaki gibi ekran kontrollerini kendisi çizer: yön tuşu (ya da bir joystick), A, B ve START; varsa yanlardaki siyah bantlara. Tarayıcıdaki gibi game.yaml içinde ayarlanırlar:

game:
  touch: { pad: stick, a: Space, b: Escape, labels: { a: SAUT } }   # pad: stick = joystick, yoksa yön tuşu

Android'in geri düğmesi Esc'e karşılık gelir. Bilgisayarınızda görmek için: JUMPHP_TOUCH_CONTROLS=1 bin/jumphp run mon-jeu (fareyle).

Uygulamanın içinde

  • JumPHP'nin eklentileriyle (SDL ve görüntü, ses ve font modülleri, OpenGL, OpenAL, gd, openssl, mbstring…) Android için derlenmiş PHP 8.5, SDL2 ve OpenAL Soft: oyunu bir bilgisayarda çalıştıran şeyler.
  • Oyununuz, her sürümün ilk açılışında (bir iki saniye) uygulamanın özel depolama alanına açılır. Kayıtlar ve ayarlar bir güncellemeden diğerine orada kalır.
  • Ad, simge (PWA'nınki: assets/icon.png) ve yön (oyunun biçiminin yönü) game.yaml dosyasından gelir.

Play Store'da

Tüm ayrıntılar (anahtarlar, telefonda denemeler, Play Console'daki her beyan, inceleme, sonraki sürümler, tuzaklar): Play Store'da yayınlama, adım adım. Kısaca:

  1. Play Console'da uygulamayı oluşturun (ad, dil, “Oyun”, ücretsiz) ve beyanları doldurun: gizlilik politikası (oyunun hiçbir şey toplamadığını söyleyen bir sayfa), içerik derecelendirmesi, hedef kitle, reklam yok.
  2. Google Play uygulama imzalama: Google, uygulamayı telefonlar için imzalayan anahtarı saklar; sizinki yalnızca gönderimlerin sizden geldiğini kanıtlar (kaybolursa Google onu değiştirebilir).
  3. Dahili test: Test et ve yayınla > Dahili testler > Sürüm oluştur > .aab dosyasını gönderin > Kaydet > İncele > Kullanıma sun. Test kullanıcılarınızı ekleyin, Google'ın bağlantısından kurarlar.
  4. Mağaza sayfası: açıklamalar, 512 × 512 simge (bin/jumphp build üretir: dist/web/icon-512.png), bir 1024 × 500 görsel, en az 2 ekran görüntüsü (bin/jumphp shot mon-jeu, ya da telefonda).
  5. Üretim: testler iyi gittiğinde sürümü yükseltin. Google inceler (birkaç saatten birkaç güne). Yeni bir kişisel hesabın önce 14 gün boyunca 12 test kullanıcısı olmalıdır.

Bilmekte fayda var

  • HTTPS çalışır ($engine->http(), çevrimiçi oyun wss:// ile): sertifikalar oyunla birlikte gelir.
  • Uygulama 30 ila 40 MB tutar (iki işlemci için PHP ve kütüphaneler).

Teknik ayrıntılar: projenizdeki docs/android-native.md.