TR

JumPHP ile oyun yapın

JumPHP, PHP ile 2D retro oyunlar yazmak için bir framework'tür. Aynı kod masaüstünde (PHP + SDL2, gerçek bir pencerede) ve tarayıcıda (WebAssembly'ye derlenmiş PHP) çalışır: bu sitedeki tüm oyunlar bu sayede çalışıyor. Başlamanın en hızlısından en eksiksizine kadar birkaç yolu var.

Yöntem Hesap Gerekenler Kimin için
Kum havuzu hayır bir tarayıcı 1 dakikada denemek için: bir hello world'ü değiştirip çalıştırın
Claude'unuzla GitHub Claude Code + Docker oyununuzu anlatıp Claude'un yazmasını, test etmesini ve yayınlamasını sağlamak için
Çevrimiçi editör GitHub bir tarayıcı yayınlanmış bir oyunu düzeltmek ya da başkasının oyununu fork'lamak için
Bilgisayarınızda hayır (yayınlamak için GitHub) Docker profesyoneller gibi geliştirmek için: testler, ekran görüntüleri, tarayıcı derlemesi. Tek satırda: curl -fsSL https://jumphp.net/install.sh | sh
Depo içe aktar GitHub bir JumPHP deposu zaten var olan bir oyunu burada yayınlamak için
Amstrad CPC remake'i GitHub oyunun .dsk disketi bir CPC oyununu özgün grafikleri ve müziğiyle yeniden yapmak için
Mevcut bir oyunu taşıma GitHub kaynak kodu eski bir oyunu (C, Pascal, BASIC…) PHP'ye çevirmek için

Ardından eğitimler adım adım bir oyun kurar:

  1. Hello world: bir menü, bir metin, bir ses
  2. Hareket eden ve canlanan bir karakter
  3. Bir platform oyunu: bölüm, çarpışmalar, kamera
  4. Ses ve müzik
  5. Menüler, ayarlar, duraklatma ve diller
  6. Skorları ve ayarları kaydetmek
  7. Çevrimiçi çok oyunculu
  8. Oyunun ana sayfası ve yayınlanması

Oyun bittiğinde: Google Play'e koymak (bin/jumphp twa ile yapılan bir Android uygulaması).

Dizini okumak isteyen programlar için de: herkese açık API.

Bir JumPHP oyunu nasıl çalışır

Bir oyun, bir JumPHP projesinin games/<id>/ klasörüdür:

games/mon-jeu/
  config/game.yaml      başlık, çözünürlük (320 × 180…), ilk sahne
  config/input.yaml     eylemler (zıplamak, ateş etmek…) ve tuşları, oyun kolu, dokunmatik ekran
  src/Scene/*.php       ekranlar: başlık, oyun, duraklatma…
  src/Entity/*.php      hareket eden şeyler: kahraman, düşmanlar…
  assets/               görseller, sesler, müzik, bölümler (isteğe bağlı: her şey PHP ile çizilebilir)
  site/                 (isteğe bağlı) oyunun ana sayfası

Her karede (saniyede 60 kez) motor, görüntülenen sahnenin update($dt) metodunu (oyunun durumunu değiştiririz), ardından render($r) metodunu (çizeriz) çağırır. Koordinatlar “sanal” piksellerdir (oyunun çözünürlüğü): motor görüntüyü ekranın boyutuna büyütür.

Framework'ün eksiksiz sözleşmesi, insanlar için de yapay zekâlar için de, JumPHP deposundaki AGENTS.md dosyasıdır.