ES

Crear un juego con JumPHP

JumPHP es un framework para escribir juegos retro en 2D con PHP. El mismo código funciona en el escritorio (PHP + SDL2, en una ventana de verdad) y en el navegador (PHP compilado a WebAssembly): es lo que hace funcionar todos los juegos de este sitio. Hay varias formas de empezar, de la más rápida a la más completa.

Forma Cuenta Qué necesitas Para quién
Sandbox no un navegador probar en 1 minuto: cambiar un hello world y ejecutarlo
Con tu Claude GitHub Claude Code + Docker describir tu juego y dejar que Claude lo escriba, lo pruebe y lo publique
Editor online GitHub un navegador retocar un juego publicado, o hacer un fork del de otra persona
En tu ordenador no (GitHub para publicar) Docker desarrollar como un profesional: pruebas, capturas, build para navegador. En una línea: curl -fsSL https://jumphp.net/install.sh | sh
Importar un repositorio GitHub un repositorio JumPHP publicar aquí un juego que ya existe
Remake de Amstrad CPC GitHub el disquete .dsk del juego rehacer un juego de CPC con sus gráficos y su música originales
Port de un juego existente GitHub su código fuente traducir un juego antiguo (C, Pascal, BASIC…) a PHP

Después, los tutoriales construyen un juego paso a paso:

  1. Hello world: un menú, un texto, un sonido
  2. Un personaje que se mueve y se anima
  3. Un juego de plataformas: nivel, colisiones, cámara
  4. Sonidos y música
  5. Menús, opciones, pausa e idiomas
  6. Guardar las puntuaciones y las opciones
  7. El multijugador online
  8. La página de inicio del juego y su publicación

Cuando el juego esté terminado: publicarlo en Google Play (una app de Android, creada con bin/jumphp twa).

Y para los programas que quieran leer el directorio: la API pública.

Cómo funciona un juego JumPHP

Un juego es una carpeta games/<id>/ de un proyecto JumPHP:

games/mon-jeu/
  config/game.yaml      el título, la resolución (320 × 180…), la primera escena
  config/input.yaml     las acciones (saltar, disparar…) y sus teclas, mando, pantalla táctil
  src/Scene/*.php       las pantallas: el título, el juego, la pausa…
  src/Entity/*.php      lo que se mueve: el héroe, los enemigos…
  assets/               imágenes, sonidos, música, niveles (opcionales: todo se puede dibujar en PHP)
  site/                 (opcional) la página de inicio del juego

En cada fotograma (60 veces por segundo), el motor llama a update($dt) de la escena mostrada (se cambia el estado del juego) y luego a render($r) (se dibuja). Las coordenadas son píxeles «virtuales» (la resolución del juego): el motor amplía la imagen al tamaño de la pantalla.

El contrato completo del framework, tanto para humanos como para IA, es el archivo AGENTS.md del repositorio de JumPHP.