Ваша гра у вигляді виконуваного файлу
Щоб віддати гру комусь, у кого нічого не встановлено (ні 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 у вашому проєкті.