PL

Tworzenie gry z JumPHP

JumPHP to framework do pisania retro gier 2D w PHP. Ten sam kod działa na pulpicie (PHP + SDL2, w prawdziwym oknie) i w przeglądarce (PHP skompilowany do WebAssembly): dzięki temu działają wszystkie gry na tej stronie. Zacząć można na kilka sposobów, od najszybszego do najbardziej kompletnego.

Sposób Konto Czego potrzeba Dla kogo
Piaskownica nie przeglądarka wypróbowanie w minutę: zmień hello world i uruchom go
Z twoim Claude GitHub Claude Code + Docker opisz swoją grę i pozwól, by ją napisał, przetestował i opublikował
Edytor online GitHub przeglądarka poprawianie opublikowanej gry albo fork cudzej
Na twoim komputerze nie (GitHub do publikacji) Docker praca jak zawodowiec: testy, zrzuty ekranu, build przeglądarkowy. W jednej linii: curl -fsSL https://jumphp.net/install.sh | sh
Import repozytorium GitHub repozytorium JumPHP opublikowanie tutaj gry, która już istnieje
Remake na Amstrad CPC GitHub dyskietka .dsk z grą odtworzenie gry CPC z jej oryginalną grafiką i muzyką
Port istniejącej gry GitHub jej kod źródłowy przepisanie starej gry (C, Pascal, BASIC…) na PHP

Dalej samouczki budują grę krok po kroku:

  1. Hello world: menu, tekst, dźwięk
  2. Postać, która się porusza i animuje
  3. Platformówka: poziom, kolizje, kamera
  4. Dźwięk i muzyka
  5. Menu, opcje, pauza i języki
  6. Zapis wyników i opcji
  7. Gra wieloosobowa online
  8. Strona główna gry i jej publikacja

Gdy gra jest gotowa: wrzuć ją do Google Play (aplikacja na Androida, zrobiona przez bin/jumphp twa).

A dla programów, które chcą czytać katalog: publiczne API.

Jak działa gra JumPHP

Gra to folder games/<id>/ projektu JumPHP:

games/mon-jeu/
  config/game.yaml      tytuł, rozdzielczość (320 × 180…), pierwsza scena
  config/input.yaml     akcje (skok, strzał…) i ich klawisze, pad, ekran dotykowy
  src/Scene/*.php       ekrany: tytułowy, gra, pauza…
  src/Entity/*.php      to, co się porusza: bohater, wrogowie…
  assets/               obrazy, dźwięki, muzyka, poziomy (opcjonalne: wszystko można narysować w PHP)
  site/                 (opcjonalnie) strona główna gry

W każdej klatce (60 razy na sekundę) silnik wywołuje update($dt) wyświetlanej sceny (zmieniamy stan gry), a potem render($r) (rysujemy). Współrzędne to „wirtualne” piksele (rozdzielczość gry): silnik powiększa obraz do rozmiaru ekranu.

Pełna umowa frameworka, dla ludzi i dla AI, to plik AGENTS.md w repozytorium JumPHP.