RU

Ваша игра как исполняемый файл

Чтобы передать игру тому, у кого ничего не установлено (ни 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 в вашем проекте.