Створення гри з JumPHP
JumPHP — це фреймворк для написання ретро-ігор у 2D на PHP. Той самий код працює на комп'ютері (PHP + SDL2, у справжньому вікні) і в браузері (PHP, скомпільований у WebAssembly): саме так працюють усі ігри цього сайту. Почати можна по-різному — від найшвидшого способу до найповнішого.
| Спосіб | Акаунт | Що потрібно | Для кого |
|---|---|---|---|
| Пісочниця | ні | браузер | спробувати за 1 хвилину: змінити hello world і запустити його |
| З вашим Claude | GitHub | Claude Code + Docker | описати гру й дозволити Claude написати її, протестувати та опублікувати |
| Онлайн-редактор | GitHub | браузер | допрацювати опубліковану гру або зробити форк чужої |
| На вашому комп'ютері | ні (GitHub — для публікації) | Docker | розробляти по-професійному: тести, скриншоти, збірка для браузера. Одним рядком: curl -fsSL https://jumphp.net/install.sh | sh |
| Імпорт репозиторію | GitHub | репозиторій JumPHP | опублікувати тут гру, яка вже існує |
| Рімейк для Amstrad CPC | GitHub | дискета .dsk гри |
відтворити гру для CPC з її оригінальною графікою та музикою |
| Портування наявної гри | GitHub | її вихідний код | перекласти стару гру (C, Pascal, BASIC…) на PHP |
Далі посібники крок за кроком створюють гру:
- Hello world: меню, текст, звук
- Персонаж, що рухається й анімується
- Платформер: рівень, зіткнення, камера
- Звуки та музика
- Меню, налаштування, пауза та мови
- Збереження рекордів і налаштувань
- Онлайн-мультиплеєр
- Домашня сторінка гри та її публікація
Коли гра готова: розмістити її в Google Play (застосунок Android, зроблений командою bin/jumphp twa).
А для програм, які хочуть читати каталог: публічний API.
Як працює гра на JumPHP
Гра — це тека games/<id>/ проєкту JumPHP:
games/mon-jeu/
config/game.yaml назва, роздільність (320 × 180…), перша сцена
config/input.yaml дії (стрибати, стріляти…) та їхні клавіші, геймпад, сенсорний екран
src/Scene/*.php екрани: титульний, гра, пауза…
src/Entity/*.php те, що рухається: герой, вороги…
assets/ зображення, звуки, музика, рівні (необов'язково: усе можна намалювати на PHP)
site/ (необов'язково) домашня сторінка гри
Кожен кадр (60 разів на секунду) рушій викликає update($dt) показаної сцени (ми змінюємо стан гри),
а потім render($r) (ми малюємо). Координати — «віртуальні» пікселі (роздільність гри): рушій
збільшує зображення до розміру екрана.
Повний контракт фреймворку, і для людей, і для ШІ, — це файл AGENTS.md у репозиторії JumPHP.