Skip to content

Repository files navigation

アソビルド

コーヒー1杯、ポテトM、カップ麺3分。制約のなかでミニゲームを作るYouTube「アソビルド」で生まれたものを、その場で遊べるようにした場所です。

https://asobuild.coenoma.com

スマホでもPCでも、タップ(またはスペースキー)だけで遊べます。ログインもインストールも要りません。


遊ぶときに使えること

  • おだいURL — リザルトの「おだいURL」を押すと …/g/hanko#s=1234 がコピーされます。 同じURLで開くとまったく同じ出方で遊べるので、記録を公平に比べられます (サーバーもログインも要りません。出方が種で決まっているからできることです)
  • 今のを見る — 死ぬ直前の3秒をゆっくり見返せます
  • 記録を送る — スコアと称号の入った画像つきで共有できます(対応端末のみ)

このリポジトリの見どころ

番組では「コードを1文字も書かずに作る」ということをやっています。 そのために、面白さが毎回ちゃんと入るようにする仕掛けをリポジトリ側に持たせています。

1本のゲームは2ファイルしかない

src/games/hanko/
├── meta.ts    # 名前・あそびかた・称号
└── game.ts    # init / step / draw / bot の4つだけ

タイトル画面、スコア、自己ベスト、1タップのリトライ、称号、共有、 240×320のドット表示、効果音——これらは全部共通の仕組みが持っています。

「面白さ」をボットが数字で検査する

npm run fun -- hanko

3種類のボット(放置・でたらめ・上手い)に数百回プレイさせて、こう出ます。

ハンコ課長 (hanko)  合格
  放置    生存   7秒   スコア    0
  でたらめ 生存  15秒   スコア   20
  上手い  生存  43秒   スコア  649 (p90 993 / 最高 1237)

  ✓ 放置すると死ぬ(緊張があるか)        … 7秒(基準 8秒以内)
  ✓ 初見でも点が入る(1回で帰らないか)    … でたらめ操作の中央値 20点
  ✓ 連打だけでは勝てない                  … 15秒(基準 30秒以内)
  ✓ 腕前が効く(運ゲーでない)            … 上手い/でたらめ = 32倍
  ✓ 上手くてもいつか終わる                … 決着率 100%
  ✓ 上振れがある(今日は乗ってる、が起きる)… p90/p50 = 1.6倍
  ✓ 一気に遊びきれる長さ(やりきり感)    … およそ 9分で「部長」まで到達

落ちた項目には「何を直せばいいか」が出ます。 面白さそのものは人が決めますが、面白くなりようがない状態は機械で弾けます。

種と入力だけでプレイを完全再現できる

step が純粋関数で、乱数も種から作っているので、 そのプレイの入力(1フレーム1ビット)と種さえあれば、まったく同じプレイを再現できます

実測: 45秒のプレイが 855点 / 44.93秒 で完全一致。記録に必要なのは 0.33KB

これがリプレイ・おだいURL・OGP画像(実プレイの場面を焼く)の土台になっています。

細かい工夫を貯めていく

「なぜあれは何度も遊ばれたのか」を作り込みのレベル(判定の甘さ、失敗したときの落ち方、 目標の刻み方)まで調べて、docs/design/feel-catalog.md に貯めています。 調べるたびに、次に作るゲームが強くなる、という作りです。


開発

npm ci
npm run dev                  # http://localhost:3020
npm run new -- <slug>        # ゲームの雛形を作る
npm run fun -- <slug>        # 面白さゲート
npm run check                # 型・ゲート・ビルド

詳しくは docs/guides/はじめかた.md

ドキュメント

docs/design/genre-map.md 遊びの型の地図(型で作り方もゲートも変わる)
docs/design/fun-doctrine.md 面白さの原則(毎回同じ手順を踏むための文書)
docs/design/feel-catalog.md 効く工夫のカタログ
docs/design/broadcast-design.md 遊んでいない人が見て面白いかの設計
docs/design/rights-and-originality.md 既存作を扱うときの線引き
docs/design/retro-style.md 2000年代の手触りの出し方
docs/research/ 既存作の調査(何が刺さったのかの特定)
docs/guides/ はじめかた・収録の段取り

技術

Next.js 16 / React 19 / TypeScript。外部ライブラリなし、サーバーなし、データベースなし。 ゲームは 240×320 の Canvas に描いて拡大表示しているだけです。


© 合同会社コエノマ

About

コーヒー1杯、ポテトM、カップ麺3分。制約のなかでミニゲームを作るYouTube「アソビルド」で生まれたものを、その場で遊べる場所

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages