Ваша игра как исполняемый файл
Чтобы передать игру тому, у кого ничего не установлено (ни PHP, ни Docker): JumPHP делает из неё один файл, который скачивают и запускают, для Linux и Windows. PHP, SDL, OpenGL и OpenAL уже внутри.
Вам понадобятся проект JumPHP на вашем компьютере (на вашем компьютере) и Docker. Ваш Claude может сделать это за вас: попросите его «сделай исполняемый файл из моей игры».
bin/jumphp export:standalone mon-jeu # Linux: games/mon-jeu/dist/standalone/mon-jeu-linux-x86_64
bin/jumphp export:standalone mon-jeu --windows # Windows: mon-jeu-windows-x86_64.exe
bin/jumphp export:standalone mon-jeu --linux --windows
Как это устроено
- PHP берётся из StaticPHP (micro): PHP 8.5 в одном исполняемом файле с расширениями JumPHP (SDL и его модули для изображений, звука и шрифтов, OpenGL, OpenAL, gd, zip…), все они скомпилированы внутрь.
- Ваша игра (её код, картинки, звуки, движок) добавляется в конец в виде архива PHAR.
Этот PHP одинаков для всех игр: он собирается один раз (~15 минут в Linux) или скачивается из опубликованных версий JumPHP, а затем хранится в ~/.jumphp/standalone. После этого исполняемый файл создаётся за несколько секунд.
У игрока
При первом запуске игра распаковывается в кэш (одна секунда), последующие запуски стартуют сразу. Сохранения и настройки попадают в папку данных игрока:
| Linux | Windows | |
|---|---|---|
| игра | ~/.cache/jumphp/ |
%LOCALAPPDATA%\JumPHP\ |
| сохранения | ~/.local/share/<id игры>/ |
%APPDATA%\<id игры>\ |
В Linux он работает в любом дистрибутиве начиная с 2013 года (glibc 2.17) и использует вывод изображения (X11 или XWayland), OpenGL и звук (PulseAudio, PipeWire, ALSA) компьютера, как любая игра для Linux. В Windows (10 или новее) ничего устанавливать не нужно.
Полезно знать
- Файл не подписан: Windows показывает «Windows защитил ваш компьютер», нужно нажать Подробнее, затем Выполнить в любом случае. В Linux после скачивания:
chmod +x mon-jeu-linux-x86_64. - PHP для Windows можно собрать только в Windows: его собирает GitHub (workflow
standaloneрепозитория JumPHP), а команда скачивает результат. - Только процессоры x86_64 (Mac и ARM пока не поддерживаются).
Технические подробности: docs/standalone.md в вашем проекте.