Entrar
PT

JumPHP, o motor de jogos PHP para jogos 2D retrô

Escreva seu jogo em PHP uma única vez: ele roda em uma janela no Windows, macOS e Linux, e no navegador, tanto em computadores quanto em celulares. Gratuito e de código aberto (licença MIT).

O que é o JumPHP?

O JumPHP é um framework para escrever jogos retrô 2D em PHP. No desktop, o jogo roda no PHP 8.5 com as extensões SDL2, OpenGL e OpenAL: uma janela de verdade, som, controles. No navegador, o mesmo PHP 8.5 e as mesmas extensões são compilados em WebAssembly: o OpenGL vira WebGL, o OpenAL vira Web Audio, e o jogo é uma simples página web estática.

Tudo (PHP, Composer, Emscripten, servidor web, testes) roda no Docker, por trás de um único comando: bin/jumphp.

O que o motor oferece

  • Cenas, entidades, sprites animados, uma câmera e menus prontos.
  • Mapas de tiles (editor Tiled ou linhas de texto), colisões com rampas e plataformas atravessáveis.
  • Controles por teclado, gamepad, mouse e toque, descritos em um arquivo de ações.
  • Sons gerados ou carregados (wav, ogg, mp3), música e som posicional.
  • 3D e pós-processamento com OpenGL / WebGL, abaixo ou acima do 2D.
  • Multijogador online por meio de um servidor de retransmissão, requisições HTTP, saves, traduções.
  • Tarefas pesadas em threads ou Web Workers, sem nunca bloquear o quadro.
  • Testes que realmente jogam o jogo e capturas de tela sem tela.

O que dá para fazer com ele

Jogos de plataforma, arcade, de tiro ou de corrida, remakes de jogos 8 bits a partir do disquete original do Amstrad CPC, e também aplicativos desktop (páginas HTML e PHP, com Tauri), aplicativos gráficos sem HTML e programas de linha de comando.

Um jogo pronto vira uma página web, um executável único para Linux e Windows, um instalador, um app Android ou Apple, ou é publicado neste playground.

Começar

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

O novo jogo é um pequeno jogo de plataforma, mas completo (menu, fase, jogador, moedas), para transformar no seu; bin/jumphp build o transforma em página web. A partir daí, basta o Docker: PHP, Composer e Emscripten rodam nos contêineres dele.

Ou descreva seu jogo no estúdio: o seu Claude o escreve com o JumPHP e o publica aqui. Criar um jogo →

Para ir além

Perguntas frequentes

O JumPHP é gratuito?

Sim. O JumPHP é de código aberto, sob a licença MIT, e o playground jumphp.net é gratuito, tanto para jogar quanto para publicar.

É preciso instalar o PHP para criar um jogo?

Não. Tudo roda no Docker por trás do comando bin/jumphp: PHP 8.5, Composer, Emscripten e os testes. Os jogadores só precisam de um navegador, ou do executável do jogo.

O mesmo código funciona no desktop e no navegador?

Sim: o navegador executa o mesmo PHP 8.5 e as mesmas extensões, compilados em WebAssembly. Bastam algumas regras: nunca bloquear o quadro e passar pelo motor para a rede e os arquivos.

Dá para usar pacotes do Composer?

Sim, desde que sejam escritos em PHP puro: nenhuma extensão PHP adicional existe no navegador.