JumPHPでゲームを作ろう
JumPHPは、PHPで2Dレトロゲームを書くためのフレームワークです。同じコードが、デスクトップ(PHP + SDL2、本物のウィンドウ)でも、ブラウザ(WebAssemblyにコンパイルしたPHP)でも動きます。このサイトのゲームは、すべてこの仕組みで動いています。始め方はいくつかあり、手軽なものから本格的なものまで揃っています。
| 方法 | アカウント | 必要なもの | こんな方に |
|---|---|---|---|
| サンドボックス | 不要 | ブラウザ | 1分で試す:Hello worldを書き換えて実行する |
| あなたのClaudeと | GitHub | Claude Code + Docker | ゲームの内容を伝えて、執筆・テスト・公開まで任せる |
| オンラインエディタ | GitHub | ブラウザ | 公開済みのゲームを手直しする、または他の人のゲームをフォークする |
| お使いのコンピューターで | 不要(公開にはGitHub) | Docker | プロのように開発する:テスト、スクリーンショット、ブラウザ向けビルド。1行で:curl -fsSL https://jumphp.net/install.sh | sh |
| リポジトリをインポート | GitHub | JumPHPのリポジトリ | すでにあるゲームをここに公開する |
| Amstrad CPCリメイク | GitHub | ゲームの.dskディスク |
元のグラフィックと音楽のまま、CPCのゲームをリメイクする |
| 既存ゲームの移植 | GitHub | ソースコード | 古いゲーム(C、Pascal、BASICなど)をPHPに書き換える |
そのあとはチュートリアルで、ゲームを少しずつ作り上げていきます。
- Hello world:メニュー、テキスト、サウンド
- 動いてアニメーションするキャラクター
- プラットフォームゲーム:レベル、衝突判定、カメラ
- サウンドと音楽
- メニュー、オプション、ポーズ、多言語対応
- スコアとオプションの保存
- オンラインマルチプレイ
- ゲームのトップページと公開
ゲームが完成したら:Google Playに載せる(bin/jumphp twaで作るAndroidアプリ)。
ディレクトリを読み取りたいプログラム向けには:公開APIがあります。
JumPHPのゲームのしくみ
ゲームは、JumPHPプロジェクトのgames/<id>/フォルダです。
games/mon-jeu/
config/game.yaml タイトル、解像度(320 × 180など)、最初のシーン
config/input.yaml アクション(ジャンプ、撃つなど)と、そのキー、ゲームパッド、タッチ操作
src/Scene/*.php 画面:タイトル、ゲーム本編、ポーズなど
src/Entity/*.php 動くもの:主人公、敵など
assets/ 画像、サウンド、音楽、レベル(省略可:すべてPHPで描くこともできます)
site/ (省略可)ゲームのトップページ
毎フレーム(1秒に60回)、エンジンは表示中のシーンのupdate($dt)(ゲームの状態を更新)、続いてrender($r)(描画)を呼び出します。座標は「仮想」ピクセル(ゲームの解像度)で、エンジンが画面のサイズに合わせて拡大します。
フレームワークの完全な仕様は、人間にもAIにも向けたJumPHPリポジトリのAGENTS.mdにあります。