IT

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:

  1. Hello world: un menu, un testo, un suono
  2. Un personaggio che si muove e si anima
  3. Un gioco di piattaforme: livello, collisioni, camera
  4. Suoni e musica
  5. Menu, opzioni, pausa e lingue
  6. Salvare punteggi e opzioni
  7. Il multigiocatore online
  8. 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.