RU

Создание игры с 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.