JumPHP, de PHP-game-engine voor retro 2D-games
Schrijf je game één keer in PHP: hij draait in een venster op Windows, macOS en Linux, en in de browser, op computers en telefoons. Gratis en open source (MIT-licentie).
Wat is JumPHP?
JumPHP is een framework om retro 2D-games in PHP te schrijven. Op de desktop draait de game op PHP 8.5 met de extensies SDL2, OpenGL en OpenAL: een echt venster, geluid, gamepads. In de browser worden dezelfde PHP 8.5 en dezelfde extensies naar WebAssembly gecompileerd: OpenGL wordt WebGL, OpenAL wordt Web Audio, en de game is een gewone statische webpagina.
Alles (PHP, Composer, Emscripten, webserver, tests) draait in Docker, achter één enkel commando: bin/jumphp.
Wat de engine biedt
- Scènes, entiteiten, geanimeerde sprites, een camera en kant-en-klare menu's.
- Tilemaps (Tiled-editor of tekstregels), botsingen met hellingen en platforms waar je doorheen kunt springen.
- Besturing met toetsenbord, gamepad, muis en touch, beschreven in een bestand met acties.
- Gegenereerde of geladen geluiden (wav, ogg, mp3), muziek en positioneel geluid.
- 3D en nabewerking met OpenGL / WebGL, onder of boven de 2D.
- Online multiplayer via een relayserver, HTTP-verzoeken, opslag, vertalingen.
- Zwaar werk in threads of Web Workers, zonder ooit het frame te blokkeren.
- Tests die de game echt spelen, en screenshots zonder scherm.
Wat je ermee kunt maken
Platformgames, arcade-, shooter- of racegames, remakes van 8-bitgames vanaf hun originele Amstrad CPC-diskette, en ook desktopapplicaties (HTML-pagina's en PHP, met Tauri), grafische applicaties zonder HTML en commandlineprogramma's.
Een afgewerkte game wordt een webpagina, één uitvoerbaar bestand voor Linux en Windows, een installer, een Android- of Apple-app, of wordt op deze playground gepubliceerd.
Aan de slag
composer create-project jumphp/jumphp my-games
cd my-games
bin/jumphp new breakout "BREAKOUT"
bin/jumphp install breakout
bin/jumphp run breakout
De nieuwe game is een kleine maar complete platformgame (menu, level, speler, munten) om tot de jouwe te maken; bin/jumphp build maakt er een webpagina van. Vanaf dan volstaat Docker: PHP, Composer en Emscripten draaien in zijn containers.
Of beschrijf je game in de studio: jouw Claude schrijft hem met JumPHP en publiceert hem hier. Een game maken →
Verder gaan
- Documentatie en tutorials
- JumPHP IDE – de gratis IDE voor je PHP-games en -apps
- Engine-uitbreidingen
- De games gemaakt met JumPHP
- Broncode · Packagist
Veelgestelde vragen
Is JumPHP gratis?
Ja. JumPHP is open source onder de MIT-licentie, en de playground jumphp.net is gratis, zowel om te spelen als om te publiceren.
Moet ik PHP installeren om een game te maken?
Nee. Alles draait in Docker achter het commando bin/jumphp: PHP 8.5, Composer, Emscripten en de tests. Spelers hebben alleen een browser nodig, of het uitvoerbare bestand van de game.
Werkt dezelfde code op de desktop en in de browser?
Ja: de browser draait dezelfde PHP 8.5 en dezelfde extensies, gecompileerd naar WebAssembly. Een paar regels zijn genoeg: blokkeer nooit het frame, en gebruik de engine voor netwerk en bestanden.
Kan ik Composer-pakketten gebruiken?
Ja, zolang ze in pure PHP geschreven zijn: in de browser bestaat geen enkele extra PHP-extensie.