game-deploy について
game-deploy は、Vite 製ブラウザーゲームを公開するスキルです。here.now による静的ホスティングを既定とし、GitHub Pages などの代替手段も案内します。
主な機能
- 01here.now へのビルド公開
- 02GitHub Pages によるデプロイ
- 03保存済み slug での更新
- 04package.json のデプロイスクリプト設定
- 05ビルドとホスティングの問題対応
活用シーン
- 01Vite 製ブラウザーゲームの公開
- 02既存の here.now デプロイの更新
- 03Git ベースのデプロイに GitHub Pages を選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ playableintelligence/ game-creator --skill game-deployインストール後、Claude Code で/game-deployを入力して読み込まれたか確認します。
詳細
ゲームのデプロイ
ブラウザーゲームをデプロイして、一般に公開します。here.now がデフォルトです。設定不要ですぐに利用できる静的ホスティングです。Git ベースのデプロイが必要な場合は、代替手段として GitHub Pages を利用できます。
here.now へのデプロイ(デフォルト)
前提条件
here-nowスキルがインストールされていること(npx skills add heredotnow/skill --skill here-now -g)- オプション:永続的なホスティング用の
$HERENOW_API_KEYまたは~/.herenow/credentials
クイックデプロイ
npm run build
~/.agents/skills/here-now/scripts/publish.sh dist/
スクリプトから、https://<slug>.here.now/ のような公開 URL が出力されます。
here.now がデフォルトである理由
- 設定不要 —
baseパス、Git リポジトリ、GitHub CLI は必要ありません - 即時公開 — サイトはすぐに公開されます(反映を待つ必要はありません)
- base パスの問題なし — コンテンツはサブドメインのルートから配信されます(
base: '/'またはデフォルト) - どこでも動作 —
curl、file、jqだけで利用できます
Vite の base パス
here.now はサブドメインのルートから配信するため、デフォルトの base パスを使用します。
export default defineConfig({
base: '/',
// ... rest of config
});
重要:24 時間以内にサイトの所有権を取得してください
API キーがない場合、公開は匿名扱いとなり、24 時間後に期限切れになります。公開スクリプトから所有権取得 URL が返されます。サイトを永続的に利用するには、ユーザーは必ずこの URL にアクセスして、無料の here.now アカウントを作成する必要があります。所有権取得トークンは一度しか表示されず、再取得できません。 所有権を取得しない場合、サイトは消失します。
匿名で公開するたびに、ユーザーに 24 時間の期限と所有権取得 URL を必ず伝えてください。 これは必須です。
| 機能 | 匿名 | 認証済み |
|---|---|---|
| 有効期限 | 24 時間(その後削除されます!) | 永続 |
| 最大ファイルサイズ | 250 MB | 5 GB |
| レート制限 | 5/hour/IP | 60/hour/account |
永続的なホスティング用の API キーを設定するには(24 時間の期限を完全に省略できます):
まず、キーがすでに存在するか確認します。
test -f .env && grep -q '^HERENOW_API_KEY=.' .env && echo "found"
見つかった場合は、set -a; . .env; set +a でエクスポートし、入力を求めずに続行します。
見つからない場合:
- ユーザーにメールアドレスを尋ねます
- マジックリンクを送信します:
curl -sS https://here.now/api/auth/login -H "content-type: application/json" -d '{"email": "[email protected]"}' - ユーザーはリンクをクリックし、ダッシュボードから API キーをコピーします
- ユーザーは次のようにキーを貼り付けます:
HERENOW_API_KEY=their-key-here(.envに保存され、自動的に秘匿されます) - 認証情報ファイルにも保存します:
mkdir -p ~/.herenow && grep '^HERENOW_API_KEY=' .env | cut -d= -f2- > ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
デプロイの更新
npm run build
~/.agents/skills/here-now/scripts/publish.sh dist/ --slug <slug>
公開するたびにスラッグが .herenow/state.json に保存されるため、スクリプトは更新時に自動で読み込みます。
デプロイスクリプト
package.json に追加します。
{
"scripts": {
"deploy": "npm run build && ~/.agents/skills/here-now/scripts/publish.sh dist/"
}
}
既存のスラッグを更新する場合:
{
"scripts": {
"deploy": "npm run build && ~/.agents/skills/here-now/scripts/publish.sh dist/ --slug <slug>"
}
}
GitHub Pages へのデプロイ(代替手段)
Git ベースのデプロイが必要な場合や、すでに GitHub リポジトリを設定している場合は、GitHub Pages を使用します。
前提条件
- GitHub CLI がインストールされていること(
gh) - Git リポジトリが初期化され、GitHub にプッシュされていること
クイックデプロイ
npm run build && npx gh-pages -d dist
完全なセットアップ
- ゲームをビルドします:
npm run build
- サブディレクトリにデプロイする場合は、
vite.config.jsに正しい base パスが設定されていることを確認します:
export default defineConfig({
base: '/<repo-name>/',
// ... rest of config
});
- GitHub CLI でデプロイします:
gh repo create <game-name> --public --source=. --push
npm install -D gh-pages
npx gh-pages -d dist
- リポジトリの設定で GitHub Pages を有効にします(
gh-pagesブランチが自動検出されるはずです)。
ゲームは次の URL で公開されます:https://<username>.github.io/<repo-name>/
自動デプロイ
package.json に追加します。
{
"scripts": {
"deploy": "npm run build && npx gh-pages -d dist"
}
}
Play.fun への登録
デプロイ後、収益化のためにゲームを Play.fun に登録します。連携方法の詳細については、/game-creator:playdotfun スキルを使用してください。
登録時、デプロイした URL を gameUrl として指定します。
await client.games.register({
name: 'Your Game Name',
gameUrl: 'https://<slug>.here.now/', // or GitHub Pages URL
maxScorePerSession: 500,
maxSessionsPerDay: 20,
maxCumulativePointsPerDay: 5000
});
その他のホスティングオプション
- Vercel:
npx vercel --prod(Vite を自動検出します) - Netlify:リポジトリを接続し、ビルドコマンドを
npm run build、公開ディレクトリをdistに設定します - Railway:デプロイには Railway スキルを使用します
- itch.io:
dist/フォルダーを HTML5 ゲームとしてアップロードします
使用例
デフォルト(here.now)
/game-deploy
結果:dist/ をビルド → here.now 経由で公開 → 数秒でゲームが https://<slug>.here.now/ に公開されます。今後、1つのコマンドでデプロイできるように、npm run deploy スクリプトを追加します。
GitHub Pages
/game-deploy github-pages
結果:適切なベースパスを設定してビルド → gh-pages ブランチにプッシュ → 1~2分でゲームが https://<user>.github.io/<game>/ に公開されます。
トラブルシューティング
here.now の 429 レート制限
原因: 短時間にデプロイしすぎています。匿名でのデプロイには here.now のレート制限があります。 対処方法: 数分待ってから再試行してください。頻繁にデプロイする場合は、代わりに GitHub Pages または Vercel の利用を検討してください。
匿名の here.now サイトの有効期限切れ
原因: 匿名での here.now デプロイは一時的なもので、一定期間利用がないと有効期限が切れます。
対処方法: npx here.now で再デプロイしてください。継続的にホスティングする場合は、有効期限のない GitHub Pages(gh-pages ブランチ)または Vercel を使用してください。
デプロイ後に GitHub Pages で 404 が発生する
原因: Vite のベースパスが GitHub Pages の URL 構造(/<repo-name>/)と一致していません。
対処方法: vite.config.js で base: '/<repo-name>/' を設定してください。リポジトリの Pages 設定で、ソースとして gh-pages ブランチが選択されていることを確認してください。GitHub の CDN に反映されるまで、1~2分お待ちください。
デプロイ後にページが空白になる(アセットのパス)
原因: アセットのパスに絶対 URL(/assets/...)を使用しているため、デプロイ先で正しく解決されません。
対処方法: 相対パス(./assets/...)を使用するか、Vite の base オプションをデプロイ URL に合わせて設定してください。デプロイ前に、ローカルで npm run build を実行し、ローカルサーバーで dist/ フォルダーをテストしてください。
gh-pages へのプッシュが拒否される
原因: リモートの gh-pages ブランチとの履歴が分岐しているか、ブランチ保護ルールによって強制プッシュがブロックされています。
対処方法: リポジトリの所有者で、ブランチ保護が設定されていない場合は、git push origin gh-pages --force を使用してください。保護されている場合は、最初にリモートの gh-pages ブランチを削除してください:git push origin --delete gh-pages を実行してから、再デプロイしてください。
デプロイ前チェックリスト
-
npm run buildがエラーなく成功する -
npm run previewで本番ビルドをテストする -
console.logのデバッグ文をすべて削除する - すべてのアセットがビルドに含まれていることを確認する
- 該当する場合は、モバイルやレスポンシブ表示での動作を確認する
-
index.htmlに適切な<title>とメタタグを設定する