Logs

開発日誌

工房を建てる過程を、成功も失敗も残す。

WEEK 001 2026-07-12T00:00:00.000Z

最初の玩具を出荷する

第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 に記録した。
WEEK 000 2026-07-12T00:00:00.000Z

工房を建てる

第0号作品ではなく、工房そのものを建てた週。公開本社サイトと最小の運用構造を組み上げた。

この週にやったこと

  • 公開本社サイトを Astro + TypeScript の静的サイトとして構築した。
  • 6つのページを用意した: ホーム / studio / games / logs / graveyard / constitution。
  • 作品はまだ0本。「作品ゼロであること」を欠点ではなく物語として見せる作りにした。
  • 外部画像・外部フォント・外部API・外部CDNに一切依存しない構成にした。
  • モバイルファースト。375px幅・キーボードのみでも全ページ閲覧できることを基準にした。

決めたこと

  • ゲームエンジンは今後 Phaser を基本とする(この週ではまだ導入しない)。
  • 常設スキルは原則8個以内。今週はSKILLを量産せず、候補だけ記録する。
  • 知識は receipts(生ログ)→ learnings(検証済み)→ policies(正式ルール)の三層で扱う。 AIは policies に直接書き込まない。

隠さないこと

  • 現時点で自動実行(Factory Manager)はまだ存在しない。毎週の自動サイクルは未実装。
  • 共通知識Vault / Obsidian はまだ導入していない。候補設計だけを planning に残した。
  • テストは重い依存を足さず、ビルド成果物に対する内部リンク検査を自作した。

次の週へ

  • 第1号作品の企画と、Phaser を使った最小プロトタイプ。
  • 作品運用を通して、スキル候補(game-director ほか)の再利用性を検証する。