ゲームの作り方(投稿ガイド)
GAAMEには、会員登録をすれば誰でも自分で作ったゲームを投稿できます。ファイルは2つの形から選べます。
形1:GAAME形式(.js)— おすすめ
公式の100本と同じ共通エンジンで動く形です。スタート画面・スコア表示・自己ベスト・ゲームオーバー・リトライ・縦スクロールとの切り分けはエンジンが自動で付けるので、ゲームの中身だけを書けば完成します。画面は縦 360×640 の座標で描き、スマホの大きさに合わせて自動で拡大縮小されます。
GT.register({
id: 'my-game',
init(g) { // スタート・リトライのたびに呼ばれる。状態は g.data に入れる
g.data.x = 180; g.data.y = 100; g.data.vy = 0;
},
update(g, dt) { // dt 秒ごとに進める
const d = g.data;
d.vy += 900 * dt; d.y += d.vy * dt;
if (d.y > 600) g.over('落ちました'); // 終わり(クリアは g.clear())
g.hud = Math.floor(g.time) + '秒';
},
draw(g) { // 描くだけ
g.fill('#1b1440');
g.circ(g.data.x, g.data.y, 16, '#ffd43b');
},
onDown(g, x, y) { // 指が触れたとき(ほかに onMove onUp onTap onSwipe onKey)
g.data.vy = -400; g.add(1); g.sfx('jump');
}
});
使える道具
- 点数:
g.add(n)・g.setScore(n)。終わり:g.over('理由')・g.clear('理由') - 描く:
g.fill g.rect g.rrect g.circ g.ring g.line g.poly g.text(canvas のg.ctxを直接使ってもよい) - 演出:
g.sfx('pop'|'coin'|'jump'|'hit'|'good'|'bad'|'shoot'|'boom'|'win')・g.burst(x,y,色)・g.pop(x,y,'+10')・g.shake(6) - 乱数など:
g.rnd(a,b) g.ri(a,b) g.pick(配列) g.clamp g.dist g.circHit - 入力:
onDown/onMove/onUp(g,x,y)・onTap(g,x,y)・onSwipe(g,'left'|'right'|'up'|'down')・g.ptr・g.keys
形2:HTMLファイル(.html)
自由に作ったゲームを、1つの HTML ファイルにまとめて投稿する形です。画像・音・スクリプトは全部ファイルの中に入れてください(data: URL など)。2MBまで。
- 画面いっぱい(縦長)に表示されます。スマホのタッチで操作できるようにしてください。
- ゲームを操作する部分には CSS の
touch-action:noneを付けると、スクロールと混ざりません。
安全のための決まり
- 投稿ゲームは、GAAME本体とは別のドメインの「箱」(sandbox)の中で動きます。外部への通信・ほかのページへの移動・ポップアップ・Cookie や保存領域の利用はできません。
- 外部のファイル(CDN のライブラリ・画像)は読み込めません。必要なものはファイルの中に入れてください。
- 投稿したゲームはすぐ「みんなの投稿」と自分のページに公開されます。運営が確認したものは、おすすめのフィードにも並びます。
- くわしい決まりは 利用規約・投稿規約 を読んでください。