UK

Створення гри з 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

Далі посібники крок за кроком створюють гру:

  1. Hello world: меню, текст, звук
  2. Персонаж, що рухається й анімується
  3. Платформер: рівень, зіткнення, камера
  4. Звуки та музика
  5. Меню, налаштування, пауза та мови
  6. Збереження рекордів і налаштувань
  7. Онлайн-мультиплеєр
  8. Домашня сторінка гри та її публікація

Коли гра готова: розмістити її в 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.