Creare un gioco con JumPHP
JumPHP è un framework per scrivere giochi retro in 2D in PHP. Lo stesso codice gira sul desktop (PHP + SDL2, in una vera finestra) e nel browser (PHP compilato in WebAssembly): è quello che fa funzionare tutti i giochi di questo sito. Ci sono diversi modi per iniziare, dal più rapido al più completo.
| Modo | Account | Cosa serve | Per chi |
|---|---|---|---|
| Sandbox | no | un browser | provare in 1 minuto: cambiare un hello world e avviarlo |
| Con il tuo Claude | GitHub | Claude Code + Docker | descrivere il proprio gioco e lasciare che lo scriva, lo testi, lo pubblichi |
| Editor online | GitHub | un browser | ritoccare un gioco pubblicato, o fare un fork di quello di qualcun altro |
| Sul tuo computer | no (GitHub per pubblicare) | Docker | sviluppare come un professionista: test, screenshot, build per il browser. In una riga: curl -fsSL https://jumphp.net/install.sh | sh |
| Importare un repository | GitHub | un repository JumPHP | pubblicare qui un gioco che esiste già |
| Remake per Amstrad CPC | GitHub | il dischetto .dsk del gioco |
rifare un gioco CPC con la sua grafica e la sua musica originali |
| Porting di un gioco esistente | GitHub | il suo codice sorgente | tradurre un vecchio gioco (C, Pascal, BASIC…) in PHP |
Poi, i tutorial costruiscono un gioco passo dopo passo:
- Hello world: un menu, un testo, un suono
- Un personaggio che si muove e si anima
- Un gioco di piattaforme: livello, collisioni, camera
- Suoni e musica
- Menu, opzioni, pausa e lingue
- Salvare punteggi e opzioni
- Il multigiocatore online
- La pagina di presentazione del gioco e la sua pubblicazione
Quando il gioco è finito: portarlo su Google Play (un'app Android, creata con bin/jumphp twa).
E per i programmi che vogliono leggere il catalogo: l'API pubblica.
Come funziona un gioco JumPHP
Un gioco è una cartella games/<id>/ di un progetto JumPHP:
games/mon-jeu/
config/game.yaml il titolo, la risoluzione (320 × 180…), la prima scena
config/input.yaml le azioni (saltare, sparare…) e i loro tasti, gamepad, touch screen
src/Scene/*.php le schermate: il titolo, il gioco, la pausa…
src/Entity/*.php ciò che si muove: l'eroe, i nemici…
assets/ immagini, suoni, musica, livelli (facoltativi: tutto si può disegnare in PHP)
site/ (facoltativo) la pagina di presentazione del gioco
A ogni fotogramma (60 volte al secondo), il motore chiama update($dt) della scena visualizzata (si cambia lo
stato del gioco) poi render($r) (si disegna). Le coordinate sono pixel «virtuali» (la risoluzione del gioco):
il motore ingrandisce l'immagine alle dimensioni dello schermo.
Il contratto completo del framework, per gli umani come per le IA, è il file AGENTS.md del repository JumPHP.