ゲーム用SDK(AIGame)

公開されたゲームには、小さなSDK(window.AIGame)が自動で読み込まれます。インストールは不要です。

ランキング

submitScore を呼ぶだけで、ゲームページにランキングが表示されます。ログイン中のプレイヤーの自己ベストが記録されます。

js
// ゲームオーバーのとき
window.AIGame?.submitScore(score);

// タイム(小さいほど上位)を記録する場合
window.AIGame?.submitScore(seconds, { order: "asc", label: "秒" });

// ランキングを複数持つ場合
window.AIGame?.submitScore(score, { board: "hard", label: "ハード" });

// 結果を受け取る
const result = await window.AIGame?.submitScore(score);
// => { ok: true, rank: 3, best: 1200 } / { ok: false, reason: "login_required" }
AIに伝えるときの文面

スコアがあるゲームにしてください。ゲームオーバーのときに window.AIGame?.submitScore(score) を呼んでください(AIGame が存在しない環境でもエラーにならないよう ?. を使うこと)。タイムアタックの場合は window.AIGame?.submitScore(秒数, { order: "asc" }) としてください。

そのほかの機能

  • AIGame.gameOver({ score }) :ゲームオーバーを通知します(今後、連続プレイの「次へ」案内などに使います)。
  • エラーと console の出力は親ページに送られ、作者だけが見られるコンソールに表示されます。
  • サムネイル撮影のため、WebGL の preserveDrawingBuffer が自動で有効になります。
  • 矢印キーやスペースでページがスクロールしないよう、自動で抑止します。

実行環境

  • ゲームはゲームごとに別のドメイン({ゲームID}.play…)で動きます。localStorage はゲームごとに分かれ、ほかのゲームやサイト本体のデータには触れません。
  • iframe の中で動くため、ページ全体の遷移(top への遷移)はできません。リンクは新しいタブで開いてください。
  • 外部のCDNやAPIは利用できます。