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
- Documentação e tutoriais
- JumPHP IDE – a IDE gratuita para seus jogos e apps em PHP
- Extensões do motor
- Os jogos feitos com JumPHP
- Código-fonte · Packagist
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.