PL

JumPHP, silnik gier PHP do gier 2D w stylu retro

Napisz grę w PHP raz: działa w oknie na Windowsie, macOS i Linuksie oraz w przeglądarce, na komputerach i telefonach. Darmowy i open source (licencja MIT).

Czym jest JumPHP?

JumPHP to framework do pisania retro gier 2D w PHP. Na komputerze gra działa na PHP 8.5 z rozszerzeniami SDL2, OpenGL i OpenAL: prawdziwe okno, dźwięk, gamepady. W przeglądarce to samo PHP 8.5 i te same rozszerzenia są skompilowane do WebAssembly: OpenGL staje się WebGL, OpenAL staje się Web Audio, a gra jest zwykłą statyczną stroną internetową.

Wszystko (PHP, Composer, Emscripten, serwer WWW, testy) działa w Dockerze, za jednym poleceniem: bin/jumphp.

Co daje silnik

  • Sceny, encje, animowane sprite'y, kamera i gotowe menu.
  • Mapy kafelkowe (edytor Tiled lub wiersze tekstu), kolizje ze zboczami i platformami jednokierunkowymi.
  • Sterowanie klawiaturą, gamepadem, myszą i dotykiem, opisane w pliku akcji.
  • Dźwięki generowane lub wczytywane (wav, ogg, mp3), muzyka i dźwięk przestrzenny.
  • 3D i postprocessing z OpenGL / WebGL, pod lub nad grafiką 2D.
  • Gra wieloosobowa online przez serwer pośredniczący, żądania HTTP, zapisy, tłumaczenia.
  • Ciężkie obliczenia w wątkach lub Web Workerach, bez blokowania klatki.
  • Testy, które naprawdę grają w grę, i zrzuty ekranu bez ekranu.

Co można w nim zrobić

Platformówki, gry zręcznościowe, strzelanki czy wyścigi, remaki gier 8-bitowych z oryginalnej dyskietki Amstrada CPC, a także aplikacje desktopowe (strony HTML i PHP, z Tauri), aplikacje graficzne bez HTML i programy wiersza poleceń.

Gotowa gra staje się stroną internetową, pojedynczym plikiem wykonywalnym dla Linuksa i Windowsa, instalatorem, aplikacją na Androida lub urządzenia Apple albo zostaje opublikowana na tym playgroundzie.

Zacznij

composer create-project jumphp/jumphp my-games
cd my-games
bin/jumphp new breakout "BREAKOUT"
bin/jumphp install breakout
bin/jumphp run breakout

Nowa gra to mała, ale kompletna platformówka (menu, poziom, gracz, monety), którą zamienisz we własną; bin/jumphp build robi z niej stronę internetową. Od tej chwili wystarczy Docker: PHP, Composer i Emscripten działają w jego kontenerach.

Albo opisz swoją grę w studiu: twój Claude napisze ją z JumPHP i opublikuje tutaj. Utwórz grę →

Więcej

Najczęściej zadawane pytania

Czy JumPHP jest darmowy?

Tak. JumPHP ma otwarty kod na licencji MIT, a playground jumphp.net jest darmowy – zarówno do grania, jak i do publikowania.

Czy trzeba instalować PHP, żeby zrobić grę?

Nie. Wszystko działa w Dockerze za poleceniem bin/jumphp: PHP 8.5, Composer, Emscripten i testy. Graczom wystarczy przeglądarka albo plik wykonywalny gry.

Czy ten sam kod działa na komputerze i w przeglądarce?

Tak: przeglądarka uruchamia to samo PHP 8.5 i te same rozszerzenia, skompilowane do WebAssembly. Wystarczy kilka zasad: nigdy nie blokować klatki i korzystać z silnika do obsługi sieci i plików.

Czy można używać pakietów Composera?

Tak, o ile są napisane w czystym PHP: w przeglądarce nie ma żadnych dodatkowych rozszerzeń PHP.