30分の試作を投稿画面に載せるまでの10分手順
遊びをつくる執筆にClaudeを使用しています。

30分で動くところまで作った試作が、手元のフォルダに眠ったままになる場面はよくあります。作った本人には遊び方が分かっていても、初めて開く人には何をすればいいか分かりません。そのため「もう少し整えてから」と先送りされます。この記事が確かめるのは、投稿に必要な最低限の整えを10分に収められるか、その手順です。 ここでの10分は、試作づくりの30分とは別枠の目安です。時間配分は提案であり、計測した結果ではありません。自分のペースに合わせて前後して構いません。 扱うのは、アソバースの投稿でつまずきやすい点と、公開前に最低限そろえたい項目です。途中で、単独で動く最小のHTMLゲームも載せます。手元の試作と見比べて、足りないところを足してください。
この記事の目次
10分の前に済ませておくこと
次の2点は時間を食いやすいので、10分の外で先に済ませます。
- メールアドレスの確認:公開にはメールアドレスの確認が必要です。アカウントはGoogleまたはメールアドレスで作れます。メールの場合は確認メールが届くので、そのリンクまで開いておきます。
- 投稿回数の余裕:アップロードは1人につきUTCの1日あたり10回までです。UTCは協定世界時で、日本時間の午前9時に日付が切り替わります。試作を何度も出し直す日は、回数を意識しておくと安心です。
ゲームを遊ぶだけならログインは要りません。投稿して公開する場合は、この準備が先に必要です。
手順1:試作を点検する(目安2分)
最初に、試作が投稿の条件に収まっているかを確認します。次の6項目を上から順に見ます。
- 入口がindex.htmlか:ZIPで出す場合、入口は直下のindex.htmlです。フォルダの中にさらにフォルダがある形は避けます。
- 素材が相対パスか:画像や音声を読み込む場合、./img/a.png のように相対パスで書きます。C:\... や /Users/... から始まるパスは、自分の端末でしか動きません。
- サーバー用コードに頼っていないか:サーバー側のプログラムやサービスワーカー、SharedArrayBufferを使うマルチスレッドは対象外です。ブラウザだけで完結していることが条件です。
- 容量が収まっているか:アップロードは20MiB以内です。ZIPの場合は、展開後に合計100MiB、1,000ファイル、1ファイル30MiBまでの上限もあります。30分の試作なら、通常は余裕で収まります。
- 開始と再開の操作があるか:画面を開いて、何を押せば始まるか分かるか。終わったあとに、再読み込みせず「もう一度」ができるか。
- 画面内で完結しているか:ゲームはsandbox付きのiframe(外部ページから隔離された枠)の中で動きます。ローカルでは動いたのに、枠の中では動かない処理があるかもしれません。alert や window.open のように、画面の外に頼る処理は避けます。結果はHTMLの中に表示してください。
1〜3は、満たさないと投稿そのものが難しくなる項目です。5と6は、満たさなくても投稿できますが、遊ぶ人の体験を大きく左右します。時間が足りなければ、1〜3を先に直し、5と6は次の手順で補います。
手順2:ファイルを整える(目安3分)
点検で見つかった不足を、ここで補います。最小構成の見本として、10秒で丸を何回押せるかを数える小さなゲームを示します。開始ボタン、終了後の「もう一度」、スマホ向けの viewport 指定、画面内の結果表示と、手順1の5と6を満たす形です。
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>10秒タップ</title>
<style>
body{margin:0;font-family:sans-serif;text-align:center;background:#102030;color:#fff}
#field{position:relative;width:min(92vw,420px);height:min(60vh,420px);margin:12px auto;background:#1c3550;border-radius:12px}
#dot{position:absolute;width:56px;height:56px;border-radius:50%;border:0;background:#ffd166;display:none}
.go{font-size:1.1rem;padding:10px 24px}
</style>
</head>
<body>
<h1>10秒タップ</h1>
<p id="info" aria-live="polite">ボタンを押すと始まります</p>
<div id="field"><button id="dot" aria-label="丸"></button></div>
<button class="go" id="start">はじめる</button>
<script>
let score=0,left=0,timer=null;
const $=id=>document.getElementById(id);
function tick(){$('info').textContent='残り'+left+'秒 / '+score+'個';}
function move(){const f=$('field');
$('dot').style.left=Math.random()*(f.clientWidth-56)+'px';
$('dot').style.top=Math.random()*(f.clientHeight-56)+'px';}
function end(){clearInterval(timer);$('dot').style.display='none';
$('info').textContent='終了。'+score+'個でした。';
$('start').textContent='もう一度';$('start').disabled=false;}
$('start').onclick=()=>{score=0;left=10;$('dot').style.display='block';
$('start').disabled=true;move();tick();
timer=setInterval(()=>{left--;tick();if(left<=0)end();},1000);};
$('dot').onclick=()=>{score++;tick();move();};
</script>
</body>
</html>このファイルを index.html として保存し、ブラウザで直接開くと、外部通信なしで動きます。次の3点を確認します。
- 「はじめる」で始まり、10秒後に結果が出て、「もう一度」で最初からやり直せる。
- 画面を狭くしても、丸と枠が収まっている。
- 記録を残す処理が入っていない。
最後の点は大事です。アップロードした作品の中の localStorage や sessionStorage は、一時メモリーとして動く互換処理です。ハイスコアが次回まで残る前提で作ると、期待とずれます。記録を残したい作品には、アップロード作品に自動で追加されるSDKのクラウドセーブ(作品ごとにJSONで128KiBまで)という手段があります。ただし10分の枠には収まりにくいので、まず「記録は残らない版」で出し、気に入ったら更新で足す進め方が現実的です。
ZIPで出す場合は、index.html と素材フォルダをそろえて選び、その場で圧縮します。親フォルダごと圧縮すると、index.html が一階層下に入ってしまいがちです。圧縮後にZIPを開き、最初の階層に index.html が見えるかを確かめます。見本のように1ファイルで完結するなら、HTMLを直接アップロードするほうが確実です。
手順3:投稿画面で入力し、確かめ、公開する(目安5分)
投稿は「入力→表示の確認→公開」の3段階です。画面の細かい文言は変わりうるので、ここでは各段階でやることだけを挙げます。
入力(目安2分)
HTMLまたはZIPを直接アップロードするか、公開済みのURLを指定します。そのうえで作品名と紹介文を入れます。
紹介文に迷ったら、「紹介文と遊び方を作成」が使えます。公開済みURL、または本人が検証済みのアップロードを読み取り、選択した言語で下書きを作る機能です。使うときは次の点を押さえてください。
- 「この文章を使う」を押したときだけ反映されます。生成の操作だけで作品が公開されることはありません。
- 回数に上限があります。1人につき1時間3回、全体ではUTCの1日20回までです。何度も作り直す使い方には向きません。
- 下書きは作品を読み取って作られるので、そのまま使わず、実際のゲームと照らして読み直します。操作方法が違っていないか、ないはずの機能が書かれていないかを見ます。
アソバースには、ゲーム内スコアの共通ランキングはありません。「世界中の人と点数を競えます」といった表現は、事実と合わないので使わないでください。見本なら「10秒で丸を何回押せるか、自分の記録に挑戦する」くらいが適切です。
「遊び方・最大参加人数」は任意の作者申告です。書いても共通の対戦機能が有効になるわけではありません。一人用の試作なら、遊び方だけを短く書けば足ります。
表示の確認(目安2分)
公開する前に、実際の表示を確認する段階です。ここでは自分のゲームを、初めて開く人の目で遊びます。
- 何も説明を読まずに始められるか。
- 一周遊んで、終わったあとに「もう一度」へ進めるか。
- 手元のブラウザで動いたとおりに、枠の中でも動くか。
- 画面を狭くしたり、スマホで開いたりしても、操作できるか。
3で差が出たら、手順1の6に戻ります。画面外に頼る処理がないかを探して直し、同じ入口から入れ直します。
公開(目安1分)
確認で問題がなければ公開します。この段階でメールアドレスが未確認だと進めないので、準備の項目が効いてきます。
10分で終わらないときは、下書き保存があります。紹介文だけが決まらない場合は、短い一文で下書きに留め、後で整えます。
起こりやすいつまずきと対処
投稿まわりで起こりやすい失敗を、原因別にまとめます。
- 画面が真っ白のまま、考えられる原因:入口が index.html になっていない、またはZIPの階層が一段深い、見直す場所:ZIPを開いて最初の階層を確認する
- 画像や音が出ない、考えられる原因:絶対パスで書いている、ファイル名の大文字小文字が違う、見直す場所:素材の参照を相対パスに直す
- ボタンが反応しない、考えられる原因:画面外に頼る処理を使っている、またはスクリプトがエラーで止まっている、見直す場所:ブラウザの開発者ツールのコンソールを見る
- 記録が次回に残らない、考えられる原因:localStorage の保存に頼っている、見直す場所:「残らない版」で出すか、クラウドセーブを検討する
- 紹介文が実物とずれる、考えられる原因:生成された下書きをそのまま使った、見直す場所:操作方法と機能を実物と照らして直す
公開後に誤りに気づいても、慌てなくて大丈夫です。公開内容の更新、非公開化、削除のいずれもできます。
公開後の「プレイ回数」は、作品を起動した実測の回数です。人数ではなく、同じ端末・同じ作品を30分以内に起動し直した分は重複として除かれます。数字の見方を間違えないよう、最初の目標を「自分以外の端末で一度、最後まで遊べること」に置くと、判断が落ち着きます。
次の行動
今日の試作を index.html として保存し、手順1の6項目を上から順に確かめてください。直したところがあれば、表示の確認でもう一度遊びます。メールアドレスの確認が済んでいなければ、それを先にやっておくと、公開の段階で止まりません。

