Crie um jogo com o JumPHP
O JumPHP é um framework para escrever jogos retrô em 2D com PHP. O mesmo código roda no desktop (PHP + SDL2, em uma janela de verdade) e no navegador (PHP compilado para WebAssembly): é isso que faz todos os jogos deste site funcionarem. Há várias formas de começar, da mais rápida à mais completa.
| Forma | Conta | O que você precisa | Para quem |
|---|---|---|---|
| Sandbox | não | um navegador | experimentar em 1 minuto: mudar um hello world e executá-lo |
| Com o seu Claude | GitHub | Claude Code + Docker | descrever o seu jogo e deixar o Claude escrevê-lo, testá-lo e publicá-lo |
| Editor online | GitHub | um navegador | ajustar um jogo publicado ou fazer um fork do jogo de outra pessoa |
| No seu computador | não (GitHub para publicar) | Docker | desenvolver como um profissional: testes, capturas de tela, build para navegador. Em uma linha: curl -fsSL https://jumphp.net/install.sh | sh |
| Importar um repositório | GitHub | um repositório JumPHP | publicar aqui um jogo que já existe |
| Remake de Amstrad CPC | GitHub | o disquete .dsk do jogo |
refazer um jogo de CPC com os gráficos e a música originais |
| Port de um jogo existente | GitHub | o código-fonte dele | traduzir um jogo antigo (C, Pascal, BASIC…) para PHP |
Em seguida, os tutoriais constroem um jogo passo a passo:
- Hello world: um menu, um texto, um som
- Um personagem que se move e se anima
- Um jogo de plataforma: fase, colisões, câmera
- Sons e música
- Menus, opções, pausa e idiomas
- Salvar pontuações e opções
- O multijogador online
- A página inicial do jogo e a sua publicação
Com o jogo pronto: coloque-o no Google Play (um aplicativo Android, gerado por bin/jumphp twa).
E para programas que queiram ler o diretório: a API pública.
Como funciona um jogo JumPHP
Um jogo é uma pasta games/<id>/ de um projeto JumPHP:
games/meu-jogo/
config/game.yaml o título, a resolução (320 × 180…), a primeira cena
config/input.yaml as ações (pular, atirar…) e suas teclas, gamepad, tela de toque
src/Scene/*.php as telas: o título, o jogo, a pausa…
src/Entity/*.php o que se move: o herói, os inimigos…
assets/ imagens, sons, música, fases (opcionais: tudo pode ser desenhado em PHP)
site/ (opcional) a página inicial do jogo
A cada quadro (60 vezes por segundo), o motor chama update($dt) da cena exibida (muda-se o estado do
jogo) e depois render($r) (desenha-se). As coordenadas são pixels “virtuais” (a resolução do jogo):
o motor amplia a imagem para o tamanho da tela.
O contrato completo do framework, para humanos e para IAs, é o arquivo AGENTS.md do repositório JumPHP.