O seu jogo em um executável
Para dar o seu jogo a alguém que não tem nada instalado (nem PHP, nem Docker): o JumPHP o transforma em um único arquivo que a pessoa baixa e executa, para Linux e para Windows. PHP, SDL, OpenGL e OpenAL estão dentro dele.
Você precisa de um projeto JumPHP no seu computador (no seu computador) e de Docker. O seu Claude pode fazer isso por você: peça a ele “faça um executável do meu jogo”.
bin/jumphp export:standalone meu-jogo # Linux: games/meu-jogo/dist/standalone/meu-jogo-linux-x86_64
bin/jumphp export:standalone meu-jogo --windows # Windows: meu-jogo-windows-x86_64.exe
bin/jumphp export:standalone meu-jogo --linux --windows
Como é feito
- O PHP é o do StaticPHP (micro): PHP 8.5 em um executável, com as extensões do JumPHP (SDL e seus módulos de imagem, som e fonte, OpenGL, OpenAL, gd, zip…), todas compiladas dentro dele.
- O seu jogo (o código, as imagens, os sons, o motor) é adicionado ao final, na forma de um arquivo PHAR.
Esse PHP é o mesmo para todos os jogos: ele é fabricado uma vez (~15 minutos no Linux) ou baixado das
versões publicadas do JumPHP e depois guardado em ~/.jumphp/standalone. Depois disso, um executável sai em
alguns segundos.
Na máquina do jogador
A primeira execução desempacota o jogo no cache dele (um segundo); as seguintes iniciam na hora. Os saves e as opções vão para a pasta de dados dele:
| Linux | Windows | |
|---|---|---|
| o jogo | ~/.cache/jumphp/ |
%LOCALAPPDATA%\JumPHP\ |
| os saves | ~/.local/share/<id do jogo>/ |
%APPDATA%\<id do jogo>\ |
No Linux, ele funciona em qualquer distribuição desde 2013 (glibc 2.17) e usa a tela (X11 ou XWayland), o OpenGL e o som (PulseAudio, PipeWire, ALSA) do computador, como qualquer jogo de Linux. No Windows (10 ou superior), não há nada para instalar.
Bom saber
- O arquivo não é assinado: o Windows exibe “O Windows protegeu o seu computador”; é preciso clicar em
Mais informações e depois em Executar assim mesmo. No Linux, depois de baixar:
chmod +x meu-jogo-linux-x86_64. - O PHP para Windows só pode ser fabricado no Windows: ele é fabricado pelo GitHub (o workflow
standalonedo repositório JumPHP) e baixado pelo comando. - Apenas processadores x86_64 (ainda não há Mac nem ARM).
Os detalhes técnicos: docs/standalone.md no seu projeto.