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:
- Hello world: menu, tekst, dźwięk
- Postać, która się porusza i animuje
- Platformówka: poziom, kolizje, kamera
- Dźwięk i muzyka
- Menu, opcje, pauza i języki
- Zapis wyników i opcji
- Gra wieloosobowa online
- 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.