最初の玩具を出荷する
第1号ゲーム『ケンピン!』を企画から実装・出荷まで通した週。創作制約は「操作は1ボタンだけ」。
この週にやったこと
- 第1号ゲーム『ケンピン!』を作った。1ボタンの出荷検品アクション。 → /games/week-001
- 題材はこの工房そのもの。おもちゃ工場の検品ラインで、良品だけにハンコを押して出荷する。
- ゲームエンジンとして Phaser を初導入した(バージョンは 3 系に固定)。
- 画像・フォント・音声ファイルは0枚。見た目はすべて図形とコードで生成し、 効果音は Web Audio のオシレーターで合成した。ミュートボタン付き。
- ページ読み込み後は外部への通信が一切ない。オフラインでも動く。
創作制約
今週の制約は 「操作は1ボタンだけ」。 開始も、プレイも、再挑戦も、すべて同じ1つの入力(タップ / SPACE)。 「押す」だけでなく「押さない」も選択になるように、 不良品は“見送ることが正解”というルールにした。
手触りの調整
- ゲームの主要ロジックは Phaser から分離した純粋な TypeScript にして、 ユニットテスト14本と、反応速度の異なる仮想プレイヤーによる難易度シミュレーションを回した。
- シミュレーションを見ながら2回パラメータを磨いた: 1回目はベルトの初速と不良品率を調整、2回目は序盤に「必ず良品だけが流れる猶予」を入れ、 終盤はおもちゃの間隔を詰めて決着を早くした。 中級の仮想プレイヤーで1プレイ約60秒、上級で約2分に収まった。
- 初心者の1プレイは30秒前後とまだ短め。ここは実際に遊ばれてから次の調整に回す。
隠さないこと
- Phaser を含むためゲームページのJSは約1.5MB(gzipで約350KB)ある。初回読み込みは軽くない。
- 実機の iPhone での確認はまだできていない。375px幅とゲーム一周の動作は ローカルブラウザ相当の検証に留まる。
- 依存の監査で Astro 5系に既知の脆弱性報告がある(静的出力には直接影響しない開発サーバ起因のもの)。 修正はメジャー更新が必要なため、今週は見送って記録に残した。
次の週へ
- 実プレイの感触を見て、初心者の生存時間を延ばす調整をするか決める。
- Phaser の導入・ビルド構成は次作でそのまま再利用できそう。receipts に記録した。